OMRONの画像センサ(HVC-P2)をUSB経由で操作してみた

IoT, Python

この記事は最終更新日から1年以上が経過しています。

今回扱ったのはOMRONのHVC-P2という画像センサになります。
カメラと画像認識を実装した基盤がセットになっているため認識結果だけを取得できるという未来的なものです。

検出できるものは以下です。
– 人体検出, 手検出, 顔検出, 顔向き, 年齢, 性別, 視線, 目つむり, 表情, 顔認証

しかしインタフェース仕様のドキュメントはあるものの公式のSDKなどはなくサンプルコードはCだけ。
実際に使った人の事例を検索してみてもコードが出て来なかったので自前で書くことにしました。
(公式のGitHubはあるようですがHVC-P2のものはまだないみたいです)

USB接続してみる

HVC-P2はUSBとUARTのどちらかのインタフェースで接続することができます。
今回はUSB接続を用いてMacにつないでみました。

ターミナルからコマンドを叩くとデバイスが認識されていることを確認できました。

Pythonから操作してみる

pyusbというライブラリを用いてUSBデバイスと通信を行うことができます。
libusbに依存しているため一緒にインストールします。Macの場合は以下のコマンドです。
(virtualenvが必要な方は作成してください/2系でも3系でもOKです)

色々試行錯誤した結果、以下のコードでコマンドを実行できました。

まとめ

最終的に思ったよりもシンプルなコードになって驚きました。
結果を解析するコードを書いてちょっと使いやすくしたらPython版のSDKとして公開したいと思います。

余談ですが、何度も画像センサで検出実行を行なっても顔認識しないなーと思ったらカメラの向きが違いました。
OMRONの文字がある方が上に来るように顔を写さないと認識してくれないようです。(ドキュメントによると顔検出は±30°以内)

また「カメラ取付方向設定」というコマンドもあり検出する向きを設定することもできるようなので、
ハードウェアに組み込む場合は設置しやすい方向に設定を変更しておくことで上記の問題は回避できるようです。

IoT, Python