LoginSignup
11
2

More than 3 years have passed since last update.

Python CascadeClassifier エラー

Last updated at Posted at 2018-08-22

症状
Pythonで顔認証をやるために、インターネットのサイトのサンプルコード通りにやったら、
SystemError: returned a result with an error set
というエラーが出る。

作業環境
Windows10
Spyder(Python3.6)

原因

githubのhaarcascade_frontalface_default.xmlをダウンロードして、読み込むとエラーになる。そのため、公式サイトのhaarcascade_frontalface_default.xmlファイルをダウンロードして、読み込んだら、成功しました。
(ファイルサイズが全然違う。githubの方はデータを追加していて、追加したデータがエラーとなったのかと個人的に思います)
参考にしたサイト
http://sh0122.hatenadiary.jp/entry/2017/10/30/210411

・上のタブからRELEASESをクリック。
・一番上の3.3.1のSourcesをクリック
・zipファイルがダウンロードされるので、任意の場所に保存
・任意の場所に解凍

以上のように、公式のカスケードファイルを使ったら、自分もうまくいきました。現在のバージョンだと、githubにあるカスケードファイルを使うとエラーになるということです。

カスケードファイルをどこに置けばよいかわからない人へ

自分も最初迷ったのでメモ。自分の場合USBにWinPythonをインストールした。
Spyderを使った場合、初期状態のファイルは、
F:\WPy-3661\settings\ .spyder-py3\temp.py
にある。
spyder.exeのファイルは
F:\WPy-3661\Spyder.exe
にある。
絶対パスで指定したい場合

cascade = cv2.CascadeClassifier("F:/WPy-3661/haarcascade_frontalface_default.xml")

とでもすればよいと思う。

相対パスで指定したい場合

cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

このとき、haarcascade_frontalface_default.xmlのファイルは、
F:\WPy-3661\settings\ .spyder-py3\ のディレクトリに置けばよい。

11
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
2