2017-09-12 6 views
-1

Vor allem hier ist mein github link for the question.Gesichtsvergleich (keine Erkennung oder Erkennung) mit OpenCV und Keras?

Und hier ist meine Frage:

Ich mag würde ein Gesicht Vergleichsfunktion Python tun. Und ich kann Gesichter mit OpenCV erfolgreich erkennen (?). Jetzt, Wie mache ich die Vergleichssache?

Was ich verstehe, ist dies:

Im Allgemeinen Maschinenlernansatz, ich brauche eine Menge Daten über diese spezielle Person zu sammeln und finalisieren eine CNN mit.

aber ich habe nur zwei Bilder, wie mache ich den Vergleich? Sollte ich es in Bezug auf Klassifizierung oder Clustering (Verwendung von KNN) denken?

Vielen Dank im Voraus für Ihre Hilfe.

Antwort

2

Sie können die Idee der Flächeneinbettung verwenden, die zum Beispiel in der viel zitierten Arbeit FaceNet vorgeschlagen und in OpenFace implementiert wird (die auch vortrainiert).

Die allgemeine Idee: nehmen Sie einige vorbearbeitete Gesicht (frontal, beschnitten, ...) und bettete es in eine niedrigere Dimension mit der Eigenschaft, dass ähnliche Gesichter in Eingabe einen niedrigen euklidischen Abstand in der Ausgabe haben sollten.

Also in Ihrem Fall: Verwenden Sie die Einbettung-CNN, um Ihre Gesichter auf den reduzierten Raum (in der Regel ein Vektor der Größe 128) abzubilden und berechnen Sie die Entfernung wie im euklidischen Raum. Natürlich gruppieren Sie dann auch Gesichter, aber das ist nicht Ihre Aufgabe.

Die gute Sache hier neben der allgemeinen Idee: Openface ist eine schöne Umsetzung bereit zu bedienen und es ist Homepage erklärt sich auch die Idee:

ein tiefes neuronales Netz verwenden zu repräsentieren (oder einbetten) das Gesicht auf eine 128-dimensionale Einheitshypersphäre.

Die Einbettung ist eine allgemeine Darstellung für das Gesicht niemand. Im Gegensatz zu anderen Gesichtsdarstellungen hat diese Einbettung die nette Eigenschaft, dass ein größerer Abstand zwischen zwei Gesichtseinbettungen bedeutet, dass die Gesichter wahrscheinlich nicht von derselben Person sind.

Diese Eigenschaft macht clustering, Ähnlichkeits Detektions- und Klassifikationsaufgaben leichter als andere Gesichtserkennungstechniken, bei denen der euklidische Abstand zwischen den Funktionen, die nicht sinnvoll ist.

Sie haben sogar eine Vergleichsdemo here.

1

Sie müssen sich für Gesichter Ahnlichkeitsmetrik lernen. Es erlaubt, Merkmale zu extrahieren, die gut sind, um verschiedene Personen zu unterscheiden. Dann werden Sie in der Lage sein, Unähnlichkeit (Abstand) zwischen ihnen zu finden. Sie können zum Beispiel näher here lesen. kNN und solche Dinge sind nützlich, um Gruppen ähnlicher Gesichter zu finden, aber sie müssen zuvor extrahierte Features verwenden.