2010-05-25 10 views
20

Ich habe kürzlich ein wenig in die Gesichtserkennung geschaut. Aber ich bin überwältigt von der Anzahl der Algorithmen, die es gibt.State of the Art in Gesichtserkennung

PCA, LDA, IDA, Gabor Wavelets, AAM ...

Sagen Sie so etwas wie this machen wollte ... Welche Algorithmen würden Sie verwenden oder welche Papiere würden Sie gelesen haben?

+1

+1 für das Thema, sehr interessant. –

+0

Gemeinschaft Wiki ?? – Betamoo

Antwort

16

denke ich, das erste, was Sie tun sollten, ist klar, dass die Algorithmen Sie in den verschiedenen Phasen der Gesichtserkennung verwendet werden, haben aufgelistet.

Zuerst müssen Sie sich für die Darstellung entscheiden, d. e. die zu verwendenden Funktionen. Dies können rohe Pixel, Gabor-Filter, einige Formdeskriptoren, deformierbare Modelle usw. sein.

Dann möchten Sie normalerweise die Dimensionalität Ihrer Features reduzieren. Hier kommen Algorithmen wie PCA, ICA oder LDA ins Spiel, die Datenpunkte in einen niederdimensionalen Raum projizieren, um den größten Teil der Varianz (PCA) zu erhalten oder die optimale Trennung von Punkten verschiedener Kategorien (LDA) zu gewährleisten.

Dann möchten Sie wahrscheinlich einen Klassifikator auf Ihre Funktionen trainieren, um zwischen den Gesichtern verschiedener Personen zu unterscheiden. Es gibt eine Fülle von Algorithmen zur Auswahl, z. B. der nächste Nachbar, Support Vector Machines, versteckte Markov-Modelle, Bayes-Netze etc.

Beachten Sie, dass die Wahl eines Algorithmus für eine bestimmte Stufe kann oder nicht abhängen auf den Algorithmen für andere Stufen. Zum Beispiel kann PCA verwendet werden, um die Dimensionalität fast jeder Art von Merkmalen zu reduzieren. Andererseits ist es nicht unmittelbar offensichtlich, wie man einen Unterstützungsvektormaschinen-Klassifizierer für Flächen verwenden kann, die durch ein verformbares Netz dargestellt werden.

Ich denke, das erste, was Sie versuchen sollten, ist, Ihr Problem sehr genau zu definieren. Möchten Sie zwischen den Gesichtern einiger weniger Personen unterscheiden, z. B. Ihre Familienmitglieder auf Fotos erkennen? Möchtest du Menschen aus einer riesigen Datenbank erkennen? Hast du viele Trainingsbilder für jedes Gesicht oder nur wenige? Möchten Sie unterschiedliche Orientierungen und Lichtverhältnisse handhaben?

Die Antworten auf diese Fragen bestimmen, wie kompliziert Ihr Problem ist, und werden sicherlich Ihre Wahl der Algorithmen beeinflussen.

EDIT: Hier ist ein thesis von jemandem, der versucht, ein ähnliches Problem zu lösen. Es ist von 2002, aber IMHO ist es ein guter Anfang.

+1

Wie ich schon sagte, dachte ich darüber nach, wie eine Myheritage zu machen, wo man eine große Anzahl von Fotos eingeben und mit einer großen Datenbank von Beispielen vergleichen kann (die die gleiche Person mit unterschiedlichem Ausdruck, Pose und Beleuchtung enthalten) – Maarten

+0

Allerdings hast du die Dinge für mich viel klarer gemacht. – Maarten

+0

Nein, eigentlich hast du nicht erklärt, was dein spezifisches Ziel war. Aber es hört sich so an, als ob Sie das Retrieval und nicht die Klassifizierung machen wollen. Was Sie wirklich wollen, ist eine geeignete Feature-Repräsentation auszuwählen und ein Distanzmaß zwischen zwei solchen Repräsentationen zu definieren. – Dima

1

Haar Kaskade läuft auf einem Marilena Port.

Eine Haar-Kaskade ist ein Algorithmus, der eine Datei liest und dem Computer mitteilt, wie etwas aussieht. Ich habe es in der Vergangenheit benutzt, um Gesichter, Brille, nur ein Lächeln, Hände und eine Cola-Dose zu erkennen.

http://en.wikipedia.org/wiki/Haar-like_features

+3

Ich spreche über Gesichtserkennung nicht Erkennung. EDIT: Danke trotzdem. – Maarten

3

Sie möchten Tiefenkarten berücksichtigen. Das ist Stand der Technik. Versuchen Sie, spärliche sphärische Darstellungen zu lesen. Eigengesichter ist einfach nicht sehr robust. Es ist nicht invariant gegenüber mehreren Faktoren. Die Gesichtserkennung nach dem Stand der Technik verwendet 3D-PCL mit Tiefeninformationen. Dies würde Ihnen erlauben, selbst im Dunkeln zu erkennen. Sie können eine Asus-Kamera oder eine Kinect-Kamera verwenden, um Tiefeninformationen zu sammeln. Ich hoffe, das hilft!

Verwandte Themen