Please follow these guidelines to obtain the best results with InSight SDK:
- Enable the anti-flicker and disable the automatic gain, white balance and focus control in your webcam drivers. This is a fundamental step, as the software will recognize the flicker and other changes as movement of the face.
- Use the image quality function before initializing the SDK. This allows to force the user to be in the center of the camera view and make sure there are no obvious problems with illumination.
- Initialization is the most important step to correctly use the SDK. Give indication of what a good initialization is. Make sure that the user knows when something is wrong (eg: eye patches showing eyebrows etc..) so that he can do it again.
Further, use these suggestions to obtain better control over the gaze estimation:
- Getting rid of bad calibration points using different eye location filtering techniques: For instance, assume that from a calibration point to the other, the eyes are supposed to show approximately the same relative displacement. Use this information to discard bad eye detection in the calibration phase.
- Use 9 calibration points, selected among the most stable readings or average of eye detection pointing at the same calibration point on the screen.
- Never use addCalibrationPoint() just after the marker is displayed on the screen. It takes some time for the user to find the calibration point and look at it.
- Post-processing the gaze estimation with offset mapping: Once a calibration is obtained, it is a good idea to validate it with 4 extra calibration points. If there is a constant offset between the estimated gaze points and the actual screen point, this offset could be compensated.
- Give feedback to the user, for instance using head gaze estimation when moving head too much during calibration. A visual feedback could remind and enforce the user to keep his head in the right position.
- Use the correctEyeGaze() function to post process gaze estimation using information about the stimulus.