Skip to content

BoxMOT tracking backend and YOLO training module - #22

Merged
AtomScott merged 1 commit into
mainfrom
feature/boxmot-yolo-tracking
Aug 11, 2026
Merged

BoxMOT tracking backend and YOLO training module#22
AtomScott merged 1 commit into
mainfrom
feature/boxmot-yolo-tracking

Conversation

@AtomScott

Copy link
Copy Markdown
Owner

Atom's uncommitted working-tree changes from before this session, committed and pushed so they are reviewable rather than at risk on a single machine.

What it contains

  • BoxMOT wired in as the tracking backendboxmot>=11.0.8 added to pyproject, plus scripts/run_tracking.sh.
  • New src/yolo/ moduledataset.py and train.py, exposed as create_yolo_dataset and train_yolo_model, moving YOLO dataset/training out of data_utils. Plus scripts/prepare_and_train_yolo.sh.
  • analyze_bbox_dimensions.py rewritten — the polynomial-regression bbox-size model replaced with a grid-based template using linear interpolation, which is faster and behaves better outside the fitted range.
  • scripts/plot_pitch_coordinates.py — new.
  • .gitignore hardening — root-level working videos, output/, root scratch images, and the vendored boxmot/ clone. Before this, ~220 MB of loose .mp4 files in the repo root were untracked and unignored, so any git add -A would have committed them into history permanently.

Status

Committed as found — not reviewed for correctness and not run. The .gitignore part is the piece worth landing regardless, since it removes a standing footgun.

Note this branch predates the match-ID correction, so if it touches any hardcoded match ID it may need a rebase after #20 and #21 land.

🤖 Generated with Claude Code

@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

Wire BoxMOT in as the tracking backend and move YOLO dataset/training
out of data_utils into a dedicated src/yolo/ module, exposed via
create_yolo_dataset and train_yolo_model.

Replace the polynomial-regression bbox dimension model with a
grid-based template using linear interpolation, which is faster and
behaves better outside the fitted range.

Also ignore the working videos, root-level scratch images, output/ and
the vendored boxmot/ clone, none of which belong in history.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@AtomScott

Copy link
Copy Markdown
Owner Author

Rebased onto current main and the two conflicts resolved, so this now merges cleanly.

src/__init__.pymain had since converted this to lazy PEP 562 exports, deliberately: the eager import chain was ImportError-poisoning every evaluation entry point (see #16). This branch used eager imports. Resolved by keeping main's lazy machinery and carrying this branch's actual intent — the move of the YOLO helpers out of data_utils into src/yolo — into the lazy table:

# Moved out of data_utils into a dedicated src/yolo module.
"create_yolo_dataset": "src.yolo:create_yolo_dataset",
"train_yolo_model": "src.yolo:train_yolo_model",

Verified: import src still pulls no heavy dependencies, and both names resolve.

uv.lock — 17 conflicting hunks, so regenerated with uv lock rather than hand-merged.

⚠️ One thing to do after merging: this rebase is on main as it stands now, which still pins the wrong trackeval package. #21 repins it to sn-trackeval (the SoccerNet fork — plain trackeval has no GS-HOTA scorer). So once #21 and this have both landed, run uv lock once more to pick that up. Merging this last keeps that to a single step.

Unchanged from the original: this is your pre-existing working-tree code committed as found. Not reviewed for correctness and not executed. The .gitignore hardening is the part worth landing regardless — ~220 MB of loose .mp4 in the repo root were untracked and unignored, so any git add -A would have committed them into history permanently.

@AtomScott
AtomScott force-pushed the feature/boxmot-yolo-tracking branch from 24d4860 to c89a4a4 Compare August 10, 2026 18:20
@AtomScott
AtomScott merged commit 08a324a into main Aug 11, 2026
1 check failed
@AtomScott
AtomScott deleted the feature/boxmot-yolo-tracking branch August 11, 2026 05:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant