Entwickler-Ecke

Multimedia / Grafik - Face Recognition


Tru5T - Mi 02.04.14 20:01
Titel: Face Recognition
Hey,

ich bin es schon wieder :D
Kennt vielleicht jemand von euch eine gute Face Recognition library für c#. Ich habe Emgu bereits getestet und bin alles andere als zufrieden damit...

Vielleicht noch etwas mehr Hintergrund:
Mein Bachelor Projekt ist über Face Recognition und Encryption. Ich möchte mit dem Gesicht eine Datei entschlüsseln können und dadurch das Passwort ersetzen.

Danke!!


Grüße
Tru5T


Ralf Jansen - Mi 02.04.14 20:07

Was meinst du genau? Ist der Wrapper schlecht oder die Recognition Library (OpenCV) selbst?


Tru5T - Mi 02.04.14 20:29

Ich bekomme es soweit hin, dass ich von einem Bild das Gesicht mit einem Viereck einrahmen lassen kann. Ich brauch aber danach irgendetwas, das ich vergleichen kann, einen Vektor oder Werte. Das Problem ist, je höher die Auflösung desto mehr Details kann er finden, wenn aber das andere Bild eine schlechtere Auflösung hat, findet er deutlich weniger Punkte. Als Resultat habe ich zwei Arrays, das eine hat 1000 Einträge und das andere 100, also nicht vergleichbar.

Hier ist der Source Code den ich soweit habe:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
openFileDialog1.ShowDialog();
if (!openFileDialog1.FileName.Equals(""))
{
    Image<Bgr, Byte> img = new Image<Bgr, byte>(openFileDialog1.FileName);
    Image<Gray, Byte> imgGray = img.Convert<Gray, byte>();
    HaarCascade cascade = new HaarCascade("haarcascade_frontalface_default.xml");

    foreach (MCvAvgComp face in imgGray.DetectHaarCascade(cascade)[0])
    {
        img.Draw(face.rect, new Bgr(Color.Blue), 4);
    }
    imageBox1.Image = img;
}


Grüße
Tru5T


jfheins - Mi 02.04.14 22:56

Du kannst dir eine Menge von Eigengesichern definieren und das aktuelle Gesicht als lineare Superposition diese auffassen. Die Koeffizienten der Eigengesichter sind dann sein "Schlüssel".

Ich hoffe, dass in deiner Arbeit das "Passwörter ersetzen durch Biometrie" noch etwas hinterfragt wird. Schließlich kann ich mein Gesicht kaum geheim halten, es taugt daher nicht als Schlüssel. Als Zusatz (zusätzlich zum Passwort) erhöht es die Sicherheit deutlich. (Two-factor Auth: Er weiß das Passwort und hat das Gesicht)

Weiteres Material solltest du hier finden: http://scholar.google.de/scholar?hl=de&q=eigenface


Tru5T - Fr 11.04.14 14:47

Ich habe es hinbekommen Face Recognition in meine Anwendung zu implementieren. Ich habe letztendlich die openCV library genommen und mich etwas näher damit beschäftigt. Im Nachhinein ist diese library sehr vielseitig und mit eine bisschen fine tuning stellt sie genau das was ich brauche bereit.

@jfheins: Natürlich habe ich auch noch eine Passwortauthentifizierung mit in meine Anwendung eingebaut. Danke für deine Anregungen und deine Tipps. Meine Bachelorarbeit wird von den Professoren aber mehr auf den Report bewertet, das heißt, meine Anwendung, die ich schreibe, hat nur einen verhältnismäßig kleinen Teil der gesamt Bewertung.

Grüße
Tru5T