Stop asking you to re-identify your athlete after every detection run - #20
Merged
Merged
Conversation
Replacing a video's tracks assigns new ids, so the one piece of work only a human can do was thrown away every run. Three re-identifications in one evening, the last after a ten-minute detection pass, for a project with one athlete in it. Ids do not survive a re-detection but positions do: the athlete was in the same place on the same frames whichever pass observed them. Bindings are snapshotted as geometry before the delete and re-attached afterwards by mean box overlap across shared frames, which is zero for anyone who was never on screen at the same time and near-zero for anyone standing elsewhere. A match built on almost no shared frames is discounted rather than trusted, because a re-bind that silently picks the wrong child is worse than being asked again — and anything below the threshold still says so plainly. Multi-track selections are preserved too: every fragment the user picked is matched independently, so an athlete stitched from six tracks comes back stitched. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You have identified Sam three times tonight. The last one came after a ten-minute detection pass and was thrown away by the next.
That is my fix from #17 creating friction: replacing a video's tracks assigns new ids, and
focal_track_idpointed at a row that no longer existed, so the binding had to be cleared.Ids don't survive a re-detection, but positions do. The athlete was in the same place on the same frames whichever pass observed them. So bindings are now snapshotted as geometry before the delete and re-attached afterwards.
Matching is mean box overlap across shared frames:
Below the threshold it still says so plainly and asks you. A re-bind that silently picks the wrong child is worse than being asked again.
Multi-track selections survive too: every fragment you picked is matched independently, so an athlete stitched from six tracks comes back stitched.
The log gains
re-identified 1 athlete(s) across 4 new track(s)in place of the old instruction to go and do it yourself.Verification
443 tests pass (6 new), lint and typecheck clean. The matching rule is tested against the cases that would produce a confident wrong answer — a stranger in the same place an hour later, a stranger across the court at the same instant, and a one-frame coincidence.