2020年10月8日木曜日

超小型AIカメラをコイン識別器にしてみる

【要旨】前回記事の続編です。雑誌を参考に、超小型AIカメラを(コーデイング無しで)コイン識別器にしてみました。AIの初歩的な体験ですが、いかがでしょうか。

独自画像を学習させたいが、そのデータは?
 前回記事は、このメーカーが提供する種々のアプリ(顔検出や手書き数字識別など)の紹介でした。今回は、独自画像を識別してみます。と言っても、なかなか題材がありませんが、手元に何種類かの外国コインがありました。それを使います。以下の5種類を対象とします。

学習用画像の準備
 この小型AIカメラで、5種類のコインそれぞれ40枚を撮影します。コインはそれぞれ8枚づつ用意しましたが、それを色々な角度から写して40枚にします。合計で200枚の画像です。そのうち、8割は学習用(training)に、残りの2割を検査用(validation)に用いることにします。

画像の学習
 
ここが最も重要なパートなのですが、このメーカーでは、規定に沿った画像を送ると、学習結果を返してくれるという、有り難いサービス(m5stack Training Service)を提供しています。すなわち、自分で何もコーディングせずに、学習済みモデルを入手できるのです。そればかりか、下図のように、学習状況(accuracyとlossのグラフ)も送り返してくれます。さらに、その学習モデルを動かすサンプルプログラム(マイクロPythonによる)も付けてくれます!これは、やってみるしかないです。


■これでコイン識別器のできあがり!
 あとは、送られてきたサンプルプログラムと、学習済みモデルをいっしょにマイクロSDカードに格納して、この超小型AIカメラに挿入するだけです。それを使ったテスト結果を以下に示します。学習時とは別のコインを使ったテストですが、例えば、10_Pfennigや20_EuroCentは0.98〜0.99のconfidenceで認識されました。

感想

 「具体的に自分でコーディングしないとAI技術を学ぶことにならない」というのも確かではあります。しかし、大学などの授業で、AIの考え方や基本技術を学ぶ前に(あるいは後でもいいですが)上記のような体験をすることは意味があるのではないかと思います。AIに馴染む、あるいは、その中味を知りたいという意欲をかき立てることに繋がるようにも思います。

 返送されてくるサンプルプログラムは、上図のように認識結果を表示するだけの非常に短い(40行程度の)ものです。Pythonを少し知っていれば、これを拡張(例えば音声を付けたり、第2候補を示したり)することも難しくないです。


2 件のコメント:

  1. こんなことができるんですね。知らなかったです。コイン識別機能は気にはなっていましたが、作れるとは…。

    返信削除
    返信
    1. ご興味をもっていただきありがとうございます。AIもずいぶん身近になってきたようです。

      削除