EyeTracker

This toolbox was created to work with SpikeGLX to detect the location and size of a pupil. It will run online pupil detection during video acquisition, and automatically synchronize videos by creating a lookup table that logs pairs of SpikeGLX timestamps with video frame numbers. It also provides easy functionality to extract light pulses in the video that can be used to provide zero-lag synchronization between video frames and light pulse onsets (for example, using Acquipix). However, you can also use this toolbox as a standalone recording program without SpikeGLX or Acquipix.

EyeTracker data flow
Figure 1. Data flowchart. The program RunEyeTracker saves a video and logs SpikeGLX/video frame pairs for reliable synchronization. After finishing a recording, you can use runEyeTrackerOffline to adjust pre-processing settings, such as video brightness, gamma, blurring, etc. You can then either manually set the eye-tracking parameters, or label a set of images that will train the algorithm and pick the optimal parameters using an initial grid search, followed by gradient descent. After the parameters have been set, you can run the pupil tracking, and finally curate and/or correct the final results.

You can download the EyeTracker here: https://github.com/JorritMontijn/EyeTracker