AIじゃんけんをScratchで作ろう!
はじめに
画像からいろいろな情報を取得して、判断出来たらなぁって思ったことありませんか?
実はそれを簡単にできる方法があるんです。
今日ご紹介するのはTeachable Machineといって、googleが作っている、プログラミングをせずに画像から情報を取得したり、音声から情報を取得したりするすごいサービスです。実はこれは機械学習という方法なのですが、難しいことは考えずに体験してみましょう。
今回この機能を使って、スクラッチで動画じゃんけんをする機能を作ります。
必要なもの
- パソコン
- 動画をとるためのカメラ
- ネット環境
じゃんけん画像を学習させる
Teachable Machineの準備
では早速下のリンクをクリックしてページを開いてください
画像プロジェクトをクリック
標準画像モデルをクリックします。
このような画面が出れば準備OKです。
画像学習
クラスを準備する
最初にClass1の名前を「なし」に書き換えましょう。名前の横の鉛筆マークをクリックすると名前が書き替えられるようになります。
次のクラスの名前を「グー」に書き換えたら、下のクラスを追加を押すと項目が増やせるので、合計4つの「なし」「グー」「チョキ」「パー」のクラスを作りましょう。
出来上がりは以下のようになります
学習画像を登録する
最初に「なし」クラスの「ウェブカメラ」をクリックし画像を表示させます。
下の「長押しして登録」を数秒押し、100枚くらい登録します。
同様にグーを登録します。長押ししているときに、グーの角度を変えたりして挙げるとより良いです。
同様に「チョキ」「パー」を登録します。
トレーニング
トレーニングボタンをおして、トレーニングします。
画面を変えずに終了まで待ちます。
トレーニングが終了すると、プレビューが出るので、グーチョキパーが認識されているかチェックしてください。
ちゃんと認識できたら終了です。できない場合にはもう一度クラスの画像登録をやり直してみてください。
モデルをエクスポートする
プレビュー画面の上部の「モデルをエクスポートする」ボタンを押します。
次のような画面が出るので、「モデルをアップロード」ボタンを押します。
次のような画面になるので、矢印部分の「共有可能なリンク」をコピーして残しておきます。
これはすごく大切なので忘れないようにしてください。
スクラッチでじゃんけんプログラムを組もう
それではさっそくプログラムを組んでいきます。
内容は、スペースキーを押すとカメラから手の画像を取得し、それを先ほどのTM2で何が出ているのか判断し、ランダムに手を出すネコと勝負sるうという内容です。
機能拡張されたスクラッチを開く
通常のスクラッチにTM2が拡張されているスクラッチを開きます。
TM2Scratch機能の追加
左下にある「青い」機能追加アイコンをクリックして、TM2Scratchを追加します
モデルへのリンクを追加する
左にある「TM2Scratch」カテゴリから、「画像分類モデルURL」ブロックを右側の作業領域にドラッグ&ドロップし、中身を先ほどコピーした「共有可能なリンク」のURLを入れてください。
下準備は整ったので、プログラミングをしていきます。
プログラミングをする
変数追加
ブロック定義追加
引数が1つのブロックを追加し、「文字に直す」ブロックを作ります。これはじゃんけんのグーチョキパーが数字に置き換えられている物を文字に直すためのブロックです。
スタートとラベルを受け取った時の処理
スペースが押されたときの処理
じゃんけんのグーを1に、チョキを2に、パーを3にして引き算し、勝ち負けを調べています。
スペースボタンを押すとじゃんけんを開始します。
全部入力すれば終了です。さっそく実行させて、「スペースキー」を押してみてください。
完成
このように手の画像を解析し、ネコとじゃんけんをすることができるのがすごいですね。
この技術は最近は食べ物の選別とか、いろいろな部分に使われるようになってきています。
興味のある方は「機械学習」を調べてみてください。