Python 顔認証など画像処理するOpenCVのインストール方法

'20/08/23更新:condaによるインストール方法を追記しました。
OpenCVをインストールする方法は次の2通りです。

pip install opencv-python

もしくは、anaconda環境下ではcondaで次のようにします。

conda install -c conda-forge opencv

以上です。

以下では、画像から人や猫犬などの顔検出などを行いたい場合に、機械学習による学習済みデータの分類器をダウンロードする手順について記載しています。
■作業1. カスケードファイルをダウンロードする。
カスケードファイルとは、「haarcascade_frontalface_default.xml」のような.xmlファイルで特徴量をすでに学習済みデータの分類器のことです。
 入手方法は2種類ありますが、ダウンロードリンク先は共に下記、本家のGitHubで同じです。

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

●方法1:必要なのだけを個別にインストールしたい場合

f:id:HK29:20191013012026p:plain

すると下図のような画面に切り替わる。

f:id:HK29:20191013012102p:plain


更に、次のように画面が切り替わるので、右クリックからの名前を付けて保存すれば良いだけ。

f:id:HK29:20191013012155p:plain

●方法2:まとめて全部ダウンロードしたい場合

f:id:HK29:20191013012256p:plain


すると、次のように画面が切り替わるので、図中の②③の順にするだけ

f:id:HK29:20191013012352p:plain

作業2. 方法1もしくは方法2でダウンロードしたカスケードファイルを適当な場所へ移動(保存)する。例えば下図。

f:id:HK29:20191013012551p:plain

※設定に問題がある場合の代表的なエラー例を3つと、各々の対処方法を下記へ示します。
########################################################

◆エラー例1:指定箇所にカスケードファイルがないためのエラー
cv2.error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

問題:
cascade = cv2.CascadeClassifier(haarcascade_frontalface_default.xml)
等の例ではカレントフォルダを指定していることになっているが、そこには「haarcascade_frontalface_default.xml」ファイルがないために生じるエラー

対策:
haarcascade_frontalface_default.xml をダウンロードして、その場所(パス)を指定する。

########################################################

◆エラー例2:ファイルパスを通す文字列中の「\」がエスケープ文字と認識されているため生じるエラー 
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

問題:
mypath = 'C:\Users\[ユーザー名]\Anaconda3\Lib\site-packages\cv2\haarcascade_frontalface_default.xml'
対策:
raw文字を使用する。頭にrawのrを付けるだけ。
mypath = r'C:\Users\[ユーザー名]\Anaconda3\Lib\site-packages\cv2\haarcascade_frontalface_default.xml'
########################################################

◆エラー例3:カスケードファイルはあるが中身が何かおかしいため生じるエラー
SystemError: <class 'cv2.CascadeClassifier'> returned a result with an error set

問題:
haarcascade_frontalface_default.xml が正常なファイル形式でないため。

対策:
正しいカスケードファイルを正しい方法でダウンロードする。それは、本記事の冒頭の方法1あるいは方法2です。

########################################################

最後に、インストール後の顔認証の実施例は下記リンク先です。

hk29.hatenablog.jp

以上

<広告>