"Kaskade von verstärkten Klassifikatoren unter Verwendung von Haar-ähnlichen Merkmalen" ist eine Methode, die als Haar-ähnlich bezeichnet wird und ein rechteckiges Muster aus Hell und Dunkel zur Erkennung verwendet. Das Haar-ähnliche Merkmal und das Zielbild werden überlagert, um festzustellen, ob ein Muster vorhanden ist.
Die folgenden haarähnlichen Feature-Klassifikatoren werden vorab in OpenCV bereitgestellt. [OpenCV Install Dir]/Library/etc/haarcascades/
Dateiname | Inhalt |
---|---|
haarcascade_eye.xml | Auge |
haarcascade_eye_tree_eyeglasses.xml | Brille |
haarcascade_frontalcatface.xml | Katzengesicht (vorne) |
haarcascade_frontalcatface_extended.xml | Katzengesicht (vorne) |
haarcascade_frontalface_alt.xml | Gesicht (vorne) |
haarcascade_frontalface_alt2.xml | Gesicht (vorne) |
haarcascade_frontalface_alt_tree.xml | Gesicht (vorne) |
haarcascade_frontalface_default.xml | Gesicht (vorne) |
haarcascade_fullbody.xml | Ganzer Körper |
haarcascade_lefteye_2splits.xml | linkes Auge |
haarcascade_licence_plate_rus_16stages.xml | Russisches Nummernschild (ganz) |
haarcascade_lowerbody.xml | Unterkörper |
haarcascade_profileface.xml | Gesicht (Zertifizierungsfoto) |
haarcascade_righteye_2splits.xml | rechtes Auge |
haarcascade_russian_plate_number.xml | Russisches Nummernschild (Nummer) |
haarcascade_smile.xml | Lächeln |
haarcascade_upperbody.xml | Oberkörper |
Dieses Mal werde ich versuchen, die Gesichtserkennung mit dem Haar-ähnlichen Feature-Klassifikator von OpenCV zu erkennen.
OpenCV OpenCV (Open Source Computer Vision Library) ist eine Sammlung von BSD-lizenzierten Video- / Bildverarbeitungsbibliotheken. Es gibt viele Algorithmen wie Bildfilterung, Vorlagenabgleich, Objekterkennung, Videoanalyse und maschinelles Lernen.
■ Beispiel für Bewegungsverfolgung mit OpenCV (OpenCV Google Summer of Code 2015) https://www.youtube.com/watch?v=OUbUFn71S4s
■ Klicken Sie hier für die Installation und einfache Verwendung Installieren Sie OpenCV 3 (Core + Contrib) in der Python 3-Umgebung und unterscheiden Sie zwischen OpenCV 2 und OpenCV 3 und überprüfen Sie die einfache Bedienung ★ Bitte installieren Sie core + opencv_contrib, um die Bewegungsvorlage auszuführen.
■ Klicken Sie hier, um Standbilder zu filtern Versuchen Sie die Kantenerkennung mit OpenCV Führen Sie verschiedene Filter mit OpenCV durch (Gradient, Highpass, Laplacian, Gaussian) Extrahieren Sie Feature-Punkte mit OpenCV (AgastFeature, FAST, GFTT, MSER, AKAZE, BRISK, KAZE, ORB, SimpleBlob)
■ Klicken Sie hier, um Videodateien zu verarbeiten Versuchen Sie, Videos in Echtzeit mit OpenCV zu konvertieren Versuchen Sie, Webkamera- / Videokamera-Videos in Echtzeit mit OpenCV zu konvertieren Zeichnen Sie den optischen Fluss in Echtzeit mit OpenCV (Shi-Tomasi-Methode, Lucas-Kanade-Methode) Objektverfolgung mit OpenCV (Verfolgen von Funktionspunkten, die von der Maus mit der Lucas-Kanade-Methode festgelegt wurden Bewegungsvorlagenanalyse mit OpenCV (Erkennen von Objekten und deren Bewegungsrichtungen in Echtzeit)
Der Fluss ist wie folgt.
face.py
import cv2
# Haar-wie das Laden von Feature-Klassifikatoren
face_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_eye.xml')
#Bilddatei wird geladen
img = cv2.imread('face.png')
#Graustufenumwandlung
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#Gesichtserkennung
faces = face_cascade.detectMultiScale(gray)
for (x,y,w,h) in faces:
#Schließen Sie das erkannte Gesicht in ein Rechteck ein
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
#Gesichtsbild (Graustufen)
roi_gray = gray[y:y+h, x:x+w]
#Gesicht g erhöhen (Farbskala)
roi_color = img[y:y+h, x:x+w]
#Erkennen Sie die Augen im Gesicht
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
#Schließen Sie das erkannte Auge in ein Rechteck ein
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
#Bildschirm
cv2.imshow('img',img)
#Drücken Sie eine beliebige Taste, um den Vorgang abzuschließen
cv2.waitKey(0)
cv2.destroyAllWindows()
Wenn es sich um ein solches Bild handelt, wird es so erkannt. Ich erkenne alle Gesichter, aber die Augen erkennen nicht viel, wahrscheinlich aufgrund des vagen Bildes.
Wenn es sich um ein solches Bild handelt, wird es so erkannt. Das ganze Gesicht ist gut erkennbar. Andererseits erkennen die Augen, ob die Sichtlinie nach vorne zeigt.
Wenn Sie die Erkennungsmuster wie Augen und Profil bis zu einem gewissen Grad verstehen, können Sie anscheinend die Sichtlinie und die Objekte vor der Sichtlinie erraten.
Recommended Posts