眼球追踪
Go to file
2016-10-07 17:02:53 +09:00
cmake added initial working code 2016-10-07 13:31:30 +09:00
docs added doc images 2016-10-07 15:00:42 +09:00
external added initial working code 2016-10-07 13:31:30 +09:00
main added initial working code 2016-10-07 13:31:30 +09:00
singleeyefitter added initial working code 2016-10-07 13:31:30 +09:00
.gitignore Initial commit 2016-10-06 23:07:00 +09:00
CMakeLists.txt added initial working code 2016-10-07 13:29:40 +09:00
LICENSE Initial commit 2016-10-06 23:07:00 +09:00
README.md Update README.md 2016-10-07 17:02:53 +09:00

3D Eye Tracker

This software aims to provide an easy-to-comiple C++ implementation of a 3D eye-tracking method.

Our software is designed for a wearable eye-tracking scenario where a user wears a headset with an eye camera(s) which is equipped with infrared (IR) illuminations. The camera can capture close-up shots of the user's eyes.

headset_and_image

With this software, you can obtain following information:

  • 3D information:
    • Gaze (normal) vector
    • Eyeball center w.r.t the camera
    • Pupil diameter [m]
  • 2D information:
    • Pupil ellipse size [pixel] and angle [deg.]
    • Glint position(s) [pixel]

Prerequisite

Currently, the software is compatible with Visual Studio 2015. We tested compilation on a 64bit Windows 10 machine only.

Most of external libraries (for vc14, x64) are bundled in ./external, yet you still need to install the following two libraries:

To setup your own Visual Studio project, you need to use CMake. You can find a windows installer here.

How to compile

  1. Clone the repository git@github.com:YutaItoh/3D-Eye-Tracker.git to your local folder (e.g., /your-local-path/3D-Eye-Tracker)
  2. Open ./CMakeLists.txt and edit the OpenCV path and the Boost path depending on your environment. For example, the default values are as follows:
    • set(BOOST_ROOT "C:/SDK/boost_1_62_0")
    • set(OpenCV_DIR "C:/SDK/opencv-3.1.0/build")
  3. Start CMake GUI and set a source code path (e.g., /your-local-path/3D-Eye-Tracker) and a project build path (e.g., /your-local-path/3D-Eye-Tracker/build_vc14_x64) cmake-1
  4. Press Generate buttons, then choose a right build environment (Visual Studio 14 2015 Win64) cmake-2 cmake-3
  5. Open 3d_eye_tracker.sln in the build folder, and compile main module

How to run

The default setting uses a sinlge camera via the DirectShow filter. Check your camera name on a video capture program (e.g., Skype) and set the name in main.cpp:

		case InputMode::CAMERA_MONO:
			eyecams[0]=std::make_unique<eyecamera::EyeCameraDS>("Pupil Cam1 ID0");

This case, the program tries to find a camera named "Pupil Cam1 ID0".

Once the program started, it initializes a 3D eye model from 2D pupil observatios: runtime-2 In this initialization step, a user needs to smoothly rotate his/her eye to capture various 2D shapes of the eye.

After the step, we get 3D eye tracking:

runtime-3

Tips:

Some debug keys are pre-assigned for a better control of the software:

  • p: Takes some more 2D pupil observations. Useful when estimated 3D eye model is incorrect due to not-well-distributed 2D observations
  • r: Resets the 3D eye model and 2D observations and restarts the initialization step
  • ESC: Exit the program

Acknowledgement

This program integrated/modified several existing codes. Especially,