2009-11-08 18 views
10

Ich führe eine kleine Forschung über Gesichtserkennung und Vergleich für meinen Artikel. Derzeit verwende ich schnelle Gesichtserkennung basierend auf Haar wie Features basierend auf OpenCV-Kaskade (ich werde später lernen zu implementieren). Der nächste Schritt ist ein Gesichtsvergleich. Gibt es bekannte Algorithmen? Es wird großartig sein, wenn es einige C# -Codes gibt, die sie erklären oder einige DLLs, die sie implementieren.Gesichtserkennung und Vergleich

Antwort

8

Eigenfaces

Um einen Satz von Eigengesichtern, ein großen Satz von digitalisierten Bildern von menschlichen Gesichter, genommen unter der gleichen Licht Bedingungen zu erzeugen, werden normalisiert die Augen und Münder aufreihen. Sie sind dann alle resampled bei der gleichen Pixel Auflösung. Eigenflächen können aus den Bilddaten extrahiert werden durch Mittel eines mathematischen Werkzeugs genannt Hauptkomponentenanalyse (PCA).

Die Eigengesichter können nun repräsentieren neue Gesichter verwendet werden: Wir haben eine neue (Mittelwert subtrahiert) Bild auf dem Eigengesichter projizieren kann und dadurch aufzeichnen, wie die neues Gesicht aus dem Gesicht Mittelwert abweicht. Die zu jedem Eigengesicht gehörigen Eigenwerte geben an, wie stark die Bilder im Trainingssatz von dem mittleren Bild in dieser Richtung abweichen. Wir verlieren Informationen durch die Projektion der Bild auf eine Teilmenge der Eigenvektoren, , aber wir minimieren diesen Verlust, indem diejenigen Eigengesichter mit den größten Eigenwerte beibehalten.

Fisherfaces and Eigenfaces

Wenn Ihre Gesichter nicht ausgerichtet sind, dann würde ich empfehlen, das folgende Papier zu lesen:

Support Vector Machines

Abstract: Wir präsentieren eine komponentenbasierte Methode und zwei globale Methoden für Gesicht Erkennung und evaluieren sie mit Bezug auf Robustheit gegen Pose Änderungen. In dem Komponentensystem wir zuerst lokalisieren Gesichtskomponenten, extrahieren Sie sie und kombinieren sie zu einem einzelnen Feature-Vektor, der von einer Support Vector Machine (SVM) klassifiziert ist.

Die beiden globalen Systeme erkennen Flächen durch einen einzelnen Merkmalsvektor Klassifizieren bestehend aus den Grauwerten des ganze Gesichtsbild. Im ersten globalen System haben wir einen einzelnen SVM Klassifikator für jede Person in der Datenbank trainiert. Das zweite System besteht aus Sets von blickpunktspezifischen SVM Klassifikatoren und umfasst Clustering während des Trainings.

1

Es gibt ein Auswertesystem von Beveridge.Sie implementierten drei Gesichtserkennungsalgorithmen mit unterschiedlichen Metriken. Die Algorithmen sind implementiert für Auswertung dafür könnte es schwierig sein, sie für Ihre eigenen Programme zu verwenden.

Einige Java-APIs und allgemeine Links finden Sie in meiner Question über Gesichtserkennung.

6

schrieb ich ein Tutorial und Demo-Programm mit Code kostenloser Quelle für von einer Webcam (auch in OpenCV) Gesichtserkennung und Gesichtserkennung in Echtzeit durchführen:

http://www.shervinemami.info/faceRecognition.html

+2

Link nicht mehr arbeiten. – prathumca

+1

versuchen Sie http://www.shervinemami.info/faceRecognition.html – NoCakeNoCode