目や鼻や口を認識する
http://sourceforge.net/projects/opencvlibrary/ のsubversionリポジトリに、右目・左目・両目・鼻・口にマッチするhaarcascade.xmlがある
持ってくる
mkdir ~/tmp cd ~/tmp svn co https://opencvlibrary.svn.sourceforge.net/svnroot/opencvlibrary opencvlibrary
発見した。ぜんぶコピーしておこう
mkdir ~/haarcascades cp ~/tmp/opencv-svn/opencvlibrary/trunk/opencv/data/haarcascades/haar*.xml ~/haarcascades
画像を集める
mkdir ~/Pictures/faces mkdir ~/Pictures/faces/results cd ~/Pictures/faces
facesにいくつか写真を入れておいた
haartestをrubyのワンライナーから使ってどんどん変換していく
ruby -e 'Dir.glob("*.jpg").each{|f| puts "--#{f}--"; puts `~/src/cpp/opencv/study/haar/haartest -c ~/haarcascades/haarcascade_mcs_nose.xml -i #{f} -o results/#{f}_haarcascade_mcs_nose.jpg`}'
できた写真をいくつかアップした
http://www.flickr.com/photos/shokai/tags/opencvtest090731
- どうやら目や口だけで認識させるのは精度が悪い。自然の中に目に見える木のフシがたくさんあるように、単体では無理らしい。
- righteyeはそれなりだけど、lefteyeは誤認識しまくってた
- 口も、横に2本太い線が走ってる場所に誤認識しまくってる
- 顔を認識してから、その中の位置と合わせてやった方が良いようだ
目。顔が斜めだからか、2つ並んだ水平にある首筋の髪の毛が目と認識された?