ロボホンは、二足歩行が可能なモバイルロボットで、音声をメインのインターフェースとしています。また、OS として Android を搭載しており、アプリの追加でできることが増えていくロボットです。
発売当初は、一般のお客様向けに発売しておりましたが、現在は企業や自治体など法人用途でもご活用頂いております。その用途の 1 つが「プログラミング・AI 教育」です。
本記事では、TensorFlow Lite を活用したロボホンの教育ソリューションについてご紹介いたします。
シャープは、プログラミング教育ソリューションとして、「ロブリック」というアプリケーションを販売しています。これは Google Blockly をベースにしたブロックプログラミングのアプリケーションで、ブロックを組み合わせると、ロボホンが動いたり話したりします。2018 年 6 月の販売開始から多くの自治体にご採用頂き、主に小学校のプログラミング教育にご活用いただいております。
これまで「プログラミング的思考」の育成に向けたソリューション提供に取り組んで参りましたが、これからの「AI-Ready な社会」に向けて、AI 人材の育成に取り組んでいきたいと考え、AI 教育ソリューションを開発し、2020 年 2 月に実証実験を実施致しました。当ソリューションは、音声認識、対話生成、画像認識などの AI 技術を実体のあるロボホンを通して学習することで、子どもたちに AI に対する興味関心を持たせることを目的としたソリューションです。
この AI 教育ソリューションの重要な機能の 1 つが、機械学習を体感してもらうための TensorFlow Lite を使った画像分類の機能です。子どもたちがロボホンのカメラを使って、ロボホンに 5 つまでの被写体を登録して覚えてもらうと、ロボホンがそれぞれの被写体を見分けることができるようになります。
この機能を通して、すでに社会に実装されている機械学習による画像認識の仕組みを説明し、子どもたちが今後この仕組みをどう活用していくか考えるきっかけを与えることが目的です。
授業としての画像認識学習の問題点
AIによる画像認識を生徒に体験してもらうには、データセットを 0 からトレーニングをしたり、ある程度出来上がっているものに追加トレーニングしたりする方法が考えられます。しかし、授業でトレーニングをしようとすると、
- 十分な数のトレーニング用の画像データを準備するのが難しい
- 準備できたとしてもそのデータを学習させるための時間が必要になる
という問題が発生します。
また、ロボホンという機械学習にとっては強力とは言えないハードウェアを利用するため、データ学習に必要な時間がさらに長くなってしまうという問題もあります。
トレーニング済みデータセットの利用
そこで、授業中の学習時には、事前トレーニングや最適化されたモデルを使って画像識別をすることで、ロボホンのカメラでとらえた画像の特徴ベクトルを指定の枚数分保存しておき、評価時には、k 近傍法を使ってどの保存済みデータに最も近いかを取得する方法で授業という限られた時間の中でトレーニングの過程や機械学習を体験できるようにしました。
今回利用した事前トレーニング済みデータセットは、量子化モデルの Mobilenet_V1_1.0_224_quant
になります。これは、
- Android アプリで契約者のロボホンに配信する
- クラウドを利用せず、ロボホン内で処理する
という要件で開発をしていたため、モデルサイズとパフォーマンスの方に重点を置いてこのデータセットを選択しました。
画像識別のサンプル
今回作成したアプリでは、
[wood rabbit (34.1%), hare (17.6%), fox squirrel (17.6%)]
のように画像識別されます。
また、
[tiger cat (80.0%), tiger (11.0%), tabby (5.5%)]
のように画像が識別されます。
学習時には、これらの識別後の情報をそれぞれ、指定された枚数ずつ、保持しておきます。
評価時には、ロボホンのカメラからの入力画像を、学習時と同じように画像識別し、学習時に保存したどの画像に最も近いかを近傍法を利用して取得するようにしています。
TensorFlow Lite の採用
TensorFlow Lite を採用した理由としては、さまざまな環境上で動かすことができ、ロボホンで利用している Android もサポートされていたこと、また、サンプルが用意されており、使い方なども多数インターネット上で情報を得ることができるなど、とても使いやすいツールと感じたからです。
授業での使いやすさ
もともとは、ロブリックとは別のアプリとして開発していましたが、
- 別アプリとした場合、操作方法を覚え直す必要がある
- プログラミング教育の一連の流れとしてブロックプログラミングの発展形として AI 教育をスムーズに導入できる
- 機械学習用のブロックとその他のブロックを組み合わせることでより楽しく学習することができる
などのメリットを鑑みてロブリック用のブロックとして取り込みことにしました。
また、機械学習用のブロックは、
「X 番を Y 回勉強する」「X 番を忘れる」「AI 用のカメラを ON/OFF にする」「X 番と Z 思った」(まあまあ思った、とても思った、など、自信の強さをパラメータとする)
というように子供でもわかり易い言葉を使い、カメラの画像をロボホンの背中の画面だけでなくブラウザ上にも表示することで、画面を見ながらカメラの画角を調整できるなど、シンプルで直感的な UI を目指しました。
より多くの子どもたちに AI 教育ソリューションを
前述の通り、2020 年 2 月に東京都小金井市立前原小学校 5 年生にて、AI 教育ソリューションの実証授業をしました。
子どもたちは、思い思いの画像を登録し、その画像を見つけると、オリジナリティあふれるセリフをロボホンが話すプログラムを作っていました。実体のあるロボットを通して、プログラムが体感できることに対して、子どもたちが目を輝かせながら取り組んでいたことがとても印象的でしたし、トライアンドエラーの過程で、自ら気付き、修正していく姿に未来への希望を感じました。
私たちシャープはこれからこのソリューションをより多くの子どもたちに体験してもらえるよう準備を進めています。今後も未来を生きる子どもたちに向け、教育分野への取り組みを進めて参ります。
Posted by
Khanh LeViet - Developer Relations Team and
Takuo Suzuki - Developer Relations Team