Papers
Topics
Authors
Recent
Search
2000 character limit reached

Eye Movement FGD: Feature-Guided De-drift

Updated 10 July 2026
  • The paper introduces a fusion method that combines iris texture velocity with pupil-edge tracking to correct systematic drift in eye measurements.
  • FGD preserves high-frequency eye movement features, achieving up to 55% improvement in precision by mitigating accumulated biases across recording modalities.
  • The approach is versatile, applied in video tracking, reading-task correction, and EOG baseline stabilization, demonstrating robust performance across different drift manifestations.

Searching arXiv for the cited works and closely related uses of Feature-Guided De-drift. Eye Movement Feature-Guided De-drift (FGD) denotes de-drifting strategies in which eye-movement features are used to estimate, suppress, or correct slow drift while preserving structure that is diagnostically important for gaze analysis. In video-based eye tracking, πt\pi_t implements Feature-Guided De-drift by fusing iris texture velocity with pupil-edge position to remove temporal drift without discarding high-frequency eye-movement information. In reading-task correction, Fix8 operationalizes FGD through semi-automated correction guided by fixation features, AOI geometry, and sequential structure. In electrooculography (EOG), FGD reconstructs a feature-extracted baseline from saccade-aware segmentation and uses wavelet approximation to estimate and remove baseline drift while preserving morphology (Chaudhary et al., 2020, Madi et al., 12 Jan 2025, Hu et al., 9 Sep 2025).

1. Drift as a cross-modal problem in eye-movement measurement

Across the cited works, drift is a systematic error mode rather than ordinary high-frequency noise. In iris-feature tracking, drift arises because eye motion is estimated by matching texture keypoints across consecutive frames, converting their displacements to an eye velocity signal, and integrating that velocity to obtain position. This gives high precision, but even tiny systematic biases in velocity estimates integrate over many frames into large position offsets; template creep, feature loss and re-lock, and blink gaps further exacerbate the problem (Chaudhary et al., 2020).

In reading tasks, drift is a systematic positional error that displaces recorded fixations from their true location, often due to calibration decay, head movement, or lighting change. In multi-line text, this can move a fixation from the intended word to an adjacent word or even to a different line, compromising word-level analyses such as first-fixation duration and gaze duration and potentially inducing spurious effects such as parafoveal-on-foveal and spillover (Madi et al., 12 Jan 2025).

In EOG, baseline drift is modeled as a slowly varying offset d(t)d(t) added to the measured signal. The reported sources include electrode polarization, contact impedance changes, illumination changes, and background instrumentation noise. In Human–Robot Collaboration (HRC), this drift biases absolute gaze angle estimates and compromises sensor-fusion consistency because fused modalities assume drift-free absolute references (Hu et al., 9 Sep 2025).

Domain Drift manifestation Feature guidance used for de-drift
Video eye tracking Temporal drift in iris-integrated position Iris motion vectors, pupil position, CR, head velocity
Reading-task correction Fixation displacement across words or lines Spatial y-distance, AOI geometry, sequential order, regressions
EOG Low-frequency baseline drift Saccade detection, blink removal, baseline stitching

A plausible implication is that FGD is best understood not as a single algorithm, but as a family of estimators that use reliable eye-movement features to anchor low-frequency structure while retaining high-frequency or task-specific information.

2. πt\pi_t and gradient-domain fusion in video-based eye tracking

In πt\pi_t, the core design problem is the complementary failure modes of iris-only and pupil-only tracking. Iris-feature tracking excels at precision because it averages over hundreds of texture motion vectors and is less sensitive to edge thresholding and glint occlusions than pupil-edge trackers, but its temporal integration produces characteristic drift error modes. Pupil-edge-only methods compute position per frame by ellipse fitting to the pupil boundary and therefore do not accumulate drift, but they exhibit high sample-to-sample noise and outliers due to illumination, eyelash or eyelid occlusions, corneal reflections on edges, thresholding, and non-elliptical contours under off-axis viewing (Chaudhary et al., 2020).

The pipeline begins with eye ROI segmentation and feature extraction. Each 960×540960\times540 frame is cropped to 540×540540\times540 and resized to 224×224224\times224 for a U-Net iris segmenter; this improved segmentation accuracy by $1.8$–2.9%2.9\%. Contrast is enhanced with CLAHE on the grayscale iris ROI. Texture keypoints are detected, descriptors are computed, and matches across consecutive frames are filtered by Lowe’s ratio test and RANSAC. Each matched feature yields an iris motion vector in image coordinates, and the per-frame iris velocity i(t)i(t) is obtained from the geometric median of the motion field. Pupil edges are detected with the Pupil Labs pipeline: glint masking, dark pupil mask, morphological opening, Canny edges, contour simplification by Douglas–Peucker, curvature tests, and augmented combinatorial pruning to find the best ellipse. The ellipse center gives the pupil position d(t)d(t)0. Multiple glints are detected in the iris mask by thresholding bright spots; their centers are computed via image moments and fitted with a circle, whose center defines d(t)d(t)1 for head–eye relative-motion compensation. A fixed forehead ROI is tracked with the same feature-motion method to compute head movement velocity d(t)d(t)2 (Chaudhary et al., 2020).

Calibration is split by channel. Pupil position-to-gaze mapping fits a second-order polynomial from d(t)d(t)3 to visual angles using d(t)d(t)4 calibration targets with diverse horizontal and vertical changes. Iris velocity-to-gaze mapping is performed during calibration saccades by integrating velocity from d(t)d(t)5 ms before to d(t)d(t)6 ms after each saccade and mapping cumulative displacement to known target spacing, explicitly avoiding a position calibration that would inherit drift. The iris weight is defined by match quality,

d(t)d(t)7

with d(t)d(t)8, and is smoothed across neighboring frames to avoid abrupt jumps. A pupil confidence threshold of d(t)d(t)9 is used; complete blinks set both πt\pi_t0 and πt\pi_t1 to zero, whereas partial blinks often preserve πt\pi_t2 even if πt\pi_t3 drops (Chaudhary et al., 2020).

The FGD model is posed in the gradient domain. Let πt\pi_t4 denote the temporal gradient operator. The pupil channel is treated as a Gaussian likelihood on position, and the iris channel as a Gaussian prior on velocity:

πt\pi_t5

with πt\pi_t6 and πt\pi_t7. The corresponding objective is

πt\pi_t8

Its normal equation is

πt\pi_t9

with

πt\pi_t0

After CR and head-motion compensation, the fused hybrid position is

πt\pi_t1

The key mechanism is that the πt\pi_t2 operator annihilates any constant bias term πt\pi_t3 present in the iris-integrated position; since πt\pi_t4 for slowly varying drift, the fusion ignores bias in the iris channel and trusts the pupil for low-frequency position, while high-frequency components such as tremor and microsaccades are retained in πt\pi_t5. Because πt\pi_t6 is singular, keeping πt\pi_t7 guarantees that πt\pi_t8 is positive definite and invertible (Chaudhary et al., 2020).

The same work notes that this can be interpreted as a steady-state Kalman fusion in mixed domains, with state πt\pi_t9 and drift modeled as a slowly varying latent variable, but the implemented estimator is the closed-form gradient-domain quadratic solution rather than a causal filter. This avoids filter latency (Chaudhary et al., 2020).

3. Robustness, precision metrics, and empirical validation of 960×540960\times5400

The reported robustness mechanisms are tied directly to the weight design. During complete blinks, 960×540960\times5401 and the last good 960×540960\times5402 is held. During partial blinks, iris matches often persist, so 960×540960\times5403 remains nonzero even if pupil confidence degrades. Under motion blur and large saccades, 960×540960\times5404 causes 960×540960\times5405 to decrease smoothly, shifting weight to the per-frame pupil channel; once texture tracking recovers, 960×540960\times5406 rises and high-frequency precision is re-injected. Lowe’s ratio test, RANSAC, the geometric median, and CLAHE are used to reject poor matches, stabilize velocity, and mitigate compression artifacts (Chaudhary et al., 2020).

Precision is evaluated in calibrated visual angles. For fixations, the paper uses the most stable 960×540960\times5407 ms windows after target onset. Sample-to-sample RMS and standard deviation are defined as

960×540960\times5408

and

960×540960\times5409

Under fixations, 540×540540\times5400 maintains the same accuracy as 540×540540\times5401 but improves precision substantially: reported median improvements are at least 540×540540\times5402 for S2S-RMS in the verification task and at least 540×540540\times5403 for STD. Example reductions reported for S2S-RMS are 540×540540\times5404, 540×540540\times5405, and 540×540540\times5406 for left, right, and cyclopean eyes. For smooth pursuit, detrended segments show median improvements of at least 540×540540\times5407 in S2S-RMS and at least 540×540540\times5408 in STD (Chaudhary et al., 2020).

The smooth-pursuit detrending procedure is explicit: for each pursuit segment between stimulus direction changes, the interval when both eye position and velocity best match the stimulus is identified; start and end points are defined just before the next reversal; the straight line between these points is fitted and subtracted from the eye trace to yield a near-zero mean velocity signal; S2S-RMS and STD are then computed on the detrended segment. The reported interpretation is that this isolates spatio-temporal stability from the pursuit trend (Chaudhary et al., 2020).

A central demonstration is microsaccade detection between targets separated by 540×540540\times5409 (224×224224\times2240 arcmin). Cyclopean horizontal velocity is denoised by 224×224224\times2241D total variation denoising with regularization 224×224224\times2242; a Gaussian mixture is fit to the velocity distribution to estimate an adaptive threshold; microsaccades are then identified with the I-VT algorithm for velocities exceeding threshold within 224×224224\times2243–224×224224\times2244 ms post-target onset, subject to duration and directional consistency. Across seven subjects, detected counts were 224×224224\times2245 out of 224×224224\times2246 possible events per subject, whereas 224×224224\times2247 was described as too noisy to detect many of these microsaccades (Chaudhary et al., 2020).

The acquisition geometry and timing model are also part of the method’s precision argument. The camera was a Panasonic Lumix DC-GH5S with IR rejection removed, 224×224224\times2248 mm focal length, 224×224224\times2249, ISO $1.8$0, $1.8$1 s shutter, and $1.8$2 at $1.8$3 fps. Illumination used four $1.8$4 nm IREDs arranged in a $1.8$5 cm square at $1.8$6 cm from the eyes, with total irradiance $1.8$7 W/cm$1.8$8. The camera was $1.8$9 cm from the eyes, and a chin rest without a forehead rest allowed small head motion, which 2.9%2.9\%0 compensated via 2.9%2.9\%1 and forehead-ROI head velocity. Stimulus synchronization was handled with a teleprompter and photodiode/LED method, and raster delay was modeled as

2.9%2.9\%2

The fusion works in the frequency domain rather than via causal low-pass temporal filters, so it does not introduce time lag; zoomed traces showed timestamps aligned with 2.9%2.9\%3 but with much lower noise. The main computational cost is solving 2.9%2.9\%4 per axis, while iris segmentation and matching are the heavier vision stages. The reported system achieves S2S-RMS 2.9%2.9\%5 on real eyes using off-the-shelf hardware (Chaudhary et al., 2020).

4. Semi-automated FGD in reading-task correction

In reading, FGD is instantiated differently. Fix8 defines drift as a systematic positional error that displaces recorded fixations from their true location, often moving them to another word or line. The tool operationalizes FGD by combining automated alignment algorithms with human-guided interaction, with the explicit goal of accurate corrections faster without sacrificing accuracy. It ships 2.9%2.9\%6 correction algorithms and provides assisted correction that proposes fixation-level suggestions that can be accepted or adjusted by the user (Madi et al., 12 Jan 2025).

The Fix8 pipeline begins with eye-tracking events—fixations 2.9%2.9\%7, saccades, and blinks—plus a stimulus image of the text passage and optional participant or trial metadata. Preprocessing includes EyeLink ASCII to CSV or JSON conversion; AOI detection by scanning binarized images and marking region transitions with user-set height and width thresholds; and optional filters such as temporal cut-offs, SD-based outlier removal, merging short nearby fixations, and removing fixations outside the stimulus. The FGD-relevant features are spatial features such as fixation coordinates and AOI geometry, sequential features such as fixation order and saccade polarity or regression pattern, and durational features. The paper states that algorithms mainly rely on spatial and sequential features, whereas durations primarily inform human correctors (Madi et al., 12 Jan 2025).

The correction stage includes multiple families of algorithms. Positional methods are Attach, which assigns each fixation to the nearest line by y-distance, and Chain, which groups fixations into sequences and assigns each sequence to the line nearest the mean y of the sequence. Relative positional methods include Cluster, Merge, Regress, and Stretch. Sequential methods include Segment and Slice. Dynamic-time-warping alignment is implemented as Warp, which aligns fixation sequences to word centers under temporal constraints. Hybrids—Warp+Attach, Warp+Chain, Warp+Regress, and Warp+Stretch—split regressions, correct non-regressive sequences with Warp, then reintroduce regressions and correct them with the second algorithm. The paper notes that it does not include explicit cost-function formulas for line or word alignment, but cites Carr (2022), Al Madi (2024), and related works; examples given in the synthesis include affine alignment minimizing squared distances to line centers for Stretch and cumulative Euclidean distance minimization for Warp (Madi et al., 12 Jan 2025).

The human-in-the-loop mechanism is central. Fix8 displays the algorithm’s suggested corrected position in blue, while the current fixation is magenta, past fixations are red, and remaining fixations are gray. The operator accepts suggestions with the spacebar or overrides them by drag-and-drop or line hotkeys: ‘a’ moves the fixation to the line above, ‘z’ to the line below, and numeric hotkeys 2.9%2.9\%8–2.9%2.9\%9 directly assign line indices. When an override occurs, the algorithm is re-run using the updated fixation data to improve subsequent suggestions; the Attach algorithm is the stated exception because it does not update based on history (Madi et al., 12 Jan 2025).

The reported study used i(t)i(t)0 participants, i(t)i(t)1 trials per participant, and interleaved manual and assisted conditions. Assisted correction mean time per trial was i(t)i(t)2 seconds, compared with i(t)i(t)3 seconds for manual correction, yielding a speedup of approximately i(t)i(t)4 i(t)i(t)5. Accuracy on synthetic data was comparable between manual and assisted correction i(t)i(t)6, with average accuracy around i(t)i(t)7 and i(t)i(t)8 trials below i(t)i(t)9 due to very severe synthetic drift. Accuracy on real data was also comparable, with mean accuracy around d(t)d(t)00 d(t)d(t)01. Subjective results reported lower workload and higher perceived performance for assisted mode; d(t)d(t)02 found it somewhat or extremely helpful, d(t)d(t)03 found it somewhat or extremely faster, d(t)d(t)04 found it more accurate, d(t)d(t)05 preferred assisted over manual, and d(t)d(t)06 were somewhat or extremely confident in suggestions (Madi et al., 12 Jan 2025).

A common misconception is that de-drift in reading is simply an automated remapping problem. The Fix8 results instead frame it as a closed-loop process in which automated suggestions and expert oversight interact. The factual basis for that interpretation is the re-suggestion workflow: overrides feed back into algorithm state and refine later suggestions, while the human arbiter resolves cases in which the feature cues conflict or the suggestion appears implausible (Madi et al., 12 Jan 2025).

5. Feature-guided de-drifting in electrooculography

In EOG, FGD is formulated as a morphology-preserving baseline-correction method. The reported signal model is

d(t)d(t)07

where d(t)d(t)08 is the measured horizontal EOG, d(t)d(t)09 is the eye-movement–generated signal, d(t)d(t)10 is baseline drift, and d(t)d(t)11 is residual noise. Acquisition uses three Ag/AgCl electrodes: two lateral electrodes for the horizontal channel and a forehead reference, with analog gain d(t)d(t)12, analog low-pass d(t)d(t)13 Hz through an SRS SIM983 front-end, and digitization by Arduino UNO ADC. Camera-based reference gaze d(t)d(t)14 is obtained from PtGaze (ETH-XGaze), and the de-drifted signal d(t)d(t)15 is mapped to angle by a regression model d(t)d(t)16 (Hu et al., 9 Sep 2025).

The feature-guided stage begins with blink removal. Blinks are described as short positive pulses on baseline with duration d(t)d(t)17 ms. They are detected by two consecutive, oppositely directed surges in the derivative exceeding a threshold within a d(t)d(t)18 ms window and are removed to obtain a blink-free d(t)d(t)19. Derivatives are computed with lag d(t)d(t)20:

d(t)d(t)21

A dynamically generated threshold d(t)d(t)22, based on the standard deviation of d(t)d(t)23, is used to detect saccade peaks in d(t)d(t)24. Detections within a d(t)d(t)25 ms window are grouped, and only the earliest time stamp is retained as d(t)d(t)26. For each detected peak, a local threshold d(t)d(t)27 is used to scan backward and forward until d(t)d(t)28, giving saccade start and end times. The saccadic component d(t)d(t)29 is masked out, and the saccade-excluded signal is d(t)d(t)30 (Hu et al., 9 Sep 2025).

Baseline reconstruction is the distinctive FGD step. For each saccade d(t)d(t)31, the segment after its end up to the next saccade start or the trial end is treated as a floating segment d(t)d(t)32. A piecewise constant displacement d(t)d(t)33 is then computed by comparing d(t)d(t)34 samples before the saccade start with d(t)d(t)35 samples after the saccade end. For the first segment, the original d(t)d(t)36 is used and the initial five seconds are assumed drift-free; for later segments, the already adjusted previous segment d(t)d(t)37 is used. The adjusted segment is

d(t)d(t)38

and the reconstructed baseline d(t)d(t)39 is formed by stitching these adjusted post-saccade segments and using d(t)d(t)40 elsewhere. The paper’s interpretation is that d(t)d(t)41 represents the EOG baseline as if no saccades occurred (Hu et al., 9 Sep 2025).

Drift estimation then uses d(t)d(t)42D multilevel wavelet decomposition. A discrete wavelet transform is applied to d(t)d(t)43 for d(t)d(t)44 levels, yielding approximation coefficients d(t)d(t)45 and detail coefficients d(t)d(t)46:

d(t)d(t)47

The drift trend d(t)d(t)48 is reconstructed from the lowest-frequency approximation d(t)d(t)49, and the corrected signal is

d(t)d(t)50

The rationale given is that wavelet approximation is applied not to the entire EOG but to the saccade-excluded reconstructed baseline, so low-frequency estimation is not contaminated by saccadic energy and eye-movement morphology is preserved (Hu et al., 9 Sep 2025).

The reported computational complexity is linear in data length: derivative calculations, thresholding, baseline reconstruction, and discrete wavelet decomposition are all described as d(t)d(t)51 or d(t)d(t)52 with short filters and d(t)d(t)53. The implementation is currently offline because of the wavelet stage, although near-real-time suitability is suggested and real-time substitution such as Kalman detrending is proposed for future work. Latency is said to be dominated by saccade-window completion and drift-estimator smoothing, with typical saccade durations well below d(t)d(t)54 ms (Hu et al., 9 Sep 2025).

6. Performance characteristics, limitations, and broader significance

The three instantiations of FGD share a common logic: they do not remove drift by blindly filtering the whole signal. Instead, they use specific eye-movement features to define what should be preserved and what should be treated as drift. In d(t)d(t)55, the preserved component is the high-frequency iris-derived motion field and the anchor is the drift-free pupil position; in Fix8, the preserved structure is the fixation sequence as constrained by line and word geometry; in EOG, the preserved structure is the morphology of saccades while drift is estimated from a reconstructed baseline (Chaudhary et al., 2020, Madi et al., 12 Jan 2025, Hu et al., 9 Sep 2025).

The comparative baselines make the same point in different forms. For video eye tracking, pure pupil-edge tracking has the same accuracy as d(t)d(t)56 but significantly higher noise, whereas pure iris texture integration has excellent high-frequency precision but suffers drift, fails across full blinks, and degrades under motion blur or sparse matches. For reading correction, fully automated approaches are fast but can be less accurate than careful manual correction, while purely manual correction is time-consuming and subjective. For EOG, high-pass filtering removes low-frequency drift but attenuates and phase-shifts saccades, polynomial detrending preserves morphology but cannot adequately model nonlinear low-frequency drift, and wavelet-only detrending can oversubtract because saccade energy leaks into the low-frequency approximation when the entire signal is decomposed (Chaudhary et al., 2020, Madi et al., 12 Jan 2025, Hu et al., 9 Sep 2025).

The limitations are likewise modality-specific. In d(t)d(t)57, severe motion blur or compression can eliminate both iris matches and reliable pupil edges; the fusion assumes near-linear behavior and Gaussian errors; extreme off-axis geometry or strong corneal refraction may violate ellipse assumptions; d(t)d(t)58 is singular, so d(t)d(t)59 is required; and calibration demands multiple x–y changes, with the minimum number not yet optimized. In Fix8, benefits are strongest when AOIs are well defined; current limitations include no batch processing of multiple trials, limited AOI editing within the GUI, and no built-in stimuli creation. In EOG FGD, performance depends on accurate saccade detection, accurate blink removal, and the assumption that the initial five seconds are drift-free; the current wavelet estimator is offline rather than closed-loop (Chaudhary et al., 2020, Madi et al., 12 Jan 2025, Hu et al., 9 Sep 2025).

Several extensions are explicitly proposed. For d(t)d(t)60, the d(t)d(t)61 channel could be replaced by a refraction-aware d(t)d(t)62D model or by CNN gaze estimates; the method can be applied per eye for vergence analysis; and the same gradient-domain fusion can be used whenever there is a noisy position signal and a drift-prone integrated velocity signal. For EOG, real-time adaptation via Kalman detrending, detailed latency profiling, and larger and more diverse datasets are proposed. The EOG paper also states that the feature-guided baseline-reconstruction paradigm may extend to other biosignals with drift and intermittent high-energy events, including EMG, PPG, or EEG (Chaudhary et al., 2020, Hu et al., 9 Sep 2025).

This suggests that FGD is best characterized as a methodological principle for drift correction in eye-movement research: use domain-relevant features to construct a de-drifting constraint that suppresses slow bias while preserving the structures on which inference depends. In the cited literature, that principle has been instantiated in camera-based gaze estimation, reading-task fixation correction, and EOG baseline stabilization, with each implementation tuned to the dominant failure modes of its measurement modality (Chaudhary et al., 2020, Madi et al., 12 Jan 2025, Hu et al., 9 Sep 2025).

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to Eye Movement Feature-Guided De-drift (FGD).