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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmake
docs
include
src
tests
.gitignore
CMakeLists.txt
CPPLINT.cfg
Doxyfile
LICENSE
README.md
configure.sh
gaze.default.yaml
requirements.txt

README.md

Gaze

Build Status

DocumentationThesis

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! shoeffner@uos.de

Dependencies

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

Optional:

  • ctags (5.8)

Building

To build gaze, simply run

./configure.sh
cd build
make install

configure.sh 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

where_people_look

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.

simple_tracking

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.

Development

Install cpplint.

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

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

License

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.