今回は、このモーションセンサーの詳細設定を行います。ADSP-BF707用のファームウェアは、VOS(Video Occupancy Sensor library)というアナデバ提供のライブラリです。
このライブラリの特徴は、センサーが取得した画像から動きのある物体の情報(矩形座標、重心)を数10バイトのBLOBデータとして出力できる点にあります。
typedef struct __Blob { /*! X co-ord of Top Left Corner of Bounding Box of Blob */ uint16_t nMinX; /*! Y co-ord of Top Left Corner of Bounding Box of Blob */ uint16_t nMinY; /*! X co-ord of Bottom Right Corner of Bounding Box of Blob */ uint16_t nMaxX; /*! Y co-ord of Bottom Right Corner of Bounding Box of Blob */ uint16_t nMaxY; /*! Moment 1/Centroid X of Blob */ uint32_t nCentroidX; /*! Moment 1/Centroid Y of Blob */ uint32_t nCentroidY; /*! Moment 0/Size of Blob */ uint32_t nArea; }BLOB;
このBLOBデータはソースコード中ではこのように定義されています。矩形データの位置座標、重心が含まれています。
この矩形情報の抽出がどのようになるか、実際にやってみましょう。
いつもの通りADVisionSensorControllerを起動します。タブメニューの中からVOS Configuration を選択します。ここでは、モーションセンサーの詳細設定ができますが、プリセットのパラメータを呼び出します。ManageFilesボタンからdefaultoutdoor_parking_lotを右クリックしてセットします。
この状態で、VOSタブのEnableVOSボタンをクリックするとセンサー画像の左に青い升目調の画面が出現します。
センサーで手元にあったトミカのミニカーを映してみるとミニカーに合わせて矩形が表示されます。同時に矩形の中心に重心を表わす点も出現します。
通常こういう処理はOpenCVとか使用してゴリゴリやるものですが、DSPプロセッサを使ってデバイスの段階で軽いデータにしてしまうことで、メインCPU側の負荷を軽くできるのが大きな利点です。
さきほどはプリセットしたパラメータを使用しましたが、26個におよぶパラメータ(取り込み画像エリア、前景・背景の閾値や深度、学習係数など)をカスタマイズすることによって、実際のシチュエーションに沿った検出パターンを作ることが可能です。
VOSのライブラリは、検出した物体のBLOBデータをSPIインターフェースで取得することが可能です。SPIインターフェースは大抵の組み込み系マイコンには実装されているので、非力なマイコンでは到底不可能な動体検出も、このDSPプロセッサと組み合わせることで可能になります。
ーーー
応援クリックをお願いします!
にほんブログ村 | 電子工作ランキング |
0 件のコメント:
コメントを投稿