Die Übersetzerin Elena Bornovolokova hat speziell für Netology einen Artikel von Fayzan Shaykh angepasst, in dem erläutert wird, wie ein Modell der Gesichtserkennung erstellt wird und in welchen Bereichen es angewendet werden kann.Einführung
In den letzten Jahren hat Computer Vision an Popularität gewonnen und sich in einer anderen Richtung hervorgetan. Entwickler erstellen neue Anwendungen, die weltweit eingesetzt werden.
In dieser Richtung zieht mich das Konzept von Open Source an. Selbst Technologieriesen sind bereit, neue Entdeckungen und Innovationen mit allen zu teilen, damit Technologie nicht das Privileg der Reichen bleibt.
Eine dieser Technologien ist die Gesichtserkennung. Bei korrekter und ethischer Anwendung kann diese Technologie in vielen Lebensbereichen eingesetzt werden.
In diesem Artikel werde ich Ihnen zeigen, wie Sie mit Open Source-Tools einen effektiven Gesichtserkennungsalgorithmus erstellen. Bevor Sie mit diesen Informationen fortfahren, möchten wir, dass Sie sich vorbereiten und sich von diesem Video inspirieren lassen:
Gesichtserkennung: Mögliche Anwendungen
Hier sind einige mögliche Anwendungsbereiche der Gesichtserkennungstechnologie.
Gesichtserkennung in sozialen Netzwerken . Facebook hat das manuelle Markieren von Bildern durch automatisch generierte Tag-Vorschläge für jedes auf die Plattform hochgeladene Bild ersetzt. Facebook verwendet einen einfachen Gesichtserkennungsalgorithmus, um die Pixel im Bild zu analysieren und mit den jeweiligen Benutzern zu vergleichen.
Gesichtserkennung in Sicherheit . Ein einfaches Beispiel für die Verwendung der Gesichtserkennungstechnologie zum Schutz persönlicher Daten ist das Entsperren Ihres Smartphones „im Gesicht“. Diese Technologie kann auch im Zugangssystem implementiert werden: Eine Person schaut in die Kamera und bestimmt, ob sie sie betreten soll oder nicht.
Gesichtserkennung, um die Anzahl der Personen zu zählen . Mithilfe der Gesichtserkennungstechnologie kann die Anzahl der Personen gezählt werden, die an einer Veranstaltung (z. B. einer Konferenz oder einem Konzert) teilnehmen. Anstatt die Teilnehmer manuell zu zählen, installieren wir eine Kamera, die Bilder der Gesichter der Teilnehmer aufnehmen und die Gesamtzahl der Besucher ausgeben kann. Dies hilft, den Prozess zu automatisieren und Zeit zu sparen.

System-Setup: Hardware- und Softwareanforderungen
Überlegen Sie, wie wir die Gesichtserkennungstechnologie nutzen können, indem Sie sich an die uns zur Verfügung stehenden Open Source-Tools wenden.
Ich habe die folgenden Tools verwendet, die ich Ihnen empfehle:
- Webcam (Logitech C920) zum Erstellen eines Gesichtserkennungsmodells in Echtzeit auf einem Lenovo E470 ThinkPad-Laptop (Core i5 7. Generation). Sie können auch die integrierte Kamera oder den Camcorder Ihres Laptops mit einem beliebigen geeigneten System für die Echtzeit-Videoanalyse anstelle der von mir verwendeten verwenden.
- Es ist vorzuziehen, einen Grafikprozessor für eine schnellere Videoverarbeitung zu verwenden.
- Wir haben das Betriebssystem Ubuntu 18.04 mit der gesamten erforderlichen Software verwendet.
Bevor wir mit der Erstellung unseres Gesichtserkennungsmodells fortfahren, werden wir diese Punkte genauer analysieren.
Schritt 1: Hardware-Setup
Überprüfen Sie, ob die Kamera richtig konfiguriert ist. Mit Ubuntu ist dies einfach: Überprüfen Sie, ob das Gerät vom Betriebssystem erkannt wird. Gehen Sie dazu folgendermaßen vor:
- Überprüfen Sie vor dem Anschließen der Webcam an den Laptop alle angeschlossenen Videogeräte, indem Sie an der Eingabeaufforderung
ls /dev/video*
eingeben. Als Ergebnis wird eine Liste aller an das System angeschlossenen Videogeräte angezeigt. 
- Schließen Sie die Webcam an und geben Sie den Befehl erneut aus. Wenn die Webcam richtig angeschlossen ist, wird das neue Gerät als Ergebnis des Befehls angezeigt.

- Sie können auch die Webcam-Software verwenden, um den korrekten Betrieb zu überprüfen. Ubuntu kann hierfür das Cheese-Programm verwenden.

Schritt 2: Software-Setup
Schritt 2.1: Installieren Sie PythonDer Code in diesem Artikel wurde mit Python (Version 3.5) geschrieben. Für die Installation von Python empfehle ich die Verwendung von
Anaconda , einer beliebten Python-Distribution zum Verarbeiten und Analysieren von Daten.
Schritt 2.2: Installieren Sie OpenCVOpenCV ist eine Open Source-Bibliothek, mit der Computer Vision-Anwendungen erstellt werden können. Die Installation von OpenCV erfolgt mit
pip
:
pip3 install opencv-python
Schritt 2.3: Legen Sie die face_recognition-API festWir werden die
face_recognition API
, die als die einfachste Python-Gesichtserkennungs-API der Welt gilt. Verwenden Sie zum Installieren:
pip install dlib pip install face_recognition
Implementierung
Nach dem Einrichten des Systems fahren wir mit der Implementierung fort. Zunächst erstellen wir ein Programm und erklären dann, was wir getan haben.
Exemplarische Vorgehensweise
Erstellen Sie eine Datei
face_detector.py
und kopieren Sie den folgenden Code:
Führen Sie dann diese Python-Datei aus, indem Sie Folgendes eingeben:
python face_detector.py
Wenn alles richtig funktioniert, wird ein neues Fenster geöffnet, in dem der Gesichtserkennungsmodus in Echtzeit gestartet wird.
Um zusammenzufassen und zu erklären, was unser Code getan hat:
- Zuerst haben wir die Hardware angegeben, auf der das Video analysiert werden soll.
- Dann haben wir Bild für Bild eine Echtzeit- Videoaufnahme gemacht .
- Dann wurde jedes Bild verarbeitet und die Position aller Gesichter im Bild extrahiert .
- Infolgedessen wurden diese Bilder in Form eines Videos zusammen mit einer Angabe, wo sich die Gesichter befinden, reproduziert .
Anwendungsbeispiel für die Gesichtserkennung
Dies ist nicht alles, was Spaß macht. Wir werden noch eine coole Sache machen: Wir werden ein vollwertiges Anwendungsbeispiel erstellen, das auf dem obigen Code basiert. Wir werden kleine Änderungen am Code vornehmen und alles wird fertig sein.
Angenommen, Sie möchten mit einem Camcorder ein automatisiertes System erstellen, um zu verfolgen, wo sich der Lautsprecher gerade befindet. Abhängig von seiner Position dreht das System die Kamera so, dass der Lautsprecher immer in der Mitte des Rahmens bleibt.
Der erste Schritt besteht darin, ein System zu erstellen, das die Person oder Personen im Video identifiziert und sich auf den Standort des Sprechers konzentriert.

Lassen Sie uns herausfinden, wie es geht. Als Beispiel habe ich ein Video auf YouTube mit einer Rede der Sprecher der DataHack Summit 2017-Konferenz ausgewählt.
Importieren Sie zunächst die erforderlichen Bibliotheken:
import cv2 import face_recognition
Dann lesen wir das Video und stellen die Länge ein:
input_movie = cv2.VideoCapture("sample_video.mp4") length = int(input_movie.get(cv2.CAP_PROP_FRAME_COUNT))
Danach erstellen wir eine Ausgabedatei mit der erforderlichen Auflösung und Bildrate ähnlich der in der Eingabedatei.
Wir laden das Lautsprecherbild als Beispiel, um es im Video zu erkennen:
image = face_recognition.load_image_file("sample_image.jpeg") face_encoding = face_recognition.face_encodings(image)[0] known_faces = [ face_encoding, ]
Nachdem wir fertig sind, starten wir den Zyklus, der sein wird:
- Bild aus dem Video extrahieren.
- Finde alle Gesichter und identifiziere sie.
- Erstellen Sie ein neues Video, das den Originalrahmen mit der Position des Gesichts des Sprechers mit einer Signatur kombiniert.
Schauen wir uns den Code an, der dies ausführt:
Der Code gibt Ihnen dieses Ergebnis:
Von den Redakteuren
Netologiekurse zum Thema: