2025年1月27日

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

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

◆ どのような物でも認識できる

今回はハスキーレンズを使って、「物体分類(Object Classification)」を行ってみたいと思います。「物体分類」モードは前回に紹介した「物体認識(Object Recognition)」と名前が似ていますが、別の機能です。 「物体認識」と「物体分類」は物体を認識するという点では同じです。「物体認識」は「犬」や「猫」「人」など、あらかじめ決まった20種類の物体を認識することができます。一度に複数の物体を認識したり、追跡することが可能です。 一方、「物体分類」は物体の種類に決まりがなく、どのような物でも認識することができます。便利な反面、制約もあります。画面上のワクが固定されていて、物体を追跡することができません。一度に複数の物体を認識することもできません。

「物体分類」モードを使用するには、次の手順で下準備を行います。 機能ボタンをスライドして、「Object Classification」に合わせます。 さらに、機能ボタンを長押しして、設定画面に移行します。そして、「Learn Multiple(複数の学習)」の項目をオンにします。オンの状態ではスライドスイッチが水色に表示されます。最後に「Save&Return」を選択します。これで準備は完了です。

ここでは例として、2種類のミニフィグを学習します。 画面上のワクの中にミニフィグ1を合わせて、学習ボタンを長押しします。ボタンを押している間、「○○/30」の数値が増えていきます。学習中はカメラの距離と角度を変えることができます。ID番号は「1」が割り振られます。 学習ボタンから指をはなすと、学習を継続するか確認のメッセージが表示されます。ここで、制限時間内に学習ボタンを押すと、次の物体を学習することができます。 もし、時間切れになると、学習は終了します。学習内容を消したい場合には、学習ボタンを短く2回押しましょう。

ミニフィグ2を学習中の様子です。ID番号は「2」が割り振られました。 この調子でいろいろな物体を学習させることができますが、今回は2つ学習するだけで止めておきます。

ハスキーレンズ単体で動作をテストします。 カメラでミニフィグ1を写すと「ID1」と表示され、ミニフィグ2を写すと「ID2」と表示されました。「物体認識」の場合は2種類のミニフィグが同じID番号として認識されてしまいましたが、「物体分類」の場合はきちんと別々のID番号を返してくれます。

◆ 物体分類のプログラム

ラージハブ側からハスキーレンズを制御して、物体分類を行うプログラムを作ります。
2023年9月現在、SPIKEアプリ3はまだUARTの制御には対応していません。そのため、SPIKEアプリ Legacyを使ってプログラムを作成します。

前回のプログラムを改造して作ることにします。物体分類のコマンドを追加しました。
変数「modenum」の値を変更するだけで、5種類のモードを選択することができます。

プログラムを実行中の様子です。カメラに写っているミニフィグに応じて「id=○」の値が変化します。小さく写っているだけでも正しく反応するところが面白いです。
しかし、追跡することができないため、「x」「y」などの値は変化しません。2種類のミニフィグがいっしょに写ってしまうと、正しく認識できないという欠点もあります。複数の物体を認識したり、追跡をしたい場合には「物体認識」モードに切り替えましょう。

ハスキーレンズの使い方を1年近く紹介してきましたが、今回でAIカメラ入門を終了したいと思います。まだ顔認識やタグ認識という機能を紹介していませんが、プログラムを少し修正するだけで対応させることができます。自力で挑戦してみましょう。

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

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