Annotating Shots
Annotation is the human check on the contact frame. Even with automatic detection, human confirmation is the accuracy ceiling of the system — so this screen is permanent, not a stopgap.
Starting
Section titled “Starting”- Tap Footage from the home screen
- Find a footage card showing Needs annotation
- Tap Annotate contact frames
Only unconfirmed, non-excluded shots enter the queue, ordered by contact frame. Returning to a half-annotated set resumes where the work remains.
The title bar shows progress: Annotate · 3 of 47.
The screen
Section titled “The screen”Landscape, split into two panes.
Left — pick the contact frame
Section titled “Left — pick the contact frame”- Large preview of the currently selected frame
- Frame number and exact time below it, plus an amber offset (e.g.
+3) if you have moved off the original candidate - Filmstrip of 17 thumbnails spanning ±8 frames around the candidate
Filmstrip borders tell you where you are:
| Border | Meaning |
|---|---|
| Blue, thick | Your current selection |
| Amber | The original detector candidate |
| Thin white | Everything else |
Tap a thumbnail to select it. The ‹ and › chevrons shift the window by 8 frames.
Right — tag the zone
Section titled “Right — tag the zone”Under the heading Where did it go?, a court map laid out as the real court. For badminton singles that is 2 rows × 3 columns: Front Left, Front Centre, Front Right, Back Left, Back Centre, Back Right.
One tap selects. The selected tile turns blue.
Actions
Section titled “Actions”| Button | Effect |
|---|---|
| Confirm (green) | Saves the frame and zone, marks the shot human-confirmed, advances. Disabled until a zone is selected |
| Skip (grey) | Leaves the shot unconfirmed and advances. It reappears next time |
| Exclude (red) | Rejects the shot permanently. The record is kept, but it never enters a session |
| Previous (title bar) | Goes back one shot |
All three actions auto-advance — there is no separate “next” button.
Target is 5 seconds per shot once you find the rhythm.
The app times you and reports the median when you finish — a green toast like “Median per shot: 4.2 s”. If the median exceeds 8 seconds it turns red and adds: “Median above 8 s — the annotation UI needs work, not you.”
That attribution is correct. If annotation is slow, report it as an interface problem.
What gets written
Section titled “What gets written”On confirmation, contact_time_ms is recomputed from the frame number and the real frame rate rather than trusted from elsewhere, so frame and time can never disagree. The detector source is rewritten to manual with confidence 1.0.