No description, website, or topics provided.
Python C++ C Objective-C
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
EyeTab
EyeTab_Python
EyeTab_SP2
.gitattributes
.gitignore
EyeTab.jpg
EyeTab.sln
LICENSE
README.md

README.md

EyeTab

EyeTab is a 3D model-based gaze tracker that runs entirely on unmodified commodity tablet computers, taking their limited computational resources and low quality cameras into account.

Image of EyeTab

The code is available in two forms:

  • EyeTab – A demonstration version which runs on a supplied example video file.
  • EyeTab_SP2 – An interactive version developed for a Microsoft Surface Pro 2. This should also work on other devices with small tweaks.

The project's main webpage can be found here.

System overview

We track gaze by modelling the iris as a 2D ellipse in an image, and back-projecting this to a 3D circle, getting the real-world position and orientation of the iris. We take the normal vector of this to be the gaze direction.

The system has three main components:

  1. We first precisely find regions-of-interest for the eyes in an image.
  2. Then we robustly fit a 2D ellipse to each limbus – the boundary between iris and sclera.
  3. We finally back-project these to 3D circles, and intersect their normals with the screen for a point-of-gaze.

Deployment instructions

A rough guide for setting this code up from scratch:

  1. Open the solution file EyeTab.sln in Visual Studio. I used VS2012.
  2. Add dependencies to Visual Studio' Additional include directories field, Additional library directories field, and as Additional input in the linker.
  3. Ensure the required .dlls can be found on your PATH or in Visual Studio's debugging environment.
  4. Build and run the solution.

Dependencies

The system has several dependencies:

  • OpenCV – a multi-purpose computer vision library
  • TBB – for parellization
  • Eigen – provides vector maths

In addition, the SP2 version of the system depends on [VideoInput](// see: http://www.codeproject.com/Articles/559437/Capturing-video-from-web-camera-on-Windows-and) for providing high-resolution access to the front-facing camera. OpenCV's camera API is broken and does not support this. This library videoInput.lib is supplied.

NOTE: The VideoInput library only works when targeting 32-bit, but the rest of the system works fine with 64-bit.