2013-07-07 15 views
6

Attualmente sto lavorando a un progetto in cui devo estrarre l'espressione facciale di un utente (un solo utente alla volta da una webcam) come triste o felice.Riconoscimento espressioni facciali da webcam

Ci sono molti programmi/API per il rilevamento dei volti ma non ho trovato nessuno per eseguire il riconoscimento automatico delle espressioni.

La migliore possibilità che ho trovato finora:

ho usato OpenCV per il rilevamento del viso in precedenza, che è stato grande lavoro, quindi se qualcuno ha qualche consiglio su come farlo con OpenCV, che sarebbe grande!

Alcuni utenti su una scheda OpenCV hanno suggerito di cercare AAM (active apereance models) e ASM (active shape models), ma tutto ciò che ho trovato erano documenti.

-Questo utilizzo i modelli con forma attiva con Stasm, che mi consentiranno di accedere a 77 punti diversi all'interno della faccia, quindi dovrei comunque mapparli manualmente alle espressioni.

Qualsiasi linguaggio di programmazione è benvenuto.

+0

Avete qualche progresso con il vostro progetto? –

+0

@NenadBulatovic http://stackoverflow.com/questions/18640804/facial-expression-classification-in-real-time-using-svm – TIBOU

risposta

3

Dopo la versione 2.4, opencv è dotato di un'API di riconoscimento del volto. Puoi definire facce tristi e felici come due facce diverse e usare the API per classificarle. Se stai cercando qualche tutorial puoi dare un'occhiata anche allo opencv's tutorial page.

+0

se userò questa api devo ottenere per ogni utente la faccia felice e triste! ! – TIBOU

+0

Sì, quelli sono predefiniti. Forse puoi creare il tuo modello di allenamento per il rilevamento del volto. Allenati per facce felici e facce tristi in 2 diversi file xml e prova a utilizzarli. – baci

+0

il mio obiettivo è che qualsiasi utente userà questa applicazione e questo metodo sarà veloce da usare sui video della webcam !! – TIBOU

1

La metà del problema viene risolta utilizzando OpenCV. Se hai creato OpenCV con esempi, puoi eseguire un esempio chiamato c-example-smiledetect che può rilevare una faccia sorridente con livelli diversi.

Il codice deve trovarsi nella cartella OpenCV sotto campioni/c. Ricordo che è possibile regolare la sensibilità nel codice in modo che possa aiutare. È inoltre possibile trovare il codice here.

In un'altra nota, un'implementazione di AAM utilizzando OpenCV è disponibile in this book (capitolo 7). Questo però non include la parte di ricerca e adattamento, mostra solo come creare un AAM da ASM e una trama.

+1

c-example-sorriledetect utilizza rilevatore Haar pre-addestrato. Penso che l'OP debba addestrare i propri rilevatori (classificatori) per rilevare altre espressioni facciali. Se ricordo correttamente, è necessario utilizzare diverse migliaia di immagini per farlo. I rad e articolo in cui la gente diceva che sulle macchine veloci tutto il processo di formazione richiedeva più di sette giorni senza sosta per la creazione di un classificatore. Quindi se mostra cattivi risultati, deve essere applicato un nuovo allenamento. –

2

Forse l'articolo this può aiutarti.

È spiegazione dei concetti utilizzati per ottenere risultato mostrato here:

Inoltre, si potrebbe desiderare di avere uno sguardo here.

Tutto quanto sopra menzionato è un lavoro di persone che hanno più o meno raggiunto ciò che si desidera.

Voglio fare lo stesso come te - riconoscimento di espressioni facciali con OpenCV, quindi spero che prima o poi possiamo scambiare le nostre idee.