2020年10月7日水曜日

AIチュートリアル:手旗信号(セマフォア)練習

【要旨】この記事は、Scratchを用いたAIアプリのチュートリアル[1]の紹介です。両腕を使った手旗信号(セマフォア信号)の発出練習をゲーム感覚で行います。ML4K(Machine Learning for Kids)[2]が提供しているのですが、レベルは"advanced"ですので、学生諸君にも参考になるでしょう。

作成するAIアプリの概要
 下図は、このAIアプリの使用手順です。"next"の矢印は、次の課題の出題を意味します。この例では、"K"の手旗信号のポーズを要求しています。あなたは両腕でそのポーズを取り、"ready"と叫んで下さい。すると、このアプリは、図中央にあるように、ポーズ認識結果としての線画と、正解のセマフォア画像を提示します。あなたは両者を比較して、自分のポーズが正解か否かを判断し、"yes"または"no"と叫びます。"yes"であれば、得点が加算されます。その後、自動的に"next"の状態になり次の出題を行います。

2つの学習モデルを使ったセマフォアのポーズの認識
 2つの学習モデルを使います。1つ目は、音声認識です。これにより、途中でPCに触れることなく、音声でアプリを制御でき、何回でもゲームを繰り返すことができます。2つ目は、両腕を使ったセマフォアのポーズを認識するためのものです。

(1)音声認識のための学習モデル
 発話によりゲームをコントロールします。上に述べた"ready"、"yes"、"no"を認識させるため、下図のように、それぞれ発話例を16回以上録音します。また、これとは別に環境音(周囲の雑音)も同程度収録します。その後、あるボタンを押すと学習が始まります。実際には、IBM Cloudのsoundサービスが起動されます。学習後は、3種類の発話は95%程度以上のconfidence(確かさ)で認識できるようになるはずです。


(2)ポーズ認識のための学習モデル
 ここでの「学習」とは、身体によるセマフォアの信号表現(画像)そのものの学習ではなく、「身体骨格」を学習するという意味です。つまり、身体画像のなかの左右の手首、肘、肩、膝などがどこにあるか(を示す座標)を認識するために、膨大な身体画像を学習させるという意味です。それは大変なコストを要しますので、ここではそれを実施せず、そのような目的の学習済みのモデルを利用します。下図は、それを利用して、左右両方の手首の位置(xy座標値)を得るためのScratchのブロックの利用例です。


(3)セマフォアのポーズが正しいかどうかの判断
 セマフォアのポーズにおいて、両手首や肘、肩の座標が分かれば、最初の図にある「認識結果」のような線画を描くことができます。この時、同時に正解の綺麗なセマフォア画像も表示しますので、自分で両者を比較し、このポーズが正しかったかどうか判断できます。それを"yes"または"no"の音声で答えると次の出題となります。"yes"であれば得点が加算されますので、練習の励みになります。

感想
 よく考えられた、受講者の興味を惹く優れたチュートリアルだと思います。ポーズの学習済みモデルを利用するので、相当に簡単になるとはいえ、それを使って、実際のセマフォアポーズを線画で表示するところは少し面倒かもしれません。しかし、3番目の図のように、ある程度のところまで、ブロックを提供していますので、敷居はかなり低くなっています。途中に提供されているブロックを削除して挑戦させれば、やや程度の高い問題となるでしょう。

参考資料
[1] 機械学習プロジェクト:Semaphores
https://machinelearningforkids.co.uk/#!/worksheets
https://github.com/IBM/taxinomitis-docs/raw/master/project-worksheets/pdf/worksheet-semaphores.pdf

[2] ML4K Teach a computer to play a game
https://machinelearningforkids.co.uk


0 件のコメント:

コメントを投稿