Football temporal ball selector

Experimental causal selector over frozen, fine-tuned YOLO11n candidates. Eight current/past frames, 157,826 trainable selector parameters, learned NULL output. Requires the separate personal YOLO detector and CUDA for streaming. This is not a model for classifying physical out-of-camera versus occluded balls.

Verified experiment

Full immutable snapshot: runs/20260907/refined at 22e8ead. All 728 checkpoint/result files were downloaded and SHA-256 verified.

Selected checkpoint: runs/20260907/refined/context8-nearest-aug-seed7/best.pt. SHA-256: 840947a23a54bf59b471fba6c7695a06b8e7e752b9be497de3952a696af8398e. test-conservative/profile.json supplies the optional agreement operating point; both modes use the same weights. The historical publication-pending.json records deferred remote uploading; subsequent local verified publication completed it.

Test method / operating point Recall ≤20px Precision of accepted positions Synthetic absence FPR
YOLO, 95% validation precision target 54.94% 95.33% 2.222%
Higher-recall learned selector 66.65% 94.36% 1.329%
YOLO, 99% validation precision target 14.28% 98.17% 0.117%
Conservative neural/heuristic agreement 28.83% 98.75% 0.053%

Test: 49 clips, 31,949 annotated real frames, 4,801 unknown real frames and 9,408 synthetic ball-excluding negative frames. Error tolerance is 20 native pixels, not an official SoccerNet MOT score. Missing real annotations are unknown, not verified absence. Synthetic false-positive rates do not establish real-world out-of-camera performance. Neither selector mode reaches its validation precision target on test. Conservative mode deliberately misses many balls.

Train games 6/9; validation game 4; test games 7/8/11. The detector's earlier training-match overlap is unknown. The conservative rule was developed after seeing the higher-recall test result, with its threshold fitted on validation only; test was reused, so this refinement's assessment is exploratory. Wearable footage has not been evaluated.

Rejected output is status=no_reliable_detection, observed_bbox=null, inferred_position=null, visibility_reason=unknown. Diagnostic raw proposals must not be interpreted as measurements when rejected.

Code and local viewer

Source branch and full experiment report. The report records all four refined ablations, both baseline operating points, streaming parity, latency caveats, dataset/detector revisions and cleanup.

From that branch, authenticated to this private repository, restore into a fresh destination with:

make -f Makefile.temporal temporal-restore TEMPORAL_REVISION=22e8eadb0a973c12ac5d0b69d8ed56090ebd782a
python scripts/verify_temporal_results.py artifacts/temporal-selector
python scripts/verify_temporal_results.py artifacts/temporal-selector --profile test-conservative

Provide the original authorized test images under data/processed/soccernet-tracking/test, then open the app's /temporal page. Code, dataset and underlying detector retain their respective terms; this card does not grant new rights to those assets. No image files are included here.

Training and inference used one RTX 5090, instance 50134134, destroyed and verified absent on 2026-09-07 at 10:04:44 UTC after backups were checked.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support