Neyman–Pearson Detector (NPD) for saccadic eye movements

What is contained in this repository is the algorithm (C++) that detects (micro)saccades in eye-gaze signal.

The algorithm is built and tested with visual studio 2017 with Intel compiler 2019 on Windows 10. The GNU Scientific Library (GSL) version 2.5 and OpenMP are used in our project.

For the detailed description regarding the theoretical background and the analytical results of our algorithm, please read our paper:

Zhu, Hongzhi, Septimiu Salcudean, and Robert Rohling. "The Neyman Pearson detection of microsaccades with maximum likelihood estimation of parameters." Journal of vision 19.13 (2019): 17-17.

If you wish to use our algorithm, please cite the aforementioned paper.

In the directory NPD-micro-saccade-detection/NPD_v5, the following files are contained:

By default, our algorithm reads in files X.csv and Y.csv, where the X and Y coordinates of the tracked eye-gaze positions are stored in each of the csv files. Data in the X.csv and Y.csv must be square matrices of same dimensions, and each trail of the tracked eye-gaze positions forms the rows of the input file. Our algorithm can perform the NPD on each row of the dataset independently.

The output of the NPD regarding the [i] trial (ith row of the data files) are the following:

In the directory NPD-micro-saccade-detection/example/, we have some example results from data files X.csv and Y.csv. The Matlab file ‘‘visualizer.m’’ can help visualizing the detection result from the NPD. All csv files in this directory whose name starts with ‘‘Result’’ are generated by calling the NPD.

Several parameters can be adjusted before the use of our method to detect (micro)saccades. Please refer to the file ‘‘main.cpp’’ for more information regarding the adjustable parameters. Detailed annotations are provided.