2019年8月24日土曜日

SystemError returned a result with an error setの解消方法

概要

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, in 
    cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
SystemError:  returned a result with an error set

解決方法

これは、Githubに載っている画像解析のためのcascadeファイル(.xml)を用いた場合に発生するエラーのようです。 なので、公式サイトに載っている正しいcascadeファイルを用いれば解決出来ます。 


手順は以下です。

  1. OpenCVの公式サイトにアクセス
  2. 公式サイト上部右側の「Release」タブをクリック
  3. OpenCV-4.1.0の「Sources」をクリック
  4. zipファイルをダウンロード+解凍

該当のcascadeファイルは解凍したフォルダ内の「data\haarcascades」に格納されています

0 件のコメント:

コメントを投稿

FX自動トレード_2021年6月実績

      概要 2021年6月が終わり、FX自動トレードによる収益実績を取り纏めましたので振り返ってみたいと思います。 2021年6月結果 2021年6月の実績は、実利利益額:\66,761、実績利益率は1.42%でした。 今月もボラが全く出ず。利益率の連続過去最低記録更新は免...