ルネサス製EK-RA8P1の評価ボードが届いたので、「細かいことは後回しで、とりあえずAI動かしたい」 という気持ちのまま、サンプルを書き込んで動かすところまでやってみたメモ②。
前回試したのはこちらの顔検出デモ:

その時のメモはこちら
→https://qiita.com/tech-penguin12345/items/137e78be6afb213e73d7
今回は画像分類デモを試してみる:

ルネサス公式GitHubより引用
https://github.com/renesas/ruhmi-framework-mcu/tree/main/application_examples
開発環境の準備
まずはPC側の環境づくりから。
必要なもの
• e² studio: Renesas公式の統合開発環境(IDE)
• Flexible Software Package(FSP)v6.2.0:
マイコンが動くためのドライバやミドルウェア一式
※AIサンプルはFSP v6.2.0のみ対応しているので注意
ルネサスのRAマイコンを触るなら、この2つは必須。
e² studioとFSPは、FSPのプラットフォームインストーラからまとめて入れられる。
✓ダウンロード先:https://github.com/renesas/fsp/releases/tag/v6.2.0
Windowsを使用している人は、Windows用のFSPプラットフォームインストーラをインストールします。(インストールはウィザードに従って進めるだけ。特にハマるところはなかった。)

サンプルプログラムを持ってくる
今回は AI Navigatorを使って、サンプルをそのまま持ってくる。
e² studio上からAI Navigatorを起動して、画像分類 (Image classification) のサンプルを選択してダウンロードしてみる。
プロジェクト・エクスプローラーにダウンロードしたAIサンプルが表示されてた。これでサンプルの入手は完了。
評価ボードのセットアップ
サンプルを用意したら、次は実機。中身は左からLCD拡張ボード、メインボード、カメラモジュール。

ボード側の準備
評価ボードに書き込む
あとはe² studio側でポチポチ。
• ボード上で実行→ AIを実行をクリック

ここから書き込みが始まる。
完了まで数分かかるので、気長に待つ。
終わったらe2-studioが以下のような画面になるので、左上にある「再生」アイコンを2回クリック。

とりあえず動いたけども精度は…?
書き込みが終わると、評価ボード上でAIサンプルが動き始める。
さっそく色々なものを映して画像分類してもらう。
ちなみに、何が推論結果として表示されるかは、以下のラベルを参照:
https://github.com/renesas/ruhmi-framework-mcu/blob/main/application_examples/image_classification/src/ai_application/image_classification/Labels.c

①マグカップ
まずはルネサス公式GIFにもあったマグカップでトライ。
結果:
72% coffee mug(コーヒーマグ)
11% machine(機械)
06% espresso maker(エスプレッソメーカー)
04% toaster(トースター)
04% bottlecap(ボトルキャップ)
この画像分類デモは推論結果の上位5位が表示される仕組みらしい。
デモGIFに使用しているだけあって精度が高い。

②照明のリモコン
結果:
32% switch(スイッチ)
32% cash machine(ATM)
16% remote control(リモコン)
13% refrigerator(冷蔵庫)
05% pay-phone(公衆電話)

惜しい感じではあるが、そこそこ合っている。
スイッチと同じ確率でATMと推論しているのはちょっと微妙。
もう少し近づけてみた:
72% remote control
23% switch
03% joystick

全体を映すのではなく、近づけて大きくはっきりと物体を映すのが正解らしい。これだけで精度がかなり上がるようだ。
③ギター
結果
91% acoustic guitar(アコースティックギター)
06% guiter(ギター)
02% violin(ヴァイオリン)

アコースティックギターはAIにとって簡単なのだろうか。かなりの自信をもっている。
④ビール瓶
ラベルに"beer bottle"(ビール瓶)が存在していたので試してみた。
結果
57% wine bottle(ワインボトル)
18% hand blwer(ハンドブロワー)
12% projectile(ミサイル、ロケット)
9% cleaver(包丁)
8% power drill(電動ドリル)

ワインボトルは惜しいが、ビール瓶は出てこなかった。
どちらも似ているが、beer bottle というラベルが、かなり限定的な見た目で学習されている可能性が高い気がする。
以下はちょっといじわる問題。ラベルに存在しないものも映してみた。
⑤だるま
結果:
81% mask(マスク)
10% helmet(ヘルメット)
03% goblet(ゴブレット)
02% ski mask(スキーマスク)
02% sharpener(シャープナー)

AIは「絶対”mask"!」と自信をもっている様子。
マスクというと、個人的には医者や花粉症の人が着ける、不織布マスクを思い浮かべるが、このAIが想定している mask はお面らしい。

たしかにJapanese maskで検索するとお面が出てくる↑
「Daruma」というラベルが存在していない以上、これはただの「顔が描かれた物体」として認識されたらしい。
⑥ポムポムプリンのマスコット
結果
60% bathtub(バスタブ)
14% soap dispenser(ソープディスペンサー)
09% washbasin(洗面台)
09% tub(浴槽)
05% switch(スイッチ)

なぜ水回りばかりなのか。
しかも60%の確率でバスタブだと言っている。
滑らかで、丸くて、白っぽい(淡い)色、という特徴からこの判断を下したのだろうかと推測する。
まとめ
EK-RA8P1 の評価ボードで、「とりあえずAIを動かす」という目的は、今回もかなりあっさり達成できた。
この手軽さは、マイコンAIの入口としてかなり良い体験だった。
一方で、ラベルに存在しないものは、見た目が近い別物として推論される。
これは精度が低いというより、用途が絞られていないモデルをそのまま使っている結果だと感じた。
逆に言えば、用途を決めて、トレーニングすれば、マイコンでも十分に実用的な画像分類はできそうである。
また、物体をカメラに近づけたり、背景をシンプルにしたりすると、推論結果が安定する場面も多い。
ベースモデルのMobileNetは、身の回りの家電や日用品のラベルは意外と少ない一方で、マイナーな動物や食べ物のラベルがやたら充実しているので少々試しづらかった。しかし、AIが何を見ているかを理解する教材としては面白かった。










