- L2CS-Net gaze backend — dual classification heads, 3.92° MAE on MPIIGaze (vs 11° for MGaze)
- UniGaze gaze backend — ViT + MAE pre-training, best cross-dataset accuracy (~9.4°, non-commercial license)
- Backend registry — automatic discovery of gaze backends from
ms/GazeTracking/Backends/ - Unified pitchyaw pipeline —
pitchyaw_pipeline.pyshared by all pitch/yaw-based backends - Live matplotlib dashboard — real-time per-tracker charts during processing (
ms/GUI/live_dashboard.py) - Dashboard bridge — thread-safe GUI-to-dashboard data flow (
ms/GUI/live_dashboard_bridge.py) - Post-run chart generation — time-series charts via
ms/DataCollection/chart_output.py(--chartsflag) - Global CSV — cross-video summary and per-condition statistics for project mode (
ms/DataCollection/global_csv.py) - Matplotlib dashboard renderer —
ms/DataCollection/dashboard_matplotlib.pyreplaces OpenCV drawing - Face anonymization —
--anonymize blur|blackwith configurable padding and temporal smoothing - Auxiliary video streams — per-participant secondary cameras (eye-tracking, FPV) via
AuxStreamConfig - Participant ID mapping — custom labels via
pid_mapinproject.yamlandms/participant_ids.py - ProjectConfig / ProjectOutputConfig — study metadata dataclasses for project mode
- Example project template —
Projects/ExampleProject/withproject.yaml - CollapsibleGroupBox widget — expandable/collapsible GUI sections
- GazelleSnap plugin — snap-augmented Gazelle gaze backend
- GazeBoost plugin — gaze-informed object detection boost using pitchyaw pipeline
- Device auto-detection —
ms/utils/device.pyfor CUDA/MPS/CPU hardware selection - Plugin protocol methods —
dashboard_data(),latest_metric(),latest_metrics(),dashboard_widget(),generate_charts() - Performance flags —
--fast-mode,--skip-phenomena N,--lite-overlay,--no-dashboard,--profile - Gaze convergence tips —
--gaze-tips+--tip-radiusfor multi-person gaze convergence visualization
- MGaze relocated from
Plugins/GazeTracking/MGaze/toms/GazeTracking/Backends/MGaze/ - CLI flags renamed —
--gaze-model→--mgaze-model,--gaze-arch→--mgaze-arch,--gaze-dataset→--mgaze-dataset - GazeConfig.adaptive_ray — type changed from
booltostr("off"/"extend"/"snap") ja_conf_gaterenamed tohit_conf_gate— broader semantics beyond joint attention- Adaptive snap scoring — new parameters:
snap_bbox_scale,snap_w_dist,snap_w_size,snap_w_intersect - GazeConfig additions —
detect_extend,detect_extend_scope,forward_gaze_threshold - TrackerConfig — added
reid_max_dist(default 200, up from 120) - OutputConfig — added
charts_path,pid_map,aux_streams,anonymize,anonymize_padding,video_name,conditions - Plugin signatures —
csv_rows(),console_summary(),dashboard_section()now acceptpid_mapkwarg - Gaze processing — global motion compensation for camera jitter, deterministic left-to-right track-ID assignment, improved re-ID with histogram-weighted matching
- GUI gaze tab — horizontal/vertical splitter layout, backend selection with per-backend config panels, device selector, settings reorganization, preset system
- GUI project tab — complete rebuild with pipeline YAML loader, participants table, metadata editor, conditions support
- CSV output — grouped tracker sections (Dyadic Interactions, Individual Gaze Behavior, Group Dynamics), project mode columns
- Dashboard output —
finalize_video()method, lite overlay mode, configurable element visibility - Geometry utils —
bbox_diagonal(), trig caching inray_hits_cone(), squared-distance optimizations
- Heatmap output filepath handling for project structure
- Snap hysteresis tracker consistency
- Forward gaze dead zone producing errant rays near pitch/yaw zero
- Face re-ID resilience to camera movement (grace period + global motion compensation)
- Duplicate "face" label on video output
--gaze-model/--gaze-arch/--gaze-datasetCLI flags renamed to--mgaze-*prefixGazeConfig.adaptive_raytype changed frombooltostrGazeConfig.adaptive_snap_moderemoved (replaced bysnap_bbox_scaleand scoring weights)GazeConfig.ja_conf_gaterenamed tohit_conf_gate- MGaze plugin path changed from
Plugins/GazeTracking/MGaze/toms/GazeTracking/Backends/MGaze/ dashboard_section(),csv_rows(),console_summary()signatures changed (addedpid_mapkwarg)- Phenomena tracker
__init__no longer returns separateja_tracker— JA unified into tracker list
- Initial public beta release
- Multi-person gaze tracking pipeline (Detection -> Gaze -> Phenomena -> Data)
- Plugin architecture (Gaze backends, Object Detection, Phenomena, Data Collection)
- PyQt6 GUI with Gaze Tracker, Visual Prompt Builder, and Project tabs
- 8 built-in phenomena detectors (joint attention, mutual gaze, social referencing, gaze following, gaze aversion, scanpath analysis, gaze leadership, attention span)
- MGaze and Gazelle gaze estimation backends
- YOLOE-based object detection with visual prompts
- Project mode for batch video processing
- YAML pipeline configuration
- CSV, heatmap, and video overlay outputs
- AGPL-3.0 license