Распознавание лиц с использованием Opencv Python - PullRequest
0 голосов
/ 10 октября 2019

Итак, я работаю над проектом, и одна из многих его частей включает в себя определение лиц на изображении. Я провел кучу исследований, основанных на том, что мне нужно, и стандартная лицевая сторона haarcascade не работает для моих нужд. Тем не менее, я нашел еще один haarcascade, который был обучен на более подходящей базе данных (UMIST). Я хочу использовать новый каскад вместо этого, но есть эта ошибка, которую я получил.

error: <class 'cv2.CascadeClassifier'> returned a result with an error set

Я предполагаю, что пользовательский haarcascade просто не работает.

IВозможно, я просто упускаю что-то, что очень очевидно, или мой пользовательский haarcascde просто не будет работать. Если не работает только haarcascde, то есть ли другой способ использовать другой haarcascade?

Примечание: Здесь - это ссылка на GitHub с haarcascade UMIST, также япереместил каскад UMIST в папку cv2 cascade data, так что это не проблема.

Мне только что пришло в голову, что данные UMIST могут быть устаревшими и Opencv2 просто не может их использовать? Я не уверен, что любая помощь будет потрясающей!

Вот исходный код проекта:

import cv2
import sys

targetImage = 1
ImagePath = 'image-9.jpg'


image = cv2.imread(ImagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)



faceCascade2 = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_profileface_umist_1.xml")
faces = faceCascade2.detectMultiScale(
    gray,
    scaleFactor=1.3,
    minNeighbors=3,
    minSize=(15, 15)
    )


print("Found {0} Faces".format(len(faces)))

for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

status = cv2.imwrite("Data/image-9-data.jpg", image)
print("saved",status)



...