Face Recognition

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
OpenCV
User
Beiträge: 20
Registriert: Mittwoch 17. Februar 2010, 15:29

Hallo Community!

Heute hab ich eine theoretische Frage an euch:
Ich arbeite gerade an einem Gesichtserkennungssystem und ein gutes System sollte natürlich auch Face Recognition beinhalten, also das Vergleichen mit einer vorgegebenen Datenbank und das aufgenommene Bild jemandem zuordnen können.

Ich habe mit OpenCV bisher eine Face Detection, also Gesichtserkennung programmiert und nun würde ich gerne wissen, ob man mit einem ganz einfachen Algorithmus (bitte kein Eigenface!) einen Vergleich machen kann.

Ich dachte zuerst an die Methoden cvAbsDiff und cvThreshold. Also will ich über die Pixel der Bilder iterieren und sie somit vergleichen, in welchen Pixeln sie sich unterscheiden und dann das mit der höchsten Übereinstimmung als Resultat ausgeben lassen. Nun hab ich aber nach logischem Überlegen die Befürchtung, dass dies nicht gehen wird, denn sogar bei leichter Veränderung der Umstände sieht jedes Pixel anders aus und kein Bild stimmt somit überein!
Findet ihr diesen Ansatz auch falsch? Was würdet ihr mir für Vergleichsalgorithmen vorschlagen? Eigentlich kommt in der Hierarchie nach der reinen Erkennung ja die Feature Extraction, indem man wie bei Eigenfaces markante Merkmale extrahiert und PCA anwendet, etc. Geht es einfacher ohne diesen Schritt oder nur teilweise?

MFG
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Eigenfaces ist AFAIK der "leichteste" FR-Algorithmus... (und der ist noch extrem schlecht, versuch dich erst gar nicht mit etwas leichterem, das bringt zwangsläufig eine noch schlechtere Erkennung mit sich)

btw: http://pyfaces.blogspot.com/
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Ein einfacher Bildvergleich wird dich hier nicht weiter bringen. Jede Schwankung der Umgebungsbedingungen und ungenaue Positionierung des Gesichtes wird sofort zu Fehlern führen. Ein sinnvoller Vergleich kann demnach nur mit Merkmalen geführt werden die invariant ggü. den zu erwartenden Schwankungen sind. Das werden sicherlich irgendwelche gesichtsspezifischen Merkmale (Augenabstand?, etc.) sein. Mit denen musst du eine Klassifikation durchführen um das passende Gesicht auszuwählen. Die PCA brauchst du dabei nicht zwingend. Das ist nur ein Vorfarbeitungsschritt vor der Klassifikation. Welches Klassifikationsverfahren dann am besten geeignet ist, kannst du einfach mit einem Programm wie RapidMiner ausprobieren, bevor du dir eine passende Implementierung für Python suchst.

MFG HerrHagen
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

So muss es jedenfalls funktionieren wenn du fertig bist :wink: :
http://facemining.pittpatt.com/play_video.php?S1E03
philistion
User
Beiträge: 108
Registriert: Sonntag 7. Februar 2010, 14:16

HerrHagen hat geschrieben:So muss es jedenfalls funktionieren wenn du fertig bist :wink: :
http://facemining.pittpatt.com/play_video.php?S1E03
Sehr schön!

@OpenCV: Willst du Eigenface nicht weil es dir zu "kompliziert" ist oder weil es dir nicht genügend gute Ergebnisse liefert?

Andere Ansätze wären z.B. mit einer bestimmten Art von Fourier-Transfomration, der Wavelet-Transformation (bzw. Gabor-Transformation) möglich:
Siehe:
* http://www.kenteng.com/httpdocs/project ... recog.html
* http://citeseerx.ist.psu.edu/viewdoc/do ... 1&type=pdf

Es gibt sogar eine Python-Bibliothek: http://www.pybytes.com/pywavelets/

Alles in allem aber nicht gerade einfache Kost, mit den Eigenfaces bist du da sicher am schnellsten bei einer Lösung, als wenn man hier anfängt mit anderen Ansätzen rumzuexperimentieren.


//Addendum: Es gibt eine Bild-Suchdatenbank, die o.g. Methode verwendet. Die Bibliothek heißt imgSeek und ist in Python und C++ geschrieben: http://sourceforge.net/projects/imgseek ... 2/download
Antworten