- Voraussetzungen
- Funktionsweise der Gesichtserkennung mit OpenCV
- Gesichtserkennung mit Cascade Classifiers in OpenCV
Die Gesichtserkennung wird immer beliebter und die meisten von uns verwenden sie bereits, ohne es zu merken. Sei es ein einfacher Facebook-Tag-Vorschlag oder ein Snapchat-Filter oder eine fortschrittliche Sicherheitsüberwachung am Flughafen, Face Recognition hat bereits seine Magie darin entfaltet. China hat begonnen, die Gesichtserkennung in Schulen einzusetzen, um die Anwesenheit und das Verhalten von Schülern zu überwachen. Einzelhandelsgeschäfte verwenden die Gesichtserkennung, um ihre Kunden zu kategorisieren und Personen mit Betrugsgeschichte zu isolieren. Mit viel mehr Änderungen besteht kein Zweifel daran, dass diese Technologie in naher Zukunft überall zu sehen sein wird.
In diesem Tutorial erfahren Sie, wie Sie mithilfe der OpenCV-Bibliothek auf Raspberry Pi unser eigenes Gesichtserkennungssystem erstellen können. Der Vorteil der Installation dieses Systems auf einem tragbaren Raspberry Pi besteht darin, dass Sie es überall installieren können, um es als Überwachungssystem zu verwenden. Wie bei allen Gesichtserkennungssystemen umfasst das Lernprogramm zwei Python-Skripte. Eines ist ein Trainer-Programm, das eine Reihe von Fotos einer bestimmten Person analysiert und einen Datensatz (YML-Datei) erstellt. Das zweite Programm ist das Recognizer-ProgrammDieser erkennt ein Gesicht und verwendet diese YML-Datei, um das Gesicht zu erkennen und den Namen der Person zu erwähnen. Beide Programme, die wir hier diskutieren werden, sind für Raspberry Pi (Linux), funktionieren aber auch auf Windows-Computern mit sehr geringfügigen Änderungen. Wir haben bereits eine Reihe von Tutorials für Anfänger, um mit OpenCV zu beginnen. Sie können alle OpenCV-Tutorials hier überprüfen.
Voraussetzungen
Wie bereits erwähnt, werden wir die OpenCV-Bibliothek verwenden, um Gesichter zu erkennen und zu erkennen. Stellen Sie daher sicher, dass Sie OpenCV Library auf Pi installieren, bevor Sie mit diesem Lernprogramm fortfahren. Versorgen Sie Ihren Pi auch mit einem 2A-Adapter und schließen Sie ihn über ein HDMI-Kabel an einen Monitor an, da wir den Videoausgang nicht über SSH erhalten können.
Außerdem werde ich nicht erklären, wie genau OpenCV funktioniert. Wenn Sie sich für das Erlernen der Bildverarbeitung interessieren, lesen Sie diese OpenCV-Grundlagen und die erweiterten Bildverarbeitungs-Tutorials. In diesem Tutorial zur Bildsegmentierung erfahren Sie auch mehr über Konturen, Blob-Erkennung usw.
Funktionsweise der Gesichtserkennung mit OpenCV
Bevor wir beginnen, ist es wichtig zu verstehen, dass Gesichtserkennung und Gesichtserkennung zwei verschiedene Dinge sind. Bei der Gesichtserkennung wird nur das Gesicht einer Person erkannt. Die Software hat keine Ahnung, wer diese Person ist. In Gesichtserkennung wird die Software nicht nur das Gesicht erkennen, sondern auch die Person erkennen. Nun sollte klar sein, dass wir eine Gesichtserkennung durchführen müssen, bevor wir eine Gesichtserkennung durchführen. Es wäre mir nicht möglich zu erklären, wie genau OpenCV ein Gesicht oder ein anderes Objekt in dieser Angelegenheit erkennt. Wenn Sie also neugierig sind, dass Sie diesem Tutorial zur Objekterkennung folgen können.
Ein Video-Feed von einer Webcam ist nichts anderes als eine lange Folge von Standbildern, die nacheinander aktualisiert werden. Und jedes dieser Bilder ist nur eine Sammlung von Pixeln mit unterschiedlichen Werten, die an ihrer jeweiligen Position zusammengesetzt sind. Wie kann ein Programm ein Gesicht anhand dieser Pixel erkennen und die Person darin weiter erkennen? Dahinter stecken viele Algorithmen, und der Versuch, sie zu erklären, würde den Rahmen dieses Artikels sprengen. Da wir jedoch die OpenCV-Bibliothek verwenden, ist es sehr einfach, die Gesichtserkennung durchzuführen, ohne tiefer in die Konzepte einzusteigen
Gesichtserkennung mit Cascade Classifiers in OpenCV
Nur wenn wir ein Gesicht erkennen können, können wir es erkennen oder uns daran erinnern. Um ein Objekt wie das Gesicht zu erkennen, verwendet OpenCV sogenannte Klassifikatoren. Diese Klassifizierer sind vorab trainierte Datensätze (XML-Datei), mit denen ein bestimmtes Objekt in unserem Fall ein Gesicht erkannt werden kann. Weitere Informationen zu Gesichtserkennungsklassifikatoren finden Sie hier. Neben der Gesichtserkennung können Klassifikatoren auch andere Objekte wie Nase, Augen, Fahrzeugkennzeichen, Lächeln usw. erkennen. Die Liste der Fallklassifikatoren kann aus der folgenden ZIP-Datei heruntergeladen werden
Klassifikatoren für die Objekterkennung in Python
Alternativ können Sie mit OpenCV auch einen eigenen Klassifikator erstellen, mit dem Sie jedes andere Objekt in einem Bild erkennen können, indem Sie Ihren Kaskadenklassifikator trainieren. In diesem Tutorial verwenden wir einen Klassifikator namens "haarcascade_frontalface_default.xml", der das Gesicht von der vorderen Position aus erkennt. Wir werden sehen