xor

二兎を得るか、一兎をも得ざるか

【エッジAIカメラ】HuskyLens と Wio Terminal で 烏骨鶏を追尾する

f:id:ukkz:20200909050927p:plain

DFRobot社製のエッジAIカメラ "HuskyLens" を試しに触ってみると、物体の認識や追尾があまりに簡単すぎてびっくりしました。

Wio Terminalは、IoTデバイスでは珍しい5GHz帯のWi-Fiに対応したプロトタイピングボードです。両者を連携させたAIカメラデバイスを作る手習いとして、HuskyLens APIのサンプルスケッチがWio Terminal上で動作するかやってみました。

www.dfrobot.com

jp.seeedstudio.com

準備

Wio Terminal側はArduino IDEで開発します。
あらかじめボードライブラリは導入されていることが前提です。

wiki.seeedstudio.com

今回はI2Cで受けた情報をPCのシリアルモニタに流すだけなので、Wio Terminalの機能を全く使っていませんが、動作テストということでご承知おきください。

HuskyLensのファームウェアアップデート

f:id:ukkz:20200909045419p:plain

HUSKYLENSUploaderを用いて本体をアップデートしておきます。
Mac環境ですが、USBシリアル(VCPドライバ)とpyserialはあらかじめ入ってたので、HuskyLensをMacに接続してそのままアップデートコマンドを打つことでさらっとできました。
なおこの記事投稿時点で最新安定版は0.4.7のようです。

お互いを接続する

f:id:ukkz:20200909053826p:plain

HuskyLens付属のケーブルで、上図のようにWio TerminalとI2Cとして接続します。

Wio Terminal側コネクタはGroveですが、HuskyLens側がどうやらそうではないようなので、両端Groveなケーブルでは接続できません。
HuskyLens側ケーブルの末端は4本のジャンパワイヤ(メス)となっており、これをまとめてWio Terminalの端子1つには接続できないため、電源系統2本を右側Groveに、I2C系統2本を左側Groveに、分散して接続します。

Wio Terminal側にHuskyLens用ライブラリをいれる

Wio Terminal側はArduino環境で開発しますので、Arduino環境ボードからHuskyLensを操作できるライブラリを導入します。

github.com

f:id:ukkz:20200909045453p:plain

ZIPで全体をダウンロードし、解凍してから中身の HUSKYLENS フォルダのみをArduinoのlibrariesフォルダに移動させることで、手動でインストールします。

f:id:ukkz:20200909045521p:plain

次いで examples 内の HUSKYLENS_I2C.ino を開き、そのまま書き込みを行います。
書き込めたらシリアルモニタを表示してみましょう。
認識ターゲットとして、実際に烏骨鶏の中雛を追尾させてみた動画がこちらです。

youtu.be

烏骨鶏はほとんどが真っ白、一部黒いのもいますが、毛の色がはっきりしているので色認識モードで追尾することができました。
仮に放鳥中を監視するとして、いちいちカメラ画像をオンラインで確認しなくても、色認識した座標が一定時間・一定範囲で動かなければ「脱走した」「元気がない」とみなして、LINE Notifyに通知を送ったりができそうですね。