webentwicklung-frage-antwort-db.com.de

Gesichtserkennungsbibliothek

Ich suche eine kostenlose Gesichtserkennungsbibliothek für ein Universitätsprojekt. Ich suche keine Gesichtserkennung . Ich suche nach tatsächlicher Anerkennung. Das bedeutet, dass Sie Bilder finden, die bestimmte Gesichter enthalten, oder Bibliotheken, die Entfernungen zwischen bestimmten Gesichtern berechnen.

Ich benutze derzeit OpenCV zur Erkennung der Gesichter und einen groben Eigenface Algorithmus zur Erkennung. Aber ich dachte, es sollte etwas geben, das eine bessere Leistung bietet als ein selbst geschriebener Eigenface-Algorithmus. Ich spreche nicht von Geschwindigkeit als Leistung, sondern suche eine Bibliothek mit besseren Ergebnissen als ein einfacher Eigenface-Ansatz.

Ich habe mir Faint angesehen, aber es scheint, dass die Bibliothek für meine eigenen Anwendungen nicht sehr wiederverwendbar ist.

Ich bin zufrieden mit einer Bibliothek in Python, Java, C++, C oder so ähnlich. Das Beste wäre, wenn es auf einem Windows-Computer ausgeführt werden kann, da ich momentan auf externen Windows-Code angewiesen bin.

164
Janusz

Hier ist eine Liste von kommerziellen Anbietern, die Standardpakete für die Gesichtserkennung unter Windows anbieten:

  1. Cybula - Informationen zu ihrem Facial Recognition SDK . Dies ist eine von einem Universitätsprofessor gegründete Firma, deren Website unprofessionell aussieht. Es gibt keine Preisinformationen oder Demo, die Sie herunterladen können. Sie müssen kontaktieren Sie sie für Preisinformationen.

  2. NeuroTechnology - Informationen zu ihrem Facial Recognition SDK . Dieses Unternehmen verfügt sowohl über Preisinformationen im Voraus als auch über aktuelle 30-Tage-Testversion seines SDK .

  3. Pittsburgh Pattern Recognition - Von Google erworbene Informationen zu deren Facial Tracking and Recognition SDK . Die von ihnen bereitgestellten Demos helfen Ihnen bei der Bewertung ihrer Technologie, nicht jedoch ihres SDSK. Sie müssen kontaktieren Sie sie für Preisinformationen.

  4. Sensible Vision - Informationen über ihre SDK . Auf ihrer Website erhalten Sie auf einfache Weise ein Preisangebot. Sie können auch ein Evaluierungskit bestellen, das Ihnen bei der Evaluierung ihrer Technologie hilft.

82
Praveen Angyan

Aktualisieren

OpenCV 2.4.2 enthält jetzt das neue cv :: FaceRecognizer . Bitte beachten Sie die sehr ausführliche Dokumentation unter:

Ursprünglicher Beitrag

Ich habe libfacerec veröffentlicht, eine moderne Gesichtserkennungsbibliothek für die OpenCV C++ API (BSD-Lizenz). libfacerec hat keine zusätzlichen Abhängigkeiten und implementiert die Eigenfaces-Methode, die Fisherfaces-Methode und die Local Binary Patterns-Histogramme. Teile der Bibliothek werden in OpenCV 2.4 aufgenommen.

Die neueste Version von libfacerec ist verfügbar unter:

Die Bibliothek wurde für OpenCV 2.3.1 unter Berücksichtigung der bevorstehenden OpenCV 2.4-Version geschrieben, daher unterstütze ich OpenCV-Versionen vor 2.3.1 nicht. Dieses Projekt ist ein CMake-Projekt mit einer gut dokumentierten API. Es gibt auch ein Tutorial zur Geschlechtsklassifizierung. Eine HTML-Version der Dokumentation finden Sie unter:

Wenn Sie verstehen möchten, wie diese Algorithmen funktionieren, lesen Sie möglicherweise meinen Leitfaden zur Gesichtserkennung (enthält Python und GNU Octave/MATLAB-Beispiele)):

Es gibt auch eine Python und GNU Octave/MATLAB-Implementierung der Algorithmen in mein Github-Repository . Beide Projekte in facerec enthält auch mehrere Methoden zur Kreuzvalidierung zur Bewertung von Algorithmen:

Die relevanten Publikationen sind:

  • Turk, M. und Pentland, A. Eigengesichter zur Erkennung. . Journal of Cognitive Neuroscience 3 (1991), 71–86.
  • Belhumeur, P. N., Hespanha, J. und Kriegman, D. Eigengesichter vs. Fischergesichter: Erkennung mittels klassenspezifischer linearer Projektion. . IEEE Transactions on Pattern Analysis and Machine Intelligence 19, 7 (1997), 711–720.
  • Ahonen, T., Hadid, A. und Pietikainen, M. Gesichtserkennung mit lokalen binären Mustern . Computer Vision - ECCV 2004 (2004), 469–481.
54
bytefish

pam-face-authentication ein PAM-Modul zur Gesichtsauthentifizierung: aber es würde einige Arbeit erfordern, um es zu bekommen was du willst. Ein schneller Test ergab, dass die Erkennungsraten nicht so gut sind wie bei VeriLook von NeuroTechnology.

Malic ist eine weitere Open-Source-Gesichtserkennungssoftware, die Gabor Wavelet-Deskriptoren verwendet. Das letzte Update der Quelle ist jedoch 3 Jahre alt.

Von der Website: " Malic ist eine Open Source-Gesichtserkennungssoftware, die Gabor Wavelet verwendet. Es ist ein Echtzeit-Gesichtserkennungssystem, das auf Malib und dem CSU-Gesichtserkennungs-Bewertungssystem (csuFaceIdEval) basiert. Verwendet die Malib-Bibliothek für die Echtzeit-Bildverarbeitung und einige mehr von csuFaceIdEval zur Gesichtserkennung. "

Weiterhin könnte dies von Interesse sein:

gaborboosting : Ein wissenschaftliches Programm zur Gesichtserkennung mit Gabor Wavelet und AdaBoost Algorithmus

Feature Extraction Library - FELib bezieht sich auf "Face Annotation by Transductive Kernel Fisher Diskriminant, "

19
jk.

Ich würde denken, Eigenface , was Sie bereits tun, ist der richtige Weg, wenn Sie den Abstand zwischen Gesichtern berechnen möchten. Sie können verschiedene Ansätze ausprobieren, wie Support Vector Machine oder Hidden Markov Model . Ich habe eine Seite gefunden, die die wichtigsten Algorithmen auflistet, die für die Gesichtserkennung verwendet werden können: Face Recognition Homepage .

Wenn Sie "bessere Leistung" sagen, meinen Sie damit auch Geschwindigkeit oder Genauigkeit? Was für ein Problem hast du? Wie unterschiedlich sind die Daten? Sind sie meistens frontal oder enthalten sie Profile?

13
Eugene Yokota

Wenn Ihr Projekt in einem Film oder Fernsehen läuft oder ein Drehbuch vorliegt, möchten Sie sich auf jeden Fall die Arbeit von Mark Everinghametansehen. al. . Die Software ist verfügbar , ebenso wie die Ergebnisse einer Buffy-Episode .

9
huitseeker

Sie sollten sich http://libccv.org/ ansehen

Es ist ziemlich neu, bietet aber eine kostenlose Open-Source-API für die Gesichtserkennung.

(... und ich wage zu sagen, ist verdammt erstaunlich)

Bearbeiten: Es ist auch erwähnenswert, dass dies eine der wenigen Bibliotheken ist, die NICHT von opencv abhängen, und nur zum Spaß, hier ist eine Kopie des Codes für die Gesichtserkennung von der Dokumentationsseite, um Ihnen eine Vorstellung davon zu geben, worum es geht:

#include <ccv.h>
int main(int argc, char** argv)
{
    ccv_dense_matrix_t* image = 0;
    ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
    ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]);         ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
    ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
    int i;
    for (i = 0; i < faces->rnum; i++)
    {
        ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
        printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
    }
    ccv_array_free(faces);
    ccv_bbf_classifier_cascade_free(cascade);
    ccv_matrix_free(image);
    return 0;
} 
7
Doug

Ich weiß, dass es eine Weile her ist, aber für alle anderen Interessierten gibt es das Faint -Projekt, das viele dieser Funktionen (Erkennung, Erkennung usw.) in einem Nice-Softwarepaket gebündelt hat.

5
Marcus P S

Wir verwenden OpenCV . Es hat viele Dinge, die keine Gesichtserkennung beinhalten, aber Sie können sicher sein, dass es Gesichtserkennung tut.

4
Paul J. Lucas

Sie können versuchen, die MVG-Bibliothek zu öffnen. Sie kann auch für mehrere Schnittstellen verwendet werden.

1
user2915398

Nicht wirklich das, wonach Sie suchen, aber es kann für Sie nützlich sein. Gesichtserkennung/Computer Vision Algorithmen in MATLAB.

0
Dan

Der nächste Schritt wäre FisherFaces. Probieren Sie es aus und prüfen Sie, ob sie für Sie arbeiten. hier ist ein schöner Vergleich.

0
Łukasz Lew