Posted at

Raspberry Pi サーボモーターとOpen CVで顔追跡カメラ(Haar-like)

More than 1 year has passed since last update.

物体追跡カメラに続いて、顔追跡カメラもRaspberryPiで作ってみました。Python3系で動きます。OpenCVで顔認識されたものを追尾します。「サミュエル・L・ジャクソン(のフィギュア)」で試してみます。


環境

前回記事と同じです。


Haar-like特徴分類器を使った顔認識

OpenCVで顔認識するのって、あまり深く考えずに利用していたのですが、以下の記事で詳しくまとめられていましたので改めて見直してみました。

OpenCVで物体検出器を作成する② ~Haar-Like特徴~ - 技術者ブログ

OpenCVでのデフォルトで利用出来るカスケード分類器は明暗部分を利用しているんですね。

OpenCV Face Detection: Visualized - Vimeo

haarcascade_frontalface_alt.xmlを利用した顔認識を使うと、cascade.detectMultiScale()メソッドを利用して顔の範囲を表す座標を取得する事が出来ます。

この座標から顔の中心点の座標を計算し、画像の中心点から顔座標が移動した分だけサーボモータを使いカメラを移動させてみました。

face_tracking.py - Gist

PCA9685.py - Gist


まとめ

サンプルはフィギュアを使ったGifを載せていますが、自分の顔でももちろん反応します。

モーターの制御をもう少し工夫すれば、顔を追跡して笑顔を自動シャッターとか手軽に出来るかもしれませんね。では。