glob ( "*") for file in image_files: img_bgr = cv2. imread ( file, cv2. IMREAD_COLOR) b, g, r = cv2. split ( img_bgr) img_rgb = cv2. merge ( [ r, g, b]) img_gray = cv2. cvtColor ( img_bgr, cv2. COLOR_BGR2GRAY) face_cascade = cv2. CascadeClassifier ( cv2. data. haarcascades + "") faces = face_cascade. detectMultiScale ( img_gray, scaleFactor = 1. 2, minNeighbors = 5) print ( "Anzahl erkannte Gesichter:", len ( faces)) for ( x, y, w, h) in faces: cv2. rectangle ( img_rgb, ( x, y), ( x + w, y + h), COLOR_FACE, 2) plt. axis ( 'off') plt. Gesichtserkennung mit Python und OpenCV mit Webcam – Acervo Lima. imshow ( img_rgb) plt. title ( file) plt. show () exit () 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 # Augen erkennen Für erkannte Gesichter können wir nun auch die Augen erkennen. Das Prinzip ist das selbe wie bei der Gesichtserkennung. Wir gehen wie folgt vor: Wir erstellen einen neuen Klassifikator für die Augen. Die Trainingsdaten finden wir in der Datei. Für jedes erkannte Gesicht erstellen wir ein neues Bild, welches nur das Gesicht beinhaltet.
In diesem Projekt handelt es sich um eine einfache Gesichtserkennung mit Hilfe von OpenCV. englische Abk. Opencv gesichtserkennung python program. für Open Computer Vision) ist eine freie Programmbibliothek mit Algorithmen für die Bildverarbeitung und Computer Vision. Projektschritte: OpenCV Installation Bild laden Helligkeit und Farbe anpassen Ein trainiertes Modell anwenden Gesichter im Bild markieren Umgebung Das Projekt wurde in GoogleColab-Umgebung realisiert.
Der Einfachheit halber kann diese Funktion bisher nur mit einem einzelnen Gesicht pro Bild umgehen. def crop ( in_fn, out_fn): img_color = cv2. imread ( in_fn) img_gray = cv2. cvtColor ( img_color, cv. CV_RGB2GRAY) img_gray = cv2. equalizeHist ( img_gray) for x1, y1, x2, y2 in detect_faces ( img_gray): # TODO: Will override all previous occurrences img_out = img_color [ y1: y2, x1: x2] cv2. imwrite ( out_fn, img_out) In der Hauptroutine wird diese Funktion dann für jedes Bild einmal ausgeführt. if __name__ == "__main__": if len ( sys. Opencv gesichtserkennung python tutorials. argv) < 3: print ( "Usage:%s source_dir dest_dir"% ( sys. argv [ 0])) sys. exit ( 1) for f in glob. glob ( '%s/*'% ( sys. argv [ 1], )): filename = os. path. basename ( f) crop ( f, "/". join (( sys. argv [ 2], filename))) Gesichtserkennung Die Gesichtserkennung kann man anschließend mit Eigenfaces umsetzen. Das ist ein relativ alter und nicht mehr ganz aktueller Ansatz, aber er ist nicht so schwer umzusetzen. Grundsätzlich ist die Idee von Eigenfaces, eine Menge von Grundbildern zu erzeugen und dann diese so aufeinander aufzuaddieren, dass möglichst exakt wieder das Originalbild rekonstruiert wird.
Ein wichtiger Bestandteil von OpenCV ist das Modul Machine Learning. Es enthält diverse Algorithmen, die für viele der genannten Aufgaben nötig sind – auch für die Gesichtserkennung: Schließlich muss die Software lernen, was ein Gesicht ist und zu wem es gehört. Vielfältige Funktionen Auch das Modul High-level GUI (highgui) soll an dieser Stelle erwähnt werden. In fertigen Anwendungen kann OpenCV in komplexen grafischen Bedienoberflächen oder auch gänzlich ohne GUI laufen. GitHub - encyclomedia/gesichtserkennung-opencv: Einfache Geichtserkennung mit OpenCV in Python. Das highgui-Modul erzeugt mit minimalem Aufwand Fenster zum Anzeigen von Bildern und Videos und verarbeitet einfache Maus- und Tastatur-Events. Damit ist zum Beispiel freihändiges Zeichnen auf dem angezeigten Bild per Maus möglich. So lassen sich Ideen sehr einfach testen, wie das IPython-Beispiel am Ende zeigen wird. Augmented Reality in der Praxis: OpenCV analysiert das Video eines Billardtischs und projiziert die berechneten Laufwege der Kugeln auf den Filz (Abb. 1). Ein schönes Beispiel für die Vielfältigkeit von OpenCV ist das Cassapa ( siehe "Alle Links").
3, 5) prediction = edict(face_resize) ctangle(im, (x, y), (x + w, y + h), ( 0, 255, 0), 3) if prediction[ 1]< 500: cv2. putText(im, '% s -%. 0f'% (names[prediction[ 0]], prediction[ 1]), (x - 10, y - 10), NT_HERSHEY_PLAIN, 1, ( 0, 255, 0)) else: cv2. Opencv gesichtserkennung python free. putText(im, 'not recognized', (x - 10, y - 10), NT_HERSHEY_PLAIN, 1, ( 0, 255, 0)) Hinweis: Die oben genannten Programme werden nicht in der Online-IDE ausgeführt. Screenshots des Programms Es könnte etwas anders aussehen, weil ich das obige Programm in das Kolbengerüst integriert hatte Das Ausführen des zweiten Programms führt zu ähnlichen Ergebnissen wie im folgenden Bild: Gesichtserkennung Datensatzspeicherung: data_sets
Auf diesem Bild führen wir die Augenerkennung durch. Wir markieren im Gesamtbild die erkannten Augen durch einen farbigen Rahmen. Hinweis Die in OpenCV geladenen Bilder sind zweidimensionale Listen. Wir können mit der Range-Auswahl von Python ein Rechteckiges Bild aus einem grösseren Bild ausschneiden. Das folgende Beispiel schneidet im Bild img ein Rechteck an den Koordinaten (x, y) mit einer Breite w und einer Höhe h aus und speichert das ausgeschnittene Bild in einem neuen Array face. img = cv2. imread ( "", cv2. IMREAD_COLOR) face = img [ y: y + h, x: x + w] 1 2 Aufgabe Speichere deine Python-Datei unter einem neuen Dateinamen ab und füge der Gesichtserkennung eine Augenerkennung hinzu. Eine einfache Gesichtserkennung mit OpenCV und scikit-learn - s.koch blog. Gehe dabei gemäss den 4 oben besprochenen Schritten vor. Versuche wiederum die Erkennung zu optimieren. Zusatzaufgabe «Zensur» Baue eine automatische Zensur. Du kannst eine oder beide Zensurvarianten umsetzen: Variante A Finde alle Gesichter und «verpixele» sie oder wende einen «Weichzeichner» an. () Variante B Verbinde die beiden Augen eines Gesichtes mit einem schwarzen Balken, also einem sogenannten Zensurbalken.