概要
Python+OpenCVで顔認識をする際に「SystemError: returned a result with an error set」というエラーが出る場合があるので、その解決方法をメモします。
用語
・Windows10:言わずと知れたMicrosoft社製のOS。・Python:機械学習プログラミングに人気のプログラミング言語。
・Anaconda:データサイエンスおよび機械学習関連アプリケーションのためのPython+R言語のオープンソースディストリビューション
・OpenCV:インテルが開発した画像解析などに用いられるオープンソースライブラリ
事前準備(前提とする環境)
・Windows10 Pro・Anaconda1.9.2
・OpenCV3.4.1
手順
現象
問題のエラーが以下のような感じで発生する事があります。
(base) C:\Users\kk\opencv>python Sample.py OpenCV(3.4.1) Error: Unknown error code -49 (Input file is empty) in cvOpenFileStorage, file C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\core\src\persistence_c.cpp, line 384 cv2.error: OpenCV(3.4.1) C:\Miniconda3\conda-bld\opencv-suite_1533128839831\work\modules\core\src\persistence_c.cpp:384: error: (-49) Input file is empty in function cvOpenFileStorage The above exception was the direct cause of the following exception: Traceback (most recent call last): File "Test_Cam.1.py", line 22, incascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml') SystemError: returned a result with an error set
解決方法
これは、Githubに載っている画像解析のためのcascadeファイル(.xml)を用いた場合に発生するエラーのようです。 なので、公式サイトに載っている正しいcascadeファイルを用いれば解決出来ます。
手順は以下です。
- OpenCVの公式サイトにアクセス
- 公式サイト上部右側の「Release」タブをクリック
- OpenCV-4.1.0の「Sources」をクリック
- zipファイルをダウンロード+解凍
該当のcascadeファイルは解凍したフォルダ内の「data\haarcascades」に格納されています
0 件のコメント:
コメントを投稿