cv::CascadeClassifier::detectMultiScale 해결 방법

소개



OpenCV에서 얼굴 감지를 할 때 나온 에러와 해결 방법을 소개합니다.

문제



아래와 같은 코드로 에러가 나왔습니다.

파이썬
# カスケード型識別器の読み込み
cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")

# 顔領域の探索
face = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30))


에러 내용
cv2.error: OpenCV(3.4.2) C:\projects\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1698: error: (-215:Assertion failed) !empty() in function 'cv::CascadeClassifier::detectMultiScale'

원인



분류기의 XML 파일의 경로 지정이 잘못되어 있는 것 같습니다.

해결 방법



먼저 OpenCV가 들어있는 경로를 확인합니다.

파이썬
user>python
Python 3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 16:30:00) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>import cv2
>>>cv2.__file__

'C:\\Users\\user\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python37\\site-packages\\cv2\\cv2.cp37-win_amd64.pyd'

  다음으로 XML 파일의 위치를 ​​조사합니다.


나의 경우는/data에 들어가 있었습니다.

그 때문에, 코드를 이하와 같이 수정했습니다.

파이썬
# カスケード型識別器の読み込み
cascade = cv2.CascadeClassifier("C:/Users/user/AppData/Local/Packages/PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0/LocalCache/local-packages/Python37/site-packages/cv2/data/haarcascade_frontalface_default.xml")

# 顔領域の探索
face = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30))

결론





무사히 검지할 수 있었습니다.

참고



h tps:// 퀵했다. 작은 m/K_M95/있어 MS/f1 아 3 그림 7C47800 아 DB94095

좋은 웹페이지 즐겨찾기