どうも、まさとらん(@0310lan)です!
今回は、親指サイズの超小型ボディにLinuxを搭載し、さらにAI開発エディタやカメラなども詰め込んだ強力なカメラモジュールをご紹介します。
手持ちのパソコンにあるUSBに挿すだけですぐに起動し、専用の開発エディタを使ってAIカメラを試したりトレーニングをしたりなどが簡単にできるのが特徴です。
さらに顔認識、オブジェクト分類、トラッキング、カラー検出…など10種類以上の機能がすぐに利用できるうえ、Jupyter Notebookでモジュールを制御できるので便利です。
AIを活用したい人やIoT開発に興味がある人も含めて、ぜひ参考にしてみてください!
■「M5Stack UnitV2 AI カメラ」とは
モニターやセンサー類などが全部入りの小型マイコンモジュール「M5Stack」シリーズで知られる中国のスタートアップ企業をご存知でしょうか。
同社が新しく2021年に発売したのが今回ご紹介する「M5Stack UnitV2」と呼ばれるAIカメラモジュールです。非常に小さな本体なのにAI開発に必要なツールをぎっしり詰め込んでいるのが印象的です。
パッケージを開けてみると、本体とは別にスタンドパーツ、microSDカード(16GB)、USBケーブルなどが同梱されています。
とりあえず使ってみたいという方であれば、別途なにかを買い足さなくてもすぐに使えるので便利でしょう。
本体の大まかな構成は以下のようになります。
この小さなボディにマイクやGrove互換コネクタまで搭載されているのは助かります。
ちなみに本体の発熱を抑えるための冷却ファンは非常に静音です。本体の傾ける角度によって多少の音量変化はありますが、周囲の環境音に消されるほど気にならないレベルなので優秀だと感じました。
現時点ですぐに試せるAIカメラの機能としては次のようなものがあります。
- 対象物の認識&カスタムトレーニング
- 顔認識&検出、トレーニングによる顔認識
- 対象物の自動トラッキング
- 形状認識&マッチング&面積の自動計算
- カラー検出&トラッキング
- マイクからの音声取り込み&周波数の可視化
- QRコードの認識&内容読み取り
など
これらの機能を構築不要ですぐに試せるのは大きな魅力と言えます。
ちなみに「M5Stack UnitV2」は公式サイトから購入するか、国内であれば「スイッチサイエンス」「共立エレショップ」「マルツオンライン」などからでも購入(税込¥9,592 ※記事公開時点)が可能です。
■「M5Stack UnitV2」の使い方
それでは「M5Stack UnitV2」をどのように使えばいいのか詳しく見ていきましょう。
基本的な使い方はとても簡単で、本体とパソコンをUSBケーブルで接続するだけです!
数秒ほどでシステムの起動とネットワーク設定が自動的におこなわれます。
次に、パソコンからブラウザを起動して以下のURLにアクセスしてみてください。
するとAI開発用のビジュアルエディタが起動します。
このエディタを利用すれば、すでにセットアップ済みのAIカメラを活用したツールをすぐにでも試すことができるのです。
ちなみにWindows / Macを利用している方は、初回のみ専用のドライバーをインストールする必要があるので公式のチュートリアルを参考に設定を済ませておきましょう。
■AIカメラを試してみよう!
それではさっそくですが、AIカメラを使ったデモを試してみましょう!
ビジュアルエディタの上部には、すぐに利用できるツールが現時点で13種類用意されているのが分かります。
この中から「Online Classifier」を選択してください。
このツールはカメラで撮影した対象物を認識できるようにトレーニングすることができます。トレーニング後はカメラにかざすだけでその対象物が何かを識別できるようになるわけです。
今回はサンプルとして「手」のカタチを識別できるようにしてみましょう。ひとまず「グー」と「パー」のカタチをトレーニングしてみます。
そこでまずは画面下部にある4つのボタンから「reset」をクリックして初期化をしておきます。
次に、新規クラスを作成します。「グー」のカタチを認識させたいので名称を「gu」としておきました。
クラスの横にあるチェックボックスを選択状態にしておくのを忘れないようにしてください。
あとはカメラに「グー」のカタチをした手をかざして「train」ボタンをクリックします。
緑の枠線内に手が収まるように注意してください。「train」ボタンをクリックするたびに画像が1枚撮影されます。手の角度などを変えながら何枚か撮影を続けて精度を高めましょう。
最後に「save&run」ボタンをクリックするとトレーニング完了です。
今度は「パー」のカタチを認識させてみましょう。
さきほどと同じ手順でクラスを追加します(今回は「pa」という名称にしました)。
作成したクラスにチェックが入っていることを確認してから、カメラに手をかざして「train」ボタンをクリックしていきます。
何枚か撮影したら「save&run」ボタンをクリックすれば完成です!
作業としてはとてもシンプルでしたが、カメラに「グー」や「パー」のカタチをかざしてみてください。しっかりと識別できているのが結果からも分かります。
「グー」のカタチをかざすとスコアはおよそ「96.8%」で、「パー」のスコアは75%ほどなので違いを識別できていますね。
今回は「手」を識別させましたが、対象物は何でもよくて、たとえば公式サイトにはM5Stackのプロダクトを識別させるデモが掲載されています。
他にも工場の生産ラインで不良品を識別させるなど、アイデアしだいでさまざまな活用ができるようになるでしょう。
■AIカメラを活用してみよう!
せっかくなので、「M5Stack UnitV2」で提供されている他のツールも少しご紹介をしておきます。
【Object Recongnition】
これはすでに学習済みのモデルを利用して、対象のオブジェクトを認識できる機能を提供しています。
パソコンに表示させた画像を「M5Stack UnitV2」で撮影しているのですが、それでもしっかりと対象物を認識できているのが分かると思います。
デフォルトで利用できる学習モデルとして「YOLOFastest」と「NanoDet」が用意されていますが、もちろんカスタムモデルを作って利用することも可能です。
【Face Detector】
これは人間の顔をリアルタイムに検出してくれる機能を提供しており、顔のパーツを5ポイントで検出できるようになっています。
少し顔が傾いていてもしっかりと検出できており、もちろん複数人にも対応しています。
ちなみに「Face Recongnition」というツールも提供されており、こちらは人の顔をトレーニングさせて認識できるようにしてくれます。
【Color Tracker】
これはマウスで範囲選択した部分のカラーだけを認識してくれる機能を提供しており、マスクモードにするとカラーを識別できているかを分かりやすく表示することも可能です。
カラーを識別したあとは、対象物が動いてもある程度トラッキングしてくれます。
他にも、マイクから音声を取り込んで高速フーリエ変換によって周波数を可視化できる「Audio FFT」、QRコードを認識して内容を取得できる「Code Detector」、正方形や三角形などの形状を認識して面積も計算できる「Shape Detector」、特殊な形状の画像をアップロードすることで認識できるようになる「Shape Matching」などが提供されています。
このように「M5Stack UnitV2」を使うと、これらの高度な機能を誰でもすぐにフル活用して開発を進められるのが大きな魅力と言えます。また、ほとんどのツールはリアルタイムに検出結果をシリアルポートを介してJSON形式で出力できるようになっているので便利です。
■【おまけ】Jupyter NotebookとSSH接続について
「M5Stack UnitV2」にはドキュメント内にコードを埋め込んで実行できるJupyter Notebookと連携させたり、SSH接続によってターミナルから操作できるようにする機能も提供されているので合わせてご紹介しておきます。
ビジュアルエディタの画面右側にあるオプションアイコンをクリックして、ノートブックモードに切り替えるボタンをクリックします。
するとJupyter Notebookが起動するので、デフォルトで作成されているドキュメントを開いてみましょう。
このドキュメントはチュートリアルになっており、上から順番にコードを実行してインタラクティブに試すことができます。「M5Stack UnitV2」の機能を利用することも可能で、たとえばカメラを起動して撮影した画像を白黒写真に変換するようなことも可能です。
学習用のドキュメント作りや、AIカメラを活用した開発の資料作成としても有効活用できるでしょう。
次に、ターミナルを起動して以下のコマンドを実行してみてください。
$ ssh m5stack@10.254.239.1
パスワードはデフォルト状態だと「12345678」で設定されています。コマンドが成功すると、ターミナルから「M5Stack UnitV2」にアクセスできるようになります。
ちなみにJupyter Notebookのファイルは「/home/notebook」に配置されており、モデル関連のファイルリソースは「/home/m5stack」にあります。
■動画&ゲームでプログラミングが学べるpaizaラーニング
動画でプログラミングが学べるpaizaラーニングでは、Python、Java、C言語、C#、PHP、Ruby、SQL、JavaScript、HTML/CSSなど、プログラミング初心者でも動画で学べる入門レッスンを公開しています。
「Python入門編」「C#入門編」「ITエンジニアの就活準備編」といった人気講座も完全無料となっておりますので、プログラミングを学びたい方・ITエンジニアを目指したい方はぜひごらんください。
ちなみにpaizaには「Python×AI・機械学習入門編」という講座があり、機械学習の入力として画像のデータを扱っています。
人気声優の上坂すみれさんによる進行役のスベトラーナ・小百合・ベレフスカヤと一緒に、実際に画像認識技術を使いながら、初心者でも機械学習を体験・学習できるレッスン内容になっています。
詳しくはこちら
■まとめ
今回はパソコンのUSBに接続するだけですぐに高度なAIカメラを利用できるモジュールをご紹介しました。
とても高度なAIを活用できるのに、誰でも簡単に扱えるように工夫されているのが大きな特徴です。ArduinoやRaspberry Piなどと組み合わせれば、その可能性は無限大に広がります。
AIを活用したい人やIoT開発にご興味ある方は、ぜひ参考にしてみてください!
<参考リンク>
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら