3D Gaze Estimation from 2D Pupil Positions on Monocular Head-Mounted Eye Trackers
Go to file
Mohsen Mansouryar 31477a0028 Update README.md
added link to MPI page
2016-06-13 12:34:55 +02:00
code made a few fixes 2016-04-29 00:14:51 +02:00
README.md Update README.md 2016-06-13 12:34:55 +02:00


3D Gaze Estimation from 2D Pupil Positions on Monocular Head-Mounted Eye Trackers

Mohsen Mansouryar, Julian Steil, Yusuke Sugano and Andreas Bulling

published at ETRA 2016.

For more information regarding this project please visit [here] (http://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/research/gaze-based-human-computer-interaction/3d-gaze-estimation-from-2d-pupil-positions-on-monocular-head-mounted-eye-trackers/).

Here's a brief summary of the scripts:

python parallax_analysis.py pts >> plot of calibration and test points.

python parallax_analysis.py 2d3d >> plot of 2D-to-2D againt 3D-to-3D mapping over all number of calibration depths.

python parallax_analysis.py 2d2d_2d3d >> plot comparing parallax error over five different test depths for three calibration depths of 1.0m, 1.5m, and 2.0m between 2D-to-2D and 3D-to-3D mapping.

python parallax_2D3D_3Cdepths.py >> plot comparing average angular error of the two mapping techniques when 3 calibration depths are used together. (depths 1 to 5 correspond to test depths 1.0m to 2.0m)

code/pupil -> Modules directly used from PUPIL source code for baseline 2D-to-2D mapping and data stream correlation.

code/recording -> Scripts related to dataset recording and marker visualization and tracking. script dependencies are python 2's openCV and ArUco library. more information regarding each module is documented where required.

code/results -> Contains gaze estimation results for both 2D-to-2D and 2D-to-3D mapping approaches with multiple calibration depths on data from participants. data files in the root directory of each method correspond to single depth calibration results. data format is described inside README.txt inside each method directory. the results are also available via /BS/3D_Gaze_Tracking/work/results

code/Visualization -> Creation of figures for the paper python 1CalibrationDepth.py -> 2D-to-2D vs. 2D-to-3D with one calibration depth

python 3CalibrationDepths.py -> 2D-to-2D vs. 2D-to-3D with three calibration depth

python EffectDistanceDifference1CalibrationDepth.py -> Effect of different distances to the original calibration depth

python EffectNumberofClusters.py -> Effect of the number of clusters


If you use or extend our code, please cite the following paper:

Mansouryar, Mohsen, et al. "3D Gaze Estimation from 2D Pupil Positions on Monocular Head-Mounted Eye Trackers." Proc. of the 9th ACM International Symposium on Eye Tracking Research & Applications (ETRA), pages 197-200, 2016. http://dx.doi.org/10.1145/2857491.2857530


  • OpenCV a multi-purpose computer vision library
  • ArUco minimal library for AR applications based on OpenCV
  • SciPy for minimization, statistical and matrix operations as well as plotting
  • scikit-learn Machine Learning tools in Python
  • Processing for visualizing AR markers