Ich habe einen Algorithmus Viola-Jones in Python
. Ich verwende haarcascade
xml, die ich von openCV
Root-Datei laden. Aber es gab keine XML-Datei für Mund und Nase in openCV
, also habe ich diese Dateien von EmguCV heruntergeladen. Ergebnis für die Erkennung des Gesichts ist in Ordnung, aber die Erkennung des Auges ist nicht gut und die Nase mit dem Mund ist sehr schlecht. Ich habe versucht, Parameter in face_cascade.detectMultiScale
zu ändern, aber es hat überhaupt nicht geholfen.Viola-Jones in Python mit OpenCV, Erkennung Mund und Nase
Mein Code:
import cv2
import sys
def facedet(img):
face_cascade = cv2.CascadeClassifier('/home/kattynka/opencv/data/haarcascades/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('/home/kattynka/opencv/data/haarcascades/haarcascade_eye.xml')
mouth_cascade = cv2.CascadeClassifier('/home/kattynka/opencv/data/haarcascades/haarcascade_mcs_mouth.xml')
nose_cascade = cv2.CascadeClassifier('/home/kattynka/opencv/data/haarcascades/haarcascade_mcs_nose.xml')
img = cv2.imread(img)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
nose = nose_cascade.detectMultiScale(roi_gray)
mouth = mouth_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color, (ex,ey), (ex+ew, ey+eh), (0,255,0), 2)
for (nx, ny, nw, nh) in nose:
cv2.rectangle(roi_color, (nx, ny), (nx + nw, ny + nh), (0, 0, 255), 2)
for (mx, my, mw, mh) in mouth:
cv2.rectangle(roi_color, (mx, my), (mx + mw, my + mh), (0, 0, 0), 2)
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == '__main__':
#img = sys.argv[1]
facedet(img)
Meine Frage
Was mache ich falsch? Gibt es eine einfache Lösung, die mir ein besseres Ergebnis bringt?
Output:
Nur eine Anmerkung: Sind diese Fotos öffentlich? Gehören sie dir? Andernfalls entfernen Sie bitte. – Berriel
Fotos sind öffentlich verfügbar, heruntergeladen von http://ibug.doc.ic.ac.uk/resources/facial-point-annotations/. – Kattynka