M5StickVとV-Trainingでお手軽画像認識 その2

投稿者:

こんにちは。すみやです。

スイッチサイエンスよりSDカード付きのM5StickVを発売しました。M5StickVにはSDカードの互換問題があるので、確実にV-Trainingを試したい人にはこちらがおすすめです。

さて、前回に引き続き、M5StickVとV-Trainingを触ってみたいと思います。今回はV-Trainingだけでなく、M5StickVの開発環境の一つであるMaixPy IDEを利用してみます。M5StickVにはK210が搭載されており、MaixPyというMicroPythonに近い環境で開発可能です。今回は、前回のV-TrainingとMaixPy IDEを使って、M5StickVで実際に動作するものを作ってみます。

MaixPy IDEはM5StickVの公式ドキュメントよりダウンロードできます。今回はWindows版を使用します。

日本語化されています。

前回の記事では、SDカード内のboot.pyを直接書くことでプログラムを編集しましたが、IDEを使用すればUSBケーブルで接続し直接プログラムを書き込むことも可能です。

まず試しに、前回のV-Trainingで出力されたboot.pyをMaixPy IDEで実行してみます。
SDカード内のboot.pyを削除し、SDカードには学習モデルのデータだけ残しておき、MaixPy IDEを立ち上げます。ツール→Select BoardよりM5StickVを選択し、左下のチェーンのマークを押せばM5StickVと接続されます。

接続が成功すると紫色の画面になります。

前回のboot.pyを開き、再生ボタンを押せば前回の記事同様の画像認識を行うことができます。

V-Trainingを利用したプログラムを書く際はここから始めるのが楽ですね。

似たような物体でも識別できるのがV-Trainingによる画像認識の便利なところです。
今回はそれを活かし「お茶とお茶割りを識別する装置」を作ってみます。

「ペットボトルとアルミ缶なら簡単に区別ができるんじゃないの?」と思われそうですが、写真にある通り M5StickVのカメラの画角では容器のラベルしか写りません。同じような緑色のラベルから「お茶」と「お茶割り」を識別してもらいます。まずはV-Trainingにお茶とお茶割りの画像を送り、学習データを取得します。

先ほど同様に学習データはSDカードに書き込み、MaixPy IDEでboot.pyを編集していきます。お茶を検出したときに、M5StickVの緑のLEDが点灯、お茶割りを検出したら警報音が鳴るようにします。

M5StickVにはスピーカーも搭載されているので、単体で警報音を出すこともできますが、今回はリレーユニットと、たまたま家にあった警報機を連動させてみます。

この警報機は24Vの電圧を加えると警報音がなります。その制御をリレーユニットで行います。このリレーユニットはM5Stack社から発売されているものです。

ちなみにM5Stack社から様々なUNITも発売しています。一部M5StickVで使用できないUNITもありますが、手軽に色々な機能の拡張が行えます。

さて、このリレーユニットにはドライバも内蔵されているので、M5StickVに接続するだけで使用できます。GPIOを制御するだけでリレーの制御ができるので、数あるUNITの中でかなり簡単に使用できます。GPIOの制御はMaixPyのこちらを参照しました。

そして実際にできたものがこちら。ぜひ音を出して再生ください。

というわけでお茶とお茶割りを識別する装置が完成しました。これでテレワークも安心ですね。今回は物体を識別して、LEDを光らせたり、リレーを制御する簡単なものでしたが、M5StickVを使えば物体の追跡など様々なことが行えるようです。また、UNITやM5StickCと接続すれば画像認識だけでもいろいろな応用ができると思います。

M5StickVとV-Trainingによるお手軽な画像認識を試してみたい方は、ぜひご購入を検討してみてください。M5StickVはスイッチサイエンスより販売中です。