2020年9月23日水曜日

指先に載るAIカメラ

念のため、末尾に(注1)(注2)(注3)を追記しました。)
→続編はこちらにあります。

  掌どころか指先に載ってしまう、この小さなカメラですが、AI(人工知能)のためのニューラルネットワークプロセッサ(CNNやFFTアクセラレータを含む)を搭載しているとのことですから驚きます。日経ソフトウェア最新号(2020年11月号)に紹介記事が出ています。M5StickVという製品ですが、注目度が高く品薄のようです。ようやく、秋葉原の店の通販で、3,500円で購入できました。

AIネットワークプロセッサ搭載の超小型カメラ(レンズは背面)

    初期状態で搭載されているのは、顔検出アプリです。人の顔の膨大なデータを使った学習は既に終了していて、その学習結果を使って、顔をリアルタイムに検出するものです。さっそく試してみました。首相官邸のホームページに、新内閣の閣僚が並んだ写真が載っています。検出結果の一例を以下の図に示します。管総理と麻生副総理のお顔が検出され白い枠線で囲まれています。ベリーグッド。見せますね。

管総理と麻生副総理(首相官邸ホームページの写真からの顔検出)

    これ以外にも、学習済みデータはいくつか用意されています。例えば、有名な手書き数字認識(MNIST)のための学習済データ(モデル)も提供されています。これを利用して、自分で紙に描いた数字をリアルタイムに認識させるには、[入力画像前処理]+[forward計算]+[表示処理]の合計で、マイクロPythonプログラム約25行だけ書けばよいのです。すなわち、学習過程のプログラムは書きませんが、認識するためのプログラムは高レベルで小さく作れますので、AIの初歩の勉強にもなります。こんなに小さな安価なデバイスで、それができるは素晴らしいと思います。

手書き数字「5」を認識した状態(confidence = 0.829)
    
 もうひとつ行ってみます。Brownie 1000というアプリも公開されています。何かものを撮影した場合、1000種のラベルのどれに該当するかを、音声で答えてくれます。以下の例では、犬のぬいぐるみを撮影したところ、日本語で、「いぬです」と返って来ました。なかなかです。

「犬です」と音声で応答(Brownie 1000による)

 以上のような既存のアプリや、提供されている学習済のデータ(モデル)では物足りなくなった場合は、ちゃんとそれに応えてくれます。例えば、自分で多種類のコインを多数持っていて、コインを識別させたいとします。その場合は、種類毎にコインの画像(各ラベル毎に35枚以上)を用意して、指定のwebサイトへ送れば、その学習結果を送り返してくれるサービスもやっています。上記の手書き数字の場合と同様に、返送されてくる学習結果を利用して認識(識別)用の短いプログラムを作れば良いのです。実用性はあまりないかと思いますが、AIの勉強にはとてもよいデバイスではないでしょうか。

(注1)ここで利用する学習済みモデルは、kmodelという形式です。しかし、Google ColabやAnacondaで別途学習させてできるモデル(h5 keras)をkmodelに変換するツールもあります。したがって、中級から上級の人にとっても、このデバイスは色々と使い道があるかもしれませんね。

(注2)ただし、このデバイス、まだ不安定な動作をする場合もあり、色々と調査して対処する必要が生じるかも知れません。実際、小生の経験では、最新のファームウェアに書き換えた場合、上記のいずれの例も不具合が起こるため、少し古いファームウェアにダウングレードしました。

(注3)残念ながら、通信機能(WiFiなど)は搭載されていません。他のデバイスと連結させて何とか通信できないこともないようですが、WiFi機能搭載のM5StickV+はすでに開発済とのことですから、その国内発売を期待したいと思います。

0 件のコメント:

コメントを投稿