Se si utilizza un classificatore a cascata per rilevare l'occhio destro, l'occhio sinistro e il naso, calcolare il centroide di ciascuna funzione (funzione x/2, funzione y/2), questo vi darà tre punti x-y sull'immagine.
È possibile rilevare il rotolo osservando i valori Y di ciascun occhio, se uno è più alto dell'altro, significa che la testa è inclinata nella direzione del valore Y più basso (mentre un occhio si sposta verso l'alto, l'altro si sposta verso il basso
È possibile rilevare l'imbardata osservando il valore X del naso, se l'utente guarda a sinistra, il valore X del loro naso sarà più vicino al valore X dell'occhio sinistro, e lo stesso con lo sguardo a destra al valore X degli occhi giusti.
È possibile rilevare l'intonazione osservando il valore Y del naso, se l'utente sta guardando verso l'alto, il valore Y sarà più vicino ai valori di entrambi gli occhi Y e se guardano in basso, il valore Y sarà più lontano da il valore dell'occhio
Ora, questo è, naturalmente, non tremendamente accurate e non si darà angoli precisi, tuttavia è possibile utilizzare queste informazioni per cercare di classificare ogni valore entro certi gruppi vale a dire (in attesa, guardando a sinistra, guardando davvero a sinistra)
L'unica cosa che posso vedere calcolando tutti e tre in un'immagine può essere se il rotolo è abbastanza drastico calcolare l'imbardata potrebbe essere fastidioso poiché l'asse X non è più piatto.
È possibile risolvere questo problema correggendo l'immagine attraverso la rotazione 2D. Avrete bisogno di trovare quanto l'immagine deve essere ruotata con
Value = (right eye Y/2) - (left eye Y/2)
Con queste informazioni è possibile correggere l'immagine e continuare con l'elaborazione (per ruotare l'immagine cercare di creare una matrice di rotazione 2D e utilizzando ordito affine)
Scusate se questo è un po 'un necro ma ho trovato il metodo di cui sopra per essere abbastanza successo e spero che aiutare qualcuno
questo non è ++ domanda così un C ho rimosso quel tag. –