I'm just using a webcam (Logitech QuickCam Pro for Notebooks). Eye tracking can be done with a webcam but I'm not sure how it compares to other solutions. The code for this is written in Python and you can find the instructions for setting everything up on my blog. The link is under more info.
Are you using any cascades for the eyes and the mouth (hierarchically)? If you don't, you should, because that should speed up the entire thing by a large margin, as you could do motion estimation just in those regions.
For some reason, the demo seems quite slow. I guess it could be because you're using the python bindings. In any case, I think the current SVN version (pre 1.1) should be much improved.
The face is only tracked once every 200ms. OpenCV 1.0 includes a face tracking demo and with the minimum face size provided and it takes 50ms to locate a face. I thought that was to slow to be doing one every time in the main loop. What I didn't know until later was I increased the minimum face size and it sped it up considerably (4ms). I only wanted to track the face if it was close to the computer.
If you apply the detectors hierarchically, it should be no problem. Just limit the region of interest to the detected face (or rather, the tracked face). I assume you're doing something like Mean-Shift tracking and reinitialize the tracker every 200ms with the detector. (Actually you could have trackers for the eyes / mouth as well!). Good job, nonetheless!
Thanks. I'm not doing mean-shift tracking or cam-shift tracking. I'm updating a motion history image and generating a motion gradient. From that I can determine what areas have motion and the direction of that motion. I think the way you described would be better since I wouldn't manually have to do calibration and it would just work. How would the mean-shift tracking help me with detecting movement? I'm a bit lost since I'm rather new to this topic.
I'm actually not 100% sure it isn't using mean-shift or cam-shift. OpenCV seems to have a specific API for mean-shift (cvMeanShift) so I assume that I'm not.
1) Every 200ms detect face, and within its boundaries detect features (e.g., mouth, etc). Reinitialize the meanshift trackers for each one (you may need to experiment to see which tracker works best).
2) Track the features (and possibly the face). If the features tracked get outside the face boundary go to 1.
3) For each feature region + extra slack around, compute the motion image as o you do now (to make it efficient).
opera supremacy !
Johnline 1 year ago
Too bad I can't enable "Face Gestures" on Opera :(
gelot13 1 year ago
PLEASE TELL ME IS THIS FAKED?!
the12221 2 years ago
Comment removed
matsuuradesune 2 years ago
I'm just using a webcam (Logitech QuickCam Pro for Notebooks). Eye tracking can be done with a webcam but I'm not sure how it compares to other solutions. The code for this is written in Python and you can find the instructions for setting everything up on my blog. The link is under more info.
kovertopz 2 years ago
Comment removed
matsuuradesune 2 years ago
Thank you so much I love the music
espinosafell 2 years ago
Sick... really innovative.... Whats the song you have playing?
espinosafell 2 years ago
I don't remember :(
It is one of the instrumental tracks by Musicshake.
kovertopz 2 years ago
Found it...
Romeo X Juliet (Musicshake)
kovertopz 2 years ago
Are you using any cascades for the eyes and the mouth (hierarchically)? If you don't, you should, because that should speed up the entire thing by a large margin, as you could do motion estimation just in those regions.
For some reason, the demo seems quite slow. I guess it could be because you're using the python bindings. In any case, I think the current SVN version (pre 1.1) should be much improved.
Kudos for making this!
gdt1980 2 years ago
The face is only tracked once every 200ms. OpenCV 1.0 includes a face tracking demo and with the minimum face size provided and it takes 50ms to locate a face. I thought that was to slow to be doing one every time in the main loop. What I didn't know until later was I increased the minimum face size and it sped it up considerably (4ms). I only wanted to track the face if it was close to the computer.
kovertopz 2 years ago
That is why I didn't do the cascades for the eyes/mouth. I was under the impression it would take too much processing time.
kovertopz 2 years ago
If you apply the detectors hierarchically, it should be no problem. Just limit the region of interest to the detected face (or rather, the tracked face). I assume you're doing something like Mean-Shift tracking and reinitialize the tracker every 200ms with the detector. (Actually you could have trackers for the eyes / mouth as well!). Good job, nonetheless!
gdt1980 2 years ago
Thanks. I'm not doing mean-shift tracking or cam-shift tracking. I'm updating a motion history image and generating a motion gradient. From that I can determine what areas have motion and the direction of that motion. I think the way you described would be better since I wouldn't manually have to do calibration and it would just work. How would the mean-shift tracking help me with detecting movement? I'm a bit lost since I'm rather new to this topic.
kovertopz 2 years ago
Great idea!
Om3tal 2 years ago
I'm actually not 100% sure it isn't using mean-shift or cam-shift. OpenCV seems to have a specific API for mean-shift (cvMeanShift) so I assume that I'm not.
kovertopz 2 years ago
Basically, the way this could work is as follows:
1) Every 200ms detect face, and within its boundaries detect features (e.g., mouth, etc). Reinitialize the meanshift trackers for each one (you may need to experiment to see which tracker works best).
2) Track the features (and possibly the face). If the features tracked get outside the face boundary go to 1.
3) For each feature region + extra slack around, compute the motion image as o you do now (to make it efficient).
gdt1980 2 years ago
Amazing, I can imagine this being a giant leap forward in terms of accessibility.
Thanks!
bizzyb0t 2 years ago
Sweet.
KzrrainzYes 2 years ago