MATLAB-Anwendung in der Gesichtserkennung: Code, Beschreibung und Syntax
Veröffentlicht: 2020-06-23Jedes Mal, wenn Sie Ihr Mobiltelefon mit Ihrem Gesicht entsperren oder Ihr Hightech-Büroüberwachungssystem passieren, arbeitet eine ausgeklügelte Gesichtserkennungstechnologie im Hintergrund. Was also ist Gesichtserkennung und wie kann man Gesichtserkennung mit MATLAB durchführen ?
Gesichtserkennung ist der Prozess der Identifizierung menschlicher Gesichter durch Technologie. Das Gesichtserkennungssystem verwendet Techniken des maschinellen Sehens und des maschinellen Lernens, um aus Bildern und Videos extrahierte Gesichtsmerkmale zu modellieren und zu klassifizieren. Algorithmen zur Gesichtserkennung extrahieren und kartieren Gesichtsmerkmale und vergleichen sie mit einer Datenbank bekannter Gesichter, um die beste Übereinstimmung zu finden.
Quelle
Inhaltsverzeichnis
MATLAB in der Gesichtserkennung
Es ist möglich, Gesichtserkennung mit MATLAB-Code zu erreichen. Die eingebaute Klasse und Funktion in MATLAB kann verwendet werden, um Gesicht, Augen, Nase und Mund zu erkennen. Das Object Vision.CascadeObjectDetector System der Computer Vision System Toolbox erkennt Objekte basierend auf dem Viola-Jones-Gesichtserkennungsalgorithmus.
Beschreibung des MATLAB-Objektdetektors
Der vision.CascadeObjectDetector nutzt den Viola-Jones-Algorithmus zur Erkennung von Gesichtern, Augen, Mund, Nase oder Oberkörper. Ein benutzerdefinierter Klassifikator kann mit dem Image Labeler von MATLAB trainiert und zusammen mit dem Systemobjekt verwendet werden. Wie also werden Gesichtszüge oder der Oberkörper in einem Bild erkannt? Hier sind die Schritte:
- Der erste Schritt umfasst die Erstellung des vision.CascadeObjectDetector-Objekts und das Festlegen seiner Eigenschaften.
- In diesem Schritt wird das Objekt mit Argumenten aufgerufen (als ob es sich wie eine Funktion verhalten würde).
Lesen Sie: 15 interessante MATLAB-Projektideen und -themen für Anfänger

Syntax für die Erstellung des Objektdetektors
Die für die Erstellung des Objektdetektors verwendete Syntax lautet wie folgt:
- Detektor = vision.CascadeObjectDetector
- Detektor = vision.CascadeObjectDetector(mode1)
- Detektor = vision.CascadeObjectDetector(Name,Wert)
- Detektor = vision.CascadeObjectDetector(XMLFILE)
Beschreibung der Syntax
- Detektor = vision.CascadeObjectDetector: Diese Syntax wird für die Erstellung eines Detektors verwendet, der Objekte mithilfe des Viola-Jones-Algorithmus erkennt.
- Detektor = vision.CascadeObjectDetector(mode1): Diese Syntax wird für die Erstellung eines Detektors verwendet, der für die Erkennung von Objekten konfiguriert ist, die durch den Eingabevektor – mode1 – definiert sind.
- Detektor = vision.CascadeObjectDetector(Name,Wert): Diese Syntax wird zum Festlegen von Eigenschaften verwendet, indem ein oder mehrere Name-Wert-Paare verwendet werden, wobei jeder Eigenschaftsname in Anführungszeichen gesetzt wird. Zum Beispiel: Detector = vision.CascadeObjectDetector('ClassificationModel','UpperBody')
Schauen Sie sich an: Projektideen für maschinelles Lernen
Eigenschaften
Sofern nicht anders angegeben, sind die Funktionen des Kaskaden-Objektdetektors nicht einstellbar, was bedeutet, dass ihre Werte nach dem Aufrufen des Objekts nicht geändert werden können. Objekte werden gesperrt, wenn sie aufgerufen werden, und ihre Entsperrung erfolgt durch die 'Freigabe'-Funktion.
Andererseits würde eine einstellbare Eigenschaft bedeuten, dass ihr Wert jederzeit geändert werden kann. Lassen Sie uns also einen Blick auf einige der Funktionen werfen, bevor wir die Gesichtserkennung mit MATLAB- Codes verstehen.
- ClassificationModel: Als Zeichenvektor definiert, ist diese Eigenschaft für die Steuerung des zu erkennenden Objekttyps verantwortlich. Die Standardkonfiguration des Detektors erkennt Gesichter.
- MinSize: Die Größe des kleinsten erkennbaren Objekts wird als zweielementiger Vektor [Höhe Breite] angegeben. Sofern kein Eigenschaftswert angegeben ist, setzt ihn der Detektor auf die Bildgröße, die zum Trainieren des Klassifizierungsmodells verwendet wird.
- MaxSize: Die Größe des kleinsten erkennbaren Objekts wird als zweielementiger Vektor [Höhe Breite] bezeichnet . Wenn kein Eigenschaftswert angegeben ist, setzt der Detektor ihn auf Größe (I).
- ScaleFactor: Es hat einen angegebenen Wert über 1,0001. Diese Eigenschaft dient zur schrittweisen Skalierung der Erkennungsauflösung zwischen MinSize und MaxSize.
- MergeThreshold: Es hat einen angegebenen ganzzahligen Wert gleich 4. Falls mehrere Erkennungen um ein Zielobjekt herum vorliegen, definiert der Schwellenwert die endgültigen Erkennungskriterien.
- UseROI: Als „false“ angegeben, kann diese Eigenschaft für die Erkennung von Objekten innerhalb eines rechteckigen Interessenbereichs im Eingabebild auf „true“ gesetzt werden.
Syntax für die Verwendung des Objektdetektors
- bbox = Detektor(I)
- bbox = Detektor(I,roi)
Beschreibung der Syntax
- bbox = Detector(I) gibt bbox zurück, eine M -mal -4-Matrix, die ' M ' Begrenzungsboxen definiert, die die erkannten Objekte enthalten.
- bbox = Detector(I,roi) wird zum Detektieren von Objekten innerhalb des durch roi spezifizierten rechteckigen Interessenbereichs verwendet.
Eingabeargumente

- I – Eingabebild: Es wird als True Color oder Graustufen (RGB) angegeben.
- model — Klassifikationsmodell: Es wird als Zeichenvektor angegeben und beschreibt den zu erkennenden Objekttyp.
- XMLFILE – Benutzerdefiniertes Klassifizierungsmodell: Als XML-Datei angegeben, kann es mit der OpenCV-Trainingsfunktion oder der trainCascadeObjectDetector-Funktion erstellt werden.
- roi – Rechteckiger interessierender Bereich: Ein vierelementiger Vektor [ x y width height ] wird verwendet, um dieses Eingabeargument anzugeben.
Ausgabeargumente
bbox – Detektionen: Detektionen werden als M -mal -4-Elementmatrix zurückgegeben, wobei jede Zeile davon den Vier-Elemente-Vektor [ x y width height ] enthält.
Objektfunktionen, die allen Systemobjekten gemeinsam sind
- Schritt: Zum Ausführen des Systemobjektalgorithmus
- release: Zum Freigeben von Systemressourcen
- reset: Zum Zurücksetzen der internen Zustände des Systemobjekts.
MATLAB-Code für die Gesichtserkennung
In diesem Abschnitt sehen wir ein Beispiel für die Gesichtserkennung mit MATLAB-Code.
Gesichtserkennung
Quelle
Quelle
Der Schritt (Detektor, I) gibt den Wert des Begrenzungsrahmens zurück, der [x, y, Höhe, Breite] der erkannten Objekte enthält:
Quelle
Nasenerkennung
Quelle
Quelle
Beschreibung:
- Die Übergabe des Arguments „Nase“ gibt an, dass das interessierende Objekt die Nase ist.
- Die Standardsyntax für die Nasenerkennung ist vision.CascadeObjectDetector('Nose').
- Die an vision.CascadeObjectDetector übergebenen Standardparameterwerte können basierend auf dem Eingabebild geändert werden.
- Der Wert „MergeThreshold“ kann überschrieben werden, um mehrere Erkennungen um das Zielobjekt herum zu vermeiden (wie im Bild oben).
Augenerkennung _
Quelle
Quelle

Munderkennung _
Quelle
Quelle
Lesen Sie auch: While-Schleife in MATLAB: Alles, was Sie wissen müssen
Einpacken
Während die Gesichtserkennungstechnologie für die Überprüfung der persönlichen Identität von Vorteil ist, wirft sie Datenschutzprobleme auf. Da die Technologie den Gesichtsabdruck einer Person verwendet, wird sie oft als Verletzung der Privatsphäre und Sicherheit einer Person angesehen. Die Gesichtserkennung mit MATLAB kann in mehreren Fällen eingesetzt werden, in denen Sicherheit von größter Bedeutung ist. Von Flughäfen und Büros bis hin zu Smartphones ist die Gesichtserkennung zu einem integralen Bestandteil vieler Systeme und Organisationen geworden.
Wenn Sie mehr über maschinelles Lernen erfahren möchten, sehen Sie sich das PG-Diplom in maschinellem Lernen und KI von IIIT-B & upGrad an, das für Berufstätige konzipiert ist und mehr als 450 Stunden strenge Schulungen, mehr als 30 Fallstudien und Aufgaben bietet, IIIT- B-Alumni-Status, mehr als 5 praktische, praktische Abschlussprojekte und Jobunterstützung bei Top-Unternehmen.
Was ist Gesichtserkennung?
Die Gesichtserkennung kann zum Schutz vor Identitätsdiebstahl sowie zur Identifizierung von Personen anhand des Namens verwendet werden. Da die Gesichtserkennung jedoch relativ neu ist und ständig weiterentwickelt wird, ist es wichtig, die Grundlagen der Gesichtserkennung zu verstehen, um sie effektiv nutzen zu können. Gesichtserkennung bezieht sich auf den Prozess der Feststellung, ob ein Gesichtsbild zu einer bekannten Person gehört. Das Problem der Gesichtserkennung lässt sich in zwei Aufgaben unterteilen: 1) Face Detection – Lokalisierung des Gesichts im Bild, 2) Face Recognition – Identifizierung der Person, deren Gesicht es ist.
Was ist Matlab?
Matlab ist eine Programmiersprache für numerische Berechnungen. Im Grunde ist es eine Matrix-Programmiersprache. Es wird häufig in wissenschaftlichen und technischen Berechnungen verwendet. Im Gegensatz zu den anderen Programmiersprachen wurde MATLAB als Matrixsprache entwickelt, die für Berechnungen auf Matrizen geeignet ist. Matrizen werden in vielen verschiedenen Gleichungen verwendet, insbesondere in wissenschaftlichen und technischen Berechnungen. Matlab ist eine höhere Programmiersprache, die mit einer Vielzahl von Funktionen ausgestattet ist. Es wird verwendet, um mathematische Probleme zu lösen, Daten zu analysieren und Diagramme zu erstellen.
Was ist Viola Jones in Matlab?
Der Viola-Jones-Algorithmus wird zur Gesichtserkennung und Gesichtsausdruckserkennung verwendet. Der Viola-Jones-Algorithmus basiert auf Histograms of Oriented Gradients (HOG), das erstmals 2001 von Paul Viola und Michael Jones eingeführt wurde. Er wird in Computer Vision, maschinellem Lernen und Bildverarbeitung verwendet. Der Viola-Jones-Algorithmus stellt ein vollständiges Objekterkennungssystem bereit und kann zur Fußgängererkennung, Objekterkennung oder Personenerkennung verwendet werden. Der Viola-Jones-Algorithmus besteht aus einem Merkmalsextraktionsschritt, einem Clusterbildungsschritt und einem Objektklassifizierungsschritt.