Algorithms for eye gaze (eye-direction) in OPENCV

asked 2015-07-27 06:24:16 -0600

franken gravatar image

Hi all,

I need to implement algorithm for eye gaze to know the direction of eye using opencv ,

i have been struggling for one month to do it using viola-jones algorithm with training classifiers provided by opencv

in a first step i based my research starting with facedetection.cpp with xml's for face and eye , it can detect faces and eye just for < 1m but i haven't found a method to know the eye direction

Now after some research , i've found some algorithms for eye-gaze but i don't wich one to chooose in term of it simplicity (because i'm just a newbie) and efficiency :

  1. Distance-Threshold Algorithm
  2. Mean-Shift Algorithm
  3. Edge detetction ==> Hough Transformation
  4. the Longest Line Scanning
  5. Occluded Circular Edge Matching
  6. “one-circle” and "two-circle" algorithm
  7. Neural network based approaches
  8. principal component analysis (PCA).
  9. Starburst Algorithm
  10. Kalman filter
  11. Velocity Threshold Eye Movement Identification
  12. Active appearence model (AAM)
  13. CCL : Connected component labeling algorithm
  14. CCA : colonial competitive algorithm
  15. Blob detection
  16. Lucas Kanade

So what algorithm you recommended me , and if there is another algorithm algorithms that i haven't mentionned , i need also a comparaison between those algorithms but it must be someone experienced in this field NB : i'm using ubuntu 14.04 and developping with C++

Any help will be much appreciated , thanks :)

edit retag flag offensive close merge delete


Answering your question is quite difficult. It all depends on where you are going to apply the algorithm, in what conditions. Most applied approach is to implement several of them and compare accuracy in your application/situation.

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 04:11:59 -0600 )edit

@StevenPuttemans , i will use it in marketing (signboard, hoarding) to know wish people view advertizing by detecting their face in the first stage and after that track their eyes for accuracy by knowing the direction of the eye . hope it was more clear now :) can you re-answer ;)

franken gravatar imagefranken ( 2015-07-28 04:57:42 -0600 )edit

O well, then I do not think that 2D approaches will suffice :D I would go for 3D models of the head, like a 3D ASM/AAM model approach.

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 05:03:23 -0600 )edit

@StevenPuttemans i forgot to add that this must be in real time :p and using raspberry with camera module 5MP ==> so what can you recommand for me

franken gravatar imagefranken ( 2015-07-28 05:32:43 -0600 )edit

Nothing :D

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 06:07:16 -0600 )edit

@StevenPuttemans ok i will use the Nothing algorithm =D it's seems interesting :p anyway thanks a lot

franken gravatar imagefranken ( 2015-07-28 06:18:38 -0600 )edit

Well sorry but it is impossible to have AND a good gaze detector, AND have it real time, AND process it with 5MP on a raspberry PI board. That is just to much AND's to go with :D

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 06:20:44 -0600 )edit

@StevenPuttemans haha let's say just good gaze detector and deleting the other AND's :p LOL

franken gravatar imagefranken ( 2015-07-28 07:31:39 -0600 )edit

Like I said, go for 3D approaches. 2D works only until a certain point. It is amazing what 3D can add to the table. Take a look here!

StevenPuttemans gravatar imageStevenPuttemans ( 2015-07-28 07:33:55 -0600 )edit

i have looked at the link but it seems there is no source code for that , it will be more difficult to implement it :p

franken gravatar imagefranken ( 2015-07-28 12:54:03 -0600 )edit