スポンサーリンク

OpenCV3で顔認識

開発環境

Windows8.1
Python 3.6.1
Anaconda 4.4.0 (64-bit)
Tensorflow 1.2.1
Keras 2.0.6

よくある顔認識!やってみる。

(参考)

http://blog.mudatobunka.org/entry/2016/10/03/014520

(0)認識用の画像のダウンロード

https://www.photo-ac.com/

などから、人の顔がうつった画像をダウンロードして、faces.jpgという名前で保存。

(1)OpenCV3をインストール

以下にしたがってインストール。(Python 3.5の方が楽)

http://twosquirrel.mints.ne.jp/dokuwiki/doku.php/windows%E3%81%ABopencv3%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

(2)評価器のダウンロード

顔検出用のxmlファイル群をダウンロード

https://github.com/opencv/opencv/tree/master/data/haarcascades
image

今回は、以下の6個のxmlファイルをダウンロードした。

image

ファイル構成は以下の通り。

image

(3)jupyter notebookの起動と、コードをコピペして実行。

http://blog.mudatobunka.org/entry/2016/10/03/014520
2016-10-03
Python+OpenCV で顔検出 – OpenCV に付属の評価器を試す

上記サイト様のコードをコピペさせていただきました。以下のコードを、コピペ。

テスト

どうしても、xmlファイルが読み込めない。

Python 3.6はあきらめて、Python 3.5 環境でやってみる。

(4)

image

 

image

 

http://qiita.com/yoppe/items/38005f415a5b8b884c7d

conda info -e

$ pip install environment_kernels

image

$ jupyter notebook --generate-config

以下のGiyhubから丸ごとダウンロード。ありがたい!

https://github.com/hisafi/haarcascade_opencv

image

image

image

image

同じ環境で、自分で、

https://github.com/opencv/opencv/tree/master/data/haarcascades

からダウンロードしたxmlファイルを用いて同じコードでやってみる。

image

error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale

というエラーだが、今まで5時間くらいがちゃがちゃやってみて、おそらく、これは、xmlファイルが読み込めていないエラーと思われた。

ということは、xmlファイルのダウンロードに失敗している可能性が考えられる。

image

xmlファイルというものを知らなかったのであるが、<!DOCTYPE html>では、htmlファイルであろう。

Githubからxmlファイルをダウンロードするときに、haarcascade_frontalface_alt2.xml などのxmlファイルを、右クリック>名前を付けてリンク先を保存。。。 として保存してしまっていたのだが、これでは、リンク先のGithubのhtmlファイルが保存されてしまっていた。それで、xmlファイルがちゃんと保存されていなかったために、

cascade_path = “haarcascade_frontalface_alt2.xml"

のところでいつも失敗していたのであった。python3.5とか3.6とか関係なかった。。。

image

xmlファイルをダウンロードする場合は、GituhubのOpencvの一番上のリンクに行って、
Clone or Download > ZIPファイルで全部ダウンロードするか、

https://github.com/opencv/opencv
image

ダウンロードしたいxmlファイルをクリックして、リンク先の内容をテキストでコピーして、自分のパソコン上にxmlファイルを作成して、そこにコピペするか、「Raw」を押してから、それを保存する必要がある。いや、Rawでもダメだった。コピペする必要がある。でも、やっぱり、かなりややこしいので、

「GituhubのOpencvの一番上のリンクに行って、
Clone or Download > ZIPファイルで全部ダウンロード」

が一番間違いがないと思われる。約83MBあるけれど、、、

https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_alt2.xml
image

image

image

これで、コピペして、haarcascade_frontalface_alt2.xml を保存。

うまくいった。

image

image

python3.6 でやってみる

image

できた。pythonのバージョンの問題ではなく、xmlファイルを正しくダウンロードできていないのが問題であった。これに気付くのに5時間くらいかかった。。。(´・ω・`)

スポンサーリンク