2008年9月29日月曜日

「Haar-like特徴を使った顔検出器」ってのを使ってみた.

工学ナビさんのところのこちらの記事にあった「Haar-like特徴を使った顔検出器」というのを試してみたいなぁー.というそれだけの話.

環境
MBP (Intel) / MacOS X 10.5.5 / MacPorts 1.600

やったこと
1.OpenCVを入れる
>sudo port install opencv
Password:
---> Fetching opencv
---> Attempting to fetch opencv-1.0.0.tar.gz from http://downloads.sourceforge.net/opencvlibrary
---> Verifying checksum(s) for opencv
---> Extracting opencv
---> Configuring opencv
---> Building opencv with target all
---> Staging opencv into destroot
---> Installing opencv 1.0.0_0
---> Activating opencv 1.0.0_0
---> Cleaning opencv
>

サックリ.


2.サンプルのコードを写す
opencv.jp - OpenCV: 物体検出(Object Detection)サンプルコード -
sample.cとした.


3.コンパイル
OpenCV for OSX インストール編を参考に.
> gcc sample.c `pkg-config --cflags opencv --libs opencv`
>

サックリ.(無指定なので"a.out"ができているはず)


4.設定ファイルの調達
学習によってあらかじめ獲得された,分類器のカスケードが記述されたxmlファイル
というのが必要らしい.
OpenCVのサンプルに付属する正面顔画像学習結果の1つである,"haarcascade_frontalface_default.xml"を利用する
というのがあるらしい.
> find /opt -name "haarcascade_frontalface_default.xml" -print
/opt/local/share/opencv/haarcascades/haarcascade_frontalface_default.xml
/opt/local/var/macports/software/opencv/1.0.0_0/opt/local/share/opencv/haarcascades/haarcascade_frontalface_default.xml
>

ということで
> cp /opt/local/share/opencv/haarcascades/haarcascade_frontalface_default.xml .


5.人画像を探すと実行
Googleで検索

実行は
> ./a.out [画像ファイル]

です(コンパイルで指定していなければa.out).


動作の様子

まずはスタンダードそうなこちらで試す.
Photo by Joi

では二人
Photo by babasteve

もっちょっとたくさん
Photo by crouch/photo
…少し横向きの方は無理としても女性は前髪あたりが原因かしら?(検出数の制限とかではないみたいだしね.)


という遊び.
#思ったよりすんなりできた.


追記:OpenCVのこのページをみて思ったのは「機械学習周りが色々あって面白そう」w.

0 件のコメント: