教師なし学習やる気はある

ポジティブクソ野郎になりたい

opencv with pycharm

opencv を pycharm で使用する.

(Anaconda Navigator 1.8.5, pycharm 2018.1(build 181.4203.547), Windows 10)

教師なし学習の入力データに人の顔画像を使うということで, データセットの作成のためにOpenCVをいれることに.

無事にインストールができて, opencvのインストールした場所もわかって, 顔認識までできました.


インストールにするにあたってこちらのサイトが非常に参考になりました.

Web!ke staffblog OpenCVをpythonから使ってみる

conda create -n opencv python=3.5 anaconda
activate opencv

は Anaconda promptで実行.

conda c install -c https://conda.anaconda.org/menpo opencv3

は pycharmの python consoleで実行しました. これが正解じゃないと思う...

opencv 結構時間かかりますね. あと, pycharm は Run as administor(管理者権限)で実行しましょう(一敗).

pycharmの Settings の Project Interpreter の package にちゃんと opencv3 が入ってるか確認出来たら実行できるはず.

import cv2 ができて, cv2の関数が実行できたことは確認したけど,

OpenCV Error: Assertion failed (!empty()) in cv::CascadeClassifier::detectMultiScale, file ..\..\..\modules\objdetect\src\cascadedetect.cpp, line 1639
Traceback (most recent call last):
  File "C:/Users/admin/PycharmProjects/imageclip/clipfront.py", line 42, in <module>
    face = faceCascade.detectMultiScale(img, scaleFactor=1.2, minNeighbors=2, minSize=(10, 10))
cv2.error: ..\..\..\modules\objdetect\src\cascadedetect.cpp:1639: error: (-215) !empty() in function cv::CascadeClassifier::detectMultiScale

顔認識をする学習器 haarcascade を使うとき, detectMultiScale が使えない. どうやら cv2.CascadeClassifierの学習器のpathの指定がうまくいってないみたい.

そもそも cascadefile っていうか, opencvどこにインストールされたんやねん ってなってそこから探す旅へ.

import cv2
print(cv2.__file)

これでいけると思ったけど, C:\ProgramData\Anaconda3\lib\site-packages\cv2.cp35-win_amd64.pyd って、情報ない. このファイル開けないし. 結局恥ずかしながら エクスプローラーの検索機能で探しました...

'C:/Users/admin/AppData/Local/conda/conda/pkgs/opencv3-3.1.0-py35_0/Library/etc/haarcascades/'

はい. 今思えば, condaコマンドでインストールしたんだから, condaのことを調べるべきだった...

明日はdlib使ってみます.