M5StickVで簡単物体認識

IT

今回はM5StickVで簡単に物体認識をする方法を紹介します!

M5Stack社が提供しているV-Trainingというサービスを使います!

V-Trainingとは

M5Stackが提供しているサービスの事です.M5StickVで撮った写真をクラウドにアップロードするだけで簡単に物体認識モデルを作ってくれます.

写真を撮るだけで画像認識モデルを作ってくれますし,サンプルプログラムも用意してあるので超簡単に物体認識をすることができます.プログラミングなしでできます!

V-Trainingの使い方

このページに従っていけば基本できます.写真を撮るプログラムなんかもここからダウンロードできます.

M5Stack - A series of modular stackable development devices
M5Stack Documentations - Modular Rapid Product Development Toolkit, based on ESP32. ESP32 is a series of low cost, low power system on a chip microcontrollers w 

流れはこんな感じです.(画像は上記のページより)

要は写真撮ってクラウドにアップロードするだけです(笑)

SDカードが必要となります.

ファームウェア書き込み

ファームウェアの書き込みについては前回の記事にまとめてあります!

同時にSDカードの対応可能問題についても記載してあります.

AIカメラ搭載マイコン「M5StickV」の紹介&使い方【商品レビュー】
 

プログラムをダウンロード

ここよりzipファイルをダウンロードします.

f:id:take_m5:20191225211707p:plain

zipを解凍して,出てきたファイルをSDカードに入れます.

SDカードのルートに入れるようにしてください.

SDカードのルートに入っているboot.pyというプログラムが,M5StickV起動時に実行されるプログラムです.

M5StickVはSDカードの相性問題があるので,ちゃんと動作するSDカードを選びましょう.

写真を撮る

プログラムが入ったSDカードをM5StickVにいれて起動すると以下のような画面が出てくると思います.

f:id:take_m5:20191226221837j:plain

しばらく経つとカメラの画面になります.

画面横のボタンで撮影,上側のボタンでクラスを選択します.

クラスは10種類用意されています.

公式サイトに書いてある注意点は,

1.画面内に物体が1つだけ収まるようにする(ほかの物体を映さない)

2.1クラス当たり35枚撮影する(そうしないとトレーニングで通らないらしい)

3.3クラス以上用意することを推奨する(より良い結果を得るため.3クラス未満でもいけるのかな?)

です.

今回はその辺にあったカラー画びょうを使います.

..と思ったのですが色だけで判別されるかも!って思ったので同じくその辺にあったコカ・コーラのキャップも使います(笑)

f:id:take_m5:20191226221707j:plain

クラス1に黄画びょう,2に赤画びょう,3にコカ・コーラのキャップという風に撮影していきます.

注意点にあったように,他の物体を映さないようにして,物体の向きとか距離とかを変えつつ撮影してみます.

背景は一応統一します.

私は各クラス50枚程度撮影しました.

撮ったデータをクラウドへアップロード

撮影が終わったらM5StickVの電源を落としてSDカードをPCにつなげます.

M5StickVの電源はUSBを取って,電源ボタン(SDカード側)を6秒押せば消えます.

SDカード内のTrain,Validフォルダに撮影した画像がクラスごとに格納されていることを確認します.

f:id:take_m5:20191225215504p:plain

確認したらSDカード直下のtrain,valid両フォルダをzipに圧縮します.

次に,ここ(V-Training)にアクセスしてメールアドレスを入力し,先ほど作ったzipをアップロードします.

f:id:take_m5:20191225220536p:plain

結構待ちます.

StatusにFinishedが表示されると完了です.入力したメールアドレスに作られたモデルデータが送られてきます.

割と謎のエラーが出るのでその都度やり直してみてください.

あとメールが来るのが数十分後だったり数時間後だったりむらがあるので注意してください.

できたモデルをダウンロードして動かす

送られてきたメールにzipファイルのダウンロードURLがあるので,zipファイルをダウンロードします.

zipを解凍して,出てきたファイルをSDカードのルート入れます.

kmodelがV-Trainingで学習してできたモデルになります.

プログラムが入ったSDカードをM5StickVにいれて起動します.

このように学習した物体をちゃんと認識できています.なかなかの精度!

赤画びょうとコカ・コーラのキャップも分別できてますね!

f:id:take_m5:20191226221745j:plain

ただこのように複数の物体を検出できなかったり,何も映ってなくてもなにか認識したりします.

最後に

V-Trainingを用いてプログラミングなしで簡単に物体認識をする方法を紹介しました.

これを用いて何か面白いことができそうですね!

boot.pyファイルをいじれば認識した際になにかアクションを起こすとかできます.ぜひやってみてください.

私は機械学習についてはほんと勉強不足なので断言はできないのですが,今回作るモデルでは複数の物体検出はできないかと思われます.

複数の物体検出をできるモデルの作成には一応成功しているのでまた機会があれば紹介します!

以上です!何かあればコメントどうぞ

コメント

タイトルとURLをコピーしました