Our algorithm deals with the strong occlusion due to the user‘s eye lashes. The algorithm implemented using parallel computation takes 17.5 ms in total. The bottleneck is camera frame capture time which takes 11 ms. This part can only be reduced with faster cameras and other communication ports. Within our test it became apparent that the occlusion compuation is not necessary with every user, but for those with long eye lashes. Without the occlusion metric the runtime the tracking reduces to 12.5 ms.
We also tested the algorithm on more mobile hardware, specifically a Raspberry Pi (thanks go to Marc Kastner for optimizing the code). We exploit the NEON instruction set for this and achieve a latency of 33.5 ms for binocular eye tracking.
The resulting gaze error is quite uniform and with an error of less than 0.75 degrees viewing angle sufficiently precise for many applications. The error increases in the outer regions since the eye is more occluded there, either by the eye lid or by the lens controllers.