2025年1月27日

022-1.SPIKE&AIカメラ入門-第10回「物体を認識するロボットを作る」

この連載では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」と「ハスキーレンズ(HuskyLens)」を組み合わせたロボットの作り方を紹介したいと思います。ハスキーレンズとはDFROBOT(Zhiwei Robotics Corp.)というメーカーが開発した特殊なカメラ(AIカメラ)です。このカメラを使って、物体追跡、物体認識、ライン追跡などの機能を備えたロボットを作ってみましょう。この連載では最終的にハスキーレンズをSPIKEプライムのラージハブに接続して動かしたいと思います。
ハスキーレンズの基本的な情報については、メーカーのWikiページを読むことをオススメします。ページのURLは以下のとおりです。
https://wiki.dfrobot.com/HUSKYLENS_V1.0_SKU_SEN0305_SEN0336(文/松原拓也)

◆ 20種類の物体を認識する

今回はハスキーレンズを使って、「物体認識(Object Recognition)」を行ってみたいと思います。 物体認識モードというのは、その名の通り物体を認識する機能です。以前、紹介した物体追跡と違って、このモードでは認識できる物体があらかじめ20種類に固定されています(飛行機、自転車、鳥、船、瓶、バス、車、猫、椅子、牛、食堂、犬、馬、バイク、人、鉢植え、羊、ソファー、電車、テレビ)。しかし、そのかわり、複数の物体を認識できます。
認識を行うには、次の下準備が必要です。 ハスキーレンズの機能ボタンをスライドして、「Object Recognition」モードに合わせます。 さらに、機能ボタンを長押しして、設定画面に移行します。そして、「Learn Multiple(複数の学習)」の項目をオンにします。オンの状態ではスライドスイッチが水色に表示されます。最後に「Save&Return」を選択して、設定内容を記録します。
これで複数の物体認識が出来るようになりました。

画面の十字マークを学習したい物体に合わせて、学習ボタンを押すと、物体を学習します。 写真は「犬(dog)」を学習した例です。
学習ボタンから指をはなすと、学習の継続を確認するメッセージが表示されます。ここで、制限時間内に学習ボタンを押すと、次の物体を学習することができます。もし、時間切れになると、学習は終了します。学習内容を消したい場合には、学習ボタンを短く2回押しましょう。

ミニフィグを「人(Person)」として学習してみました。 「ID1」と「ID2」が割り振られるかと思ったのですが、両方とも「ID2」になってしまいました。理屈がよくわかりませんが、そういう仕様のようです。

◆ 物体認識のプログラム

SPIKEアプリ Legacyを使って、前回のプログラムを改造します。

前回と同じロボットを使います。
カメラの手前にミニフィグを置きます。

実行結果はこの通り、配列「answers」に格納されます。
2体のミニフィグの座標が表示されています。無事に認識することができました。

◆ 4つのプログラムを1つに合体

今回までに「物体追跡」「物体認識」「ライン追跡」「色認識」の4つの機能を使ってきました。
これらは4つの独立したプログラムだったのですが、これを1つのプログラムに合体させてみました。変数「modenum」の値(0~3)を変更するだけで、 機能を切り替えることができます。

たとえば、modenumに3を代入して実行すると、このように「色認識モード」になります。
これで、より使いやすくなったと思います。

今回作成したプログラム(SPIKEアプリ Legacy用)

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。