Skip to content
This repository has been archived by the owner. It is now read-only.
Gaze tracking using ordinary webcams (eye tracking works, gaze tracking not). My master's thesis project.
C++ CMake Shell Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status


Gaze aims at providing an easy to use gaze tracking library. It was the project for my master's thesis. Inspired by eyeLike, it performs eye tracking well.

Warning: Gaze tracking does not work!

But you can try the GazeCapture pipeline step by modifying the gaze.yaml and configuring Gaze with --caffe. However, since the underlying CNN is trained on iPhone and iPad screens, it is most accurate in a smaller screen area around the camera.

Gaze's UI

If you are interested in picking up the project or have some ideas on how to best fix the gaze tracking, make sure to drop me a line!


You need the following dependencies to build gaze (tested versions in parentheses):

  • C++17 (clang-900.0.39.2)
  • CMake (3.10.0-rc2, 3.10.2)
  • OpenCV (3.3.0, 3.4.0)
  • dlib (at least 19.8 (requires davisking/dlib#957))
  • yaml-cpp (5a519a4, will be cloned)

For the examples/demo projects you need:

  • OpenCV (3.3.0)
  • Boost (1.65.1)
  • pkg-config (0.29.2)
  • gtk+3 (3.22.24)
  • glib (2.54.1)

For the documentation you need:

  • Doxygen (1.8.13)
  • Python 3 (3.6.3)
  • git (2.14.2)

For the development you need:

  • cpplint


  • ctags (5.8)


To build gaze, simply run

cd build
make install comes with some options:

  • --release: Enables compiler optimizations
  • --debug: Disables compiler optimizations, builds debug symbols and creates verbose makefiles.
  • --examples: Configures cmake to create build files for the examples.
  • --doc: Configures cmake to create build files for the documentation.
  • --tagfiles: Links the documentation to other projects (OpenCV and the C++ standard library)
  • --dry: Just prints the cmake .. command without executing it
  • --caffe: Enables a build with Caffe support. This allows to use the experimental pipeline step GazeCapture.

Demo programs


This is a reimplementation of Judd et al. (2009)'s data acquisition experiment @cite Judd2009.

It needs to be installed using make install to put the images into the correct location. You can run it by simply typing ./where_people_look from the build directory.


This program just starts a small window with an "experiment" and tracks gaze. Starts the gaze tracker in debug mode to see what is tracked.


Install cpplint.

Add a pre-commit hook (.git/hooks/pre-commit):

cpplint --recursive --extensions cpp,h --quiet src tests include


Gaze is released under the MIT License.

But it cannot be used for commercial use without a modification, quoting from dlib-model's README:

The license for this dataset excludes commercial use and Stefanos Zafeiriou, one of the creators of the dataset, asked me to include a note here saying that the trained model therefore can’t be used in a commerical product.

Since this model is used in Gaze, no commercial use is possible. The GazeCapture pipeline makes use of the CNN iTracker by Krafka et al., which also only allows research usage.

You can’t perform that action at this time.