Domanda

Sto cercando un libero di riconoscimento faccia libreria per un progetto universitario. Non sto cercando per il rilevamento del viso . Sto cercando riconoscimento effettivo. Ciò significa trovare le immagini che contengono volti o le librerie che consentono di calcolare le distanze tra le facce specifici fissati.

Attualmente sto usando OpenCV per la rilevazione dei volti e una ruvida Eigenface algoritmo per il riconoscimento. Ma ho pensato che ci dovrebbe essere qualcosa là fuori con le prestazioni di meglio di un algoritmo di Eigenface auto-scritta. Non sto parlando di velocità prestazioni, sto cercando una biblioteca con risultati migliori rispetto a un semplice approccio Eigenface.

Ho dato un'occhiata al Faint , ma sembra la libreria non è molto riutilizzabile per le mie applicazioni.

Sono felice con una libreria in Python, Java, C ++, C o qualcosa del genere. La cosa migliore sarebbe se può essere eseguito su una macchina Windows perché sto basandosi su un codice solo per Windows esterno al momento.

È stato utile?

Soluzione

Ecco un elenco di fornitori commerciali che forniscono pacchetti off-the-shelf per il riconoscimento facciale, che girano su Windows:

  1. Cybula - informazioni sui loro di riconoscimento facciale SDK . Questa è una società fondata da un professore universitario e come tale il loro sito sembra poco professionale. Non ci sono informazioni sui prezzi o demo che è possibile scaricare. Avrai bisogno di contattarli per informazioni sui prezzi.

  2. neurotecnologia - informazioni sui loro di riconoscimento facciale SDK . Questa società ha sia up-front informazioni sui prezzi così come un effettiva prova di 30 giorni del loro SDK

  3. Pittsburgh Pattern Recognition - ( acquisita da Google ) Informazioni sulla loro di Face tracking e riconoscimento SDK . I demo che essi forniscono aiuterà a valutare la loro tecnologia, ma non la loro SDSK. Avrai bisogno di contattarli per informazioni sui prezzi.

  4. Sensible Vision - informazioni sui loro SDK . Il loro sito consente di ottenere facilmente un preventivo e si può anche ordinare un kit di valutazione che vi aiuterà a valutare la loro tecnologia.

Altri suggerimenti

Aggiornamento

OpenCV 2.4.2 è ora dotato del nuovissimo cv : : FaceRecognizer . Si prega di consultare la documentazione molto dettagliata a:

Original post

Ho rilasciato libfacerec , una moderna biblioteca di riconoscimento facciale per l'OpenCV C ++ API (licenza BSD). libfacerec ha dipendenze addizionali e implementa il metodo Eigenfaces, metodo Fisherfaces e modelli locali binari istogrammi. Parti della libreria stanno per essere inclusi in OpenCV 2.4.

L'ultima revisione del libfacerec è disponibile all'indirizzo:

La biblioteca è stata scritta per OpenCV 2.3.1 con l'imminente OpenCV 2.4, quindi non supporta le versioni precedenti alla 2.3.1 OpenCV. Questo progetto nasce come un progetto CMake con un'API ben documentata, c'è anche un tutorial sulla classificazione di genere. Si può vedere una versione HTML della documentazione all'indirizzo:

Se si vuole capire come funzionano questi algoritmi, si potrebbe desiderare di leggere il mio Guide To Face Recognition (include esempi Python e GNU Octave / MATLAB):

C'è anche un'implementazione di Python e GNU Octave / MATLAB degli algoritmi in mio repository github . Entrambi i progetti a facerec includono anche diversi metodi di convalida incrociate per valutare algoritmi:

Le pubblicazioni rilevanti sono:

  • Turk, M., e Pentland, A. Eigenfaces per il riconoscimento. . Journal of Cognitive Neuroscience 3 (1991), 71-86.
  • Belhumeur, P. N., Hespanha, J., e Kriegman, D. Eigenfaces vs. Fisherfaces:. Riconoscimento con la classe specifica proiezione lineare . IEEE Transactions on Pattern Analysis e macchina di intelligenza 19, 7 (1997), 711-720.
  • Ahonen, T., Hadid, A., e Pietikainen, M. Face Recognition con i modelli locali binari. . Computer Vision -. ECCV 2004 (2004), 469-481

pam-faccia-autenticazione un PAM modulo per l'autenticazione del volto: ma richiederebbe un po 'di lavoro per ottenere quello che vuoi. Un test rapido ha mostrato, che il tasso di riconoscimento non sono buone come quelle di VeriLook da neurotechnology.

malico è un altro software di riconoscimento facciale open source, che utilizza Gabor descrittori wavelet. Ma l'ultimo aggiornamento alla sorgente è di 3 anni.

Dal sito web: " malico è un software di riconoscimento facciale opensource che usa Gabor wavelet. E 'il sistema di riconoscimento facciale in tempo reale che sulla base Malib e la biblioteca CSU volto Identificazione Evaluation System (csuFaceIdEval) .Uses Malib per l'elaborazione delle immagini in tempo reale e alcuni dei csuFaceIdEval per il riconoscimento del volto . "

Inoltre questo potrebbe essere di interesse:

gaborboosting : Un programma scientifico applicato su Face Recognition con Gabor Wavelet e Algoritmo AdaBoost

Feature Extraction Biblioteca - FELib fa riferimento a "Face nota da Transductive kernel Fisher discriminante"

Eigenface , che si sta facendo già, è la strada da percorrere se si vuole calcolare la distanza tra le facce. Si potrebbe provare approcci diversi, come Support Vector Machine o Hidden Markov Model . Ho trovato una pagina che elenca i principali algoritmi che potrebbero essere utilizzati per il riconoscimento facciale: Face Recognition Homepage .

Inoltre, quando si dice "una migliore performance," vuoi dire la velocità o la precisione? Che tipo di problema si è verificato? Come variabile sono i dati? Sono volto per lo più frontale o se invece sono i profili?

Se il progetto è su un film o la TV, o qualsiasi cosa che ha uno script, sembra che è sicuramente desidera guardare il lavoro di Mark Everingham et al. . Il software è disponibili , come lo sono i risultati su un episodio di Buffy

Si dovrebbe guardare http://libccv.org/

E 'abbastanza nuovo, ma fornisce un libero open source alto livello API per il rilevamento del viso.

(... e, oserei dire, è dannatamente incredibile)

Modifica: Da segnalare anche, che questo è uno dei pochi librerie che non dipende da OpenCV, e solo per calci, ecco una copia del codice per il rilevamento del viso fuori dalla pagina di documentazione, per dare un'idea di che cosa è coinvolti:

#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;
} 

Lo so che è stato un po ', ma per chiunque altro interessato, c'è il progetto Faint , che ha in bundle molte di queste caratteristiche (rilevamento, riconoscimento, etc.) in un bel pacchetto software.

Stiamo usando OpenCV . Ha un sacco di roba non-riconoscimento facciale in là anche, ma, tranquilli, lo fa fare di riconoscimento facciale.

Si può provare aperto biblioteca MVG, può essere utilizzato per più interfacce troppo.

Il passo successivo sarebbe FisherFaces. Provatelo e verificare se funzionano per voi. Qui è un bel confronto.

Non proprio quello che stai cercando, ma può essere utile a voi. Face Detection / Computer Vision algoritmi in MATLAB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top