SensorTile kitで使えるファームウェアFP-AI-SENSING1で、A.I.の推論デモを試してみます。
目次
FP-AI-SENSING1のセットアップ
FP-AI-SENSING1のダウンロード
まずはファームウェアをダウンロードします。下記のURLから『FP-AI-SENSING1』をダウンロードします。
https://www.st.com/en/embedded-software/fp-ai-sensing1.html
FP-AI-SENSING1のインストール
ダウンロードしたファイルを展開して、下記のファイルをSensorTileに書き込みました。
バージョンによってフォルダ構成やファイル名が異なるようなので、注意してください。(2019年8月)
書込み方法、その他使い方は下記の公式動画を参考にしました。
動画だとNucleo-F476RGのST-Linkを使っていますが、別に他のNucleo基板でも良いでしょうし、単にST-Linkを使っても大丈夫だと思います。でも、Nucleo基板の方が付属の書き込みケーブルをそのまま使えるのでおすすめです。
FP-AI-SENSING1の推論デモを試す
機能リストをチェック
ST BLE Sensorと接続して、どんな機能があるのかチェックしてみます。
デフォルトのファームウェアより機能が絞られてますね。
”Activity Recognition”と”Acc Event”はデフォルトと同じ機能なので、判定の正確さがどの程度改善しているのか確認してみたいと思います。
”Audio Classification”と”AI Data Log”はデフォルトにはない機能なので、実際に使ってみたいと思います。
Activity Recognition
FP-AI-SENSING1は小走りのクラスはないようです。確かに小走りはあってもなくてもという感じですよね。
そして、実際に使ってみた感じですが、元々A.I.を使わなくても正確だったこともあって、正直違いはわかりませんでした。ちょっと残念な感じですね。
このデモのA.I.のアルゴリズムは3通りあります。
- HAR_GMP:STが独自に設計したネットワークモデルに、ST独自のデータセットで訓練したアルゴリズムです。何もしないとこれが使われます。
- HAR_IGN:Andrey Ignatovが設計した畳み込みネットワークをベースに、それを簡略化したモデルです。訓練データはST独自のものです。
- HAR_IGN_WSDM:上記のHAR_IGNとネットワーク構造は同じですが、訓練データにJennifer R, Kwapisz, M. Weiss, Samuel A. MooreによるWSDM(Wireless Sensor Data Mining)を使ったものです。
HAR_IGN以外のアルゴリズムを使う方法は、ソースコードを覗いた感じだと、自分でファームウェアをビルドし直す必要がありそうです。これは次回に回したいと思います。
Acc Event
こちらはクラスの違いはありませんでした。A.I.も使っていないようです。
実際に使ってみた感じは、ちょっと改善したかな?という感じはあります。でも私の感覚でしか判断できないので微妙なところです。
Audio Classification
マイクの音声を使ってどこに居るのか判断するデモンストレーションです。公式動画を見るとこれが目玉のようです。
実際試したところ、Vehicleは非常に精度よく判定してくれました。エンジンをかけるとVehicleになり、エンジンを切るとOutsideになります。ドライブ中もラジオをかけてノイズを増やしてみても、ちゃんとVehicleのままなのは面白いと思いました。
ただ、それ以外のシーンではほとんどOutsideのままで、家の中にいても全然Insideになってくれませんでした。この辺は訓練データがまだ不十分ということなのかもしれません。
ちなみにこちらも畳み込みネットワークの一種を使っているようです。
AI Data Log
機能の名前からして推論結果を保存できるのかと思ったら違いました。デフォルトの”SD Logging”とほぼ同じ機能で、追加でマイク音声もSDカードに保存できるものでした。
また、右下の『CONTINUE』を押すとラベル付けのための画面が表示されます。
”1gou”と”2gou”は私が追加したラベルです。例えば”1gou”にチェックを入れてCSVに保存すると、CSVにラベルが追加されます。
ラベルが挿入されるのは、ラベルをONした時と、OFFした時の両方です。なので、学習させたい動きをしている間、ラベルをONしておき、終わったらラベルもOFFする使い方が良さそうです。
次回予告
SensorTile上で推論を動かすことができましたが、最終的には、自分で訓練データを集めて学習し、自作のアプリケーションで推論を実行する、というところまでやりたいと思っています。
それにはFP-AI-SENSING1のソースコードが参考になると思いますので、次回はSensorTileの開発環境を構築して、解析・調査を行いやすくしたいと思います。