Macで顔認識

いまさらですが・・・Macで顔認識させるためにOpenCV, Image::ObjectDetect等をLeopardにインストールしましたので、その手順やつまづいたところをメモしておきます。
ちなみにOpenCVとはインテルが開発・公開しているオープンソースのコンピュータビジョン向けライブラリ。物体認識の他、様々な機能が入っています。
インストール等には以下の記事を参考にさせて頂きました。
[DIP]MacBook ProへOpenCVをインストールして, iSightで顔認識したりするぞ (動画付き)
【コラム】OS X ハッキング! (203) OpenCV+iSightで顔を認識?
Mac OS X Tiger に OpenCV を入れる手順
顔にエフェクトをかけてプライバシーを守るWebサービスの作り方
OpenCV, Image::ObjectDetectをMacにインスト
perl – 顔を認識するcgi


OpenCVのインストール
1. 前準備
入っていなければXcodeとfinkをインストール。
ターミナルで下記を実行して必要なライブラリをインストール。
fink install libjpeg
fink install libpng3
fink install libtiff
fink install gtk+2-dev
fink install glib2-dev
fink install pango1-xft2-dev
fink install atk1
ここからiSquint 1.5.2をダウンロード。iSquint1.5.2.dmgをマウントして、ffmpegをコピー
sudo cp /Volumes/iSquint/iSquint.app/Contents/Resources/ffmpeg /usr/local/bin/
2. OpenCVのインストール
ソースファイルをチェックアウトする。
cvs -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary login
(passwordは何も入力せずenterを押す)
cvs -z3 -d:pserver:anonymous@opencvlibrary.cvs.sourceforge.net:/cvsroot/opencvlibrary co -r MACOSX_DEVELOPMENT -P opencv
コンパイルする。
./configure –disable-universal-build CFLAGS=”-march=prescott” CXXFLAGS=”-march=prescott” CPPFLAGS=”-I/sw/include -I/usr/include/malloc” LDFLAGS=-L/sw/lib
make
ここで何個かエラーが出たので適当に修正(今だけだと思う)
window_carbon.cpp:770: error: expected `;’ before ‘}’ token
otherlibs/highgui/window_carbon.cpp 769行目の最後に;を追加
pyhelpers.cpp:145: error: invalid conversion from ‘int*’ to ‘Py_ssize_t*’など
interfaces/swig/python/pyhelpers.cpp 138行目のintをPy_ssize_tに変更
インストール
sudo make install
環境変数を設定
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
3. OpenCVのサンプルを動かす
サンプルをコンパイル
cd samples/c
chmod a+x build_all.sh
./build_all.sh
カメラの映像で顔認識する
./facedetect –cascade=”../../data/haarcascades/haarcascade_frontalface_alt.xml”
連続的に顔を認識して赤い四角枠を描いてくれます。デジカメの顔認識のようです。
ちょっと向きを変えたりすると認識しなかったり、違うものが顔として認識したりしますね。
ファンの音が大きくなったりして負荷が高そう。
特徴点を追跡
./lkdemo
特徴点をポインタで示しcを押すと追跡します。動かしているうちにずれますが。
4. perl用ライブラリをインストール
Image::ObjectDetect, Imagerをインストール
cpan
cpan> install Image::ObjectDetect
エラーがでたので、適当に修正
cpan> look Image::ObjectDetect
vi lib/Image/ObjectDetect.xsで#include “cv.h”を#include “../opencv/cv.h”に変更
make
sudo make install
exit
cpan> install Imager
5. perlで顔認識してみる
こことかを参考にサンプルプログラムを動かしてみる。
顔認識は少し時間がかかる。やはり誤認識も多そう。

saya: