OpenCV の facedetect アプリケーションは、顔を検出することが出来る。(ZYBOボードにインストールしたUbuntuにOpenCVを載せて顔検出しています)
顔を判定するためには顔の定義ファイルが必要で、--cascade の後に定義ファイル名を指定する。現在は、/usr/local/share/OpenCV/haarcascades ディレクトリの haarcascade_frontalface_alt.xml ファイルを使用している。
レナ像を顔検出するための入力コマンドは下の通りである。
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" lena.jpg
定義ファイルは、/usr/local/share/OpenCV/haarcascades ディレクトリに下に示すようにたくさんあるので、これを確かめてみた。

最初に、haarcascade_eye.xml から試してみる。コマンドとしては下のようになる。
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml" lena.jpg
実行結果を下に示す。

定義ファイルの名前の通りに目を検出する定義ファイルのようだ。
次に、
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml" lena.jpg
でやってみたが、haarcascade_eye.xml と同様な結果になった。
haarcascade_eye_tree_eyeglasses.xml も目のところに丸がつく、同様な結果になった。
次に私の写真でやってみたが目を検出することはできなかった。3つのXMLファイルでやってみたがメガネを掛けているためか目が検出できない。
次に、いつもの haarcascade_frontalface_alt.xml で自分の写真を顔検出してみた。
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" marsee.jpg
顔は検出されたが、ネクタイ部分も顔として検出されてしまった。(お見苦しい点があるため画像の一部を加工していますw)

レナ像のおなじみの顔検出。(haarcascade_frontalface_alt.xml 使用)

haarcascade_frontalface_alt2.xml では、レナ像も私の写真も、haarcascade_frontalface_alt.xml と結果は同じだった。
haarcascade_frontalface_alt_tree.xml では、レナ像の結果は同じだったが、私の写真はネクタイ部分の顔検出が外れて、本来の顔だけ顔検出された。

haarcascade_frontalface_default.xml では、haarcascade_frontalface_alt_tree.xml と同様にレナ像も私の写真も正常に顔検出された。
haarcascade_fullbody.xml では、レナ像も私の写真も何も検出されない。完全に体が写っていないとダメだのだろうか?
haarcascade_mcs_eyepair_big.xml では、レナ像は、2つ目が検出されたが、私の写真は検出されない。目が小さいのか?

haarcascade_mcs_eyepair_small.xml では、レナ像も私の写真も何も検出されない。
- 2014年10月28日 05:05 |
- OpenCV
-
| トラックバック:0
-
| コメント:0