Generalized Adaptive Gaze Estimation
The project „GazeTimate“ aims at developing
some software to determine the face gaze direction of an user sitting
in front of a WebCam.
I used a USB Logitech QuickCam with Phillips chipset when I developed the program. You need the pwc kernel module for this one. But as the software uses direct ioctl() calls every V4L Camera that you got to work under Linux should do as well.
What it does...
This software firstly searches your face by waiting for motion to occure. It then tracks the face and gives information about x,y,z position and x,y,z rotation – that is, full six-degrees-of-freedom estimation of gaze.
You might download the
software at the SourceForge
WebSite. The software is programmed in the C++ language. You will have
to compile it yourself. A KDevelop
project file is included.
You must have installed the Intel OpenCV library to compile the programs. Look at the OpenCV SourceForge project for more information (and don't get confused if you hit the curriculum vitae pages that are named opencv as well :-)
The project uses OpenCV 0.9.6, and unless you are willing to alter the source of my project to fit with older versions you should probably use 0.9.6 as well. Mainly, all imports on OpenCV have changed and so have library names. Some of the APIs have changed, too, so you are probably better off with 0.9.6!
To run the program, first plug in the WebCam. It
should appear as /dev/video0 for the program to work properly.
Besides the classes comprising the actual gaze
estimation task, there are some implementations of helpful filters
Classes for image manipulation include:
Gabor filtering with configurable gabor filters (imaginary part),
standard deviation across images,
and of course gaze estimation
Classes helping development are
Camera wrapping (Singleton class)
Screen access (framebuffer)
Most of the classes are documented, but you should
not expect a nice easy-to-use windowing application. Look into the
code yourself! As a starting point, use the file testsuite.cpp –
in it you find a testing function for nearly every class provided.
Moreover, you will find testing functions for a bundle of auxiliary
computer vision methods. It is very instructive to have a look at them!
The main application (MtwTheApplication) expects to find a picture under pic/pano.jpg – just provide an image of your choice. It should be rather big (2000x1500 is nice).
Where you can partizipate
Please look to the SourceForge pages.