ブログ BLOG
【世田谷ハツメイカー研究所】オンライン授業レポート④|スクラッチコース編|AIじゃんけんゲーム
世田谷ハツメイカー研究所では、緊急宣言発令に伴い、4月8日からオンライン授業を行なっています。
今回もスクラッチコースのオンライン授業の課題を紹介していきます。
まだ過去のブログをご覧になっていない方は、下記よりご覧いただけます。
【世田谷ハツメイカー研究所】オンライン授業レポート①|スクラッチコース編|家を描くプログラム
【世田谷ハツメイカー研究所】オンライン授業レポート②|スクラッチコース編|家を描くプログラム
【世田谷ハツメイカー研究所】オンライン授業レポート③|スクラッチコース編|六芒星を描くプログラム
今回は「AIじゃんけんゲーム」を作っていきます。
先日、代表・久木田が行なったYoutubeライブ「ロボットことば〜AI編〜」でも紹介したゲームです。
mBlock5のAI機能を使って、コンピューターとじゃんけんできるようにプログラミングを考えていきます。
プログラミングをする前に、AIとはなんでしょうか?
AI(Artificial Intelligence)とは、記憶や学習、推測や判断、人間の脳ができることをコンピューターに記憶させ、肩代わりさせる技術のことです。
AIに気持ちはありません。
AIの定義は専門家の中でもまだ定まっていないので、注意が必要です。
またAIには2種類あって、「特化型人工知能」と「汎用人工知能」があります。
特化型人工知能は、一つのことに特化した人工知能を指します。
汎用人工知能は、なんでもできる人工知能です。
特化型人工知能は一つのことしかできませんが、汎用人工知能は与えられた情報をもとに自ら考え、応用することができる人工知能のことです。
今回のじゃんけんゲームは、特化型人工知能となります。
仕組みとしては、カメラの映像と事前に撮影して記録したデータを見比べてグーチョキパーを判断する仕組みとなっています。
プログラミングをする前にアプリケーションの準備をします。
まずは、「mBlock」にアクセスしてください。
アクセスしたら、mBlock5をパソコンにダウンロードしましょう。(ウェブ版でもできますが、ダウンロード版をおすすめします。)
ダウンロード後、アプリケーションを立ち上げると英語になっていますので、左上の地球アイコンから日本語に変更してください。
それでは、プログラミングをしていきます。
デバイス・スプライト・背景と並んでいますが、スプライトをクリックしてください。
スプライトとは画面上にいるキャラクターのことです。
ここにプログラミングしていきます。
作るプログラムは、3つあります。
①コンピューターのグーチョキパーを出すプログラム
②自分の手でグーチョキパーを出すプログラム
③コンピューターの手と自分の手を比較して勝敗を決めるプログラム
まずは①コンピューターのグーチョキパーを出すプログラムを作ります。
定義「コンピューターの手」を作成しましょう。
ブロック定義→ブロックを作るの順にクリックし、コンピューターの手と入力します。
グーチョキバーは条件分岐(もし〜なら)で考えられそうです。
見た目の中にある「こんにちは」ブロックを使って、グーチョキパーを言わせるにはどのようにしたらよいでしょうか?
もし〜ならの間には、どんな条件が入るでしょうか?
コンピューターのじゃんけんは、グーチョキパーの何が出るか分からなくしたいので「乱数」を使いましょう。
グーチョキパーは3通りなので、「1から3までの乱数」とします。
変数「コンピューターのじゃんけん」を作り、ブロックをあてはめましょう。
これを条件分岐にあてはめていくと、
このようになります。
これで、グーチョキパー何が出るかわからなくなりました。
次に②自分の手でグーチョキパーを出すプログラムを作ります。
まずは、拡張機能「機械学習」と「Text to Speech」を追加しましょう。
拡張機能が追加できたら、「TM」・「テキストから音声」というのが追加されます。
TMとは、AIの機能です。
後ほどコンピューターにデータを記憶させていきます。
テキストから音声は、文字通り、入力したテキストを読み上げてくれる機能です。
それでは、TMのタブをクリックし、トレーニングモードを選択しましょう。
このような画面が開きます。
カメラのアクセスを許可するかウィンドウが出た方は、許可してください。
カテゴリー1・カテゴリー2・カテゴリー3にそれぞれグーチョキパーと入力します。
まずは、グーの学習から行います。
カメラの前にグーのポーズをしましょう。
できたら、グーの学習ボタンをクリック。
1枚撮影されたと思います。
こんな形で、色々な角度・距離で学習を繰り返していきましょう。
たくさん学習させることで精度が高くなります。
同じように、チョキとパーも学習させてください。
学習が終わったあとカメラにグーチョキパーのどれかを出すと結果のところに何を出したか表示されます。
この精度が低いと思ったら、学習を繰り返しましょう。
できた方は、画面下部の「このモデルを使用する」をクリックします。
これで学習は完了です。
今学習させたブロックを使って、自分のグーチョキパーを出すプログラムを作ります。
まずは、定義「自分の手」を作成します。
次に、変数「自分のじゃんけん」を作成しましょう。
先ほど「コンピューターのじゃんけん」のプログラムを組んだときに、1=グー・2=チョキ・3=パーとしたので、自分のじゃんけんのときもそのようにしておきます。
条件分岐もし〜ならを使ってプログラミングしていきます。
もしグーなら1、チョキなら2、パーなら3となります。
もし〜ならの間には、先ほど学習させた「TM」ブロックの中にある「認識結果がグーである」を当てはめます。
そしてここで「Text to Speech」の出番です。
自分が出したじゃんけんの種類を読みあげてもらうようにするため、テキストから音声タブから「こんにちはを話す」を追加しましょう。
こんにちはの部分には、TMタブの中にある「認識結果」を当てはめます。
これをそれぞれのブロックの中に追加しましょう。
これで、自分のじゃんけんを出すプログラムは完成です。
最後に③コンピューターの手と自分の手を比較して勝敗を決めるプログラムを作ります。
まずは、定義「勝ち負け」を作成しましょう。
条件分岐を使って、ひとつずつコンピューターのじゃんけんと自分のじゃんけんを比較していけば良いです。
このときに、自分目線かコンピューター目線、どちらで勝ち負けとするか決めておきましょう。
「コンピューターのじゃんけん」と「自分のじゃんけん」が同じときは、どういう結果にしたら良いでしょうか?
あいこですね。
テキストから音声タブから「こんにちはと話す」ブロックを用意して、あいこと変更しましょう。
では今度は、コンピューターのじゃんけんが1(グー)で自分のじゃんけんが2(チョキ)のとき。
勝敗はどうなるでしょうか?
自分目線でいくと、負けとなりますね。
このように全てのパターンをプログラムしていきます。
1=グー
2=チョキ
3=パー
ということを覚えておきましょう。
完成です。
じゃんけんを1回ごとに終了させるため「全てを止める」ブロックを追加しましょう。
これで3つの定義が完成しました。
最後にプログラムを合体させましょう。
プログラムはとても早く処理されてしまいます。
なので、「0.5秒待つ」を追加しましょう。
そして最後に「じゃんけん」と言ってから始めるようにしましょう。
完成です。
いかがでしたか?
ここまでお疲れ様でした。
よりおもしろくするために、いろいろな音声を追加してみたり、ぜひ自分なりに改造してみてください。
「AIを使ったら何ができる?」
ハツメイカー研究所に通う小学生に質問しました。
「マンションの自動ドア!」
「ゴミ箱!」
マンションの自動ドアは、住人の顔をAIに認識させておくことでできそうですね。
ゴミ箱もペットボトルをAIに見せたらペットボトル用のゴミ箱が開いたり、缶を見せたら缶用のゴミ箱が開くなどできそうです。
子どもたちの可能性は無限です。
このブログを見ているみなさんだったらどのようにAIを使いますか?
この仕組みを使って、別のゲームを作ってみましょう!
今回は、「AIじゃんけんゲーム」の紹介でした。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
世田谷ハツメイカー研究所 受講生募集中!
スクール説明会&体験教室開催中です。
詳しくは、こちらよりご覧下さい。