A desktop tool for annotating volleyball videos with:
rallyboundaries- nested rally actions
- YOLO bounding boxes
- normal frame and
3-framesuperframe viewing - manual ball position markup
- Load a video and save/load project state.
- Mark rally start and rally end.
- Derive nested actions inside a rally from box classes.
- Show a hierarchical panel on the right:
Rally -> Start / Actions / End. - Draw, move, delete, copy/paste, and resize bounding boxes.
- Export YOLO labels and project JSON.
core/
├── annotation_manager.py # rallies, actions, yolo boxes, export
├── video_processor.py # frame loading and superframe generation
└── yolo_tracker.py # YOLO integration
ui/
├── image_canvas.py # frame view, boxes, ball markup
├── main_window.py # main window and shortcuts
└── widgets/
├── action_panel.py # rally/action tree + playback step
└── timeline.py # timeline widgets
config/
└── config.py # action types, colors, UI settings
- Open a video or project.
- Start a
rally. - Draw boxes with the needed classes such as
Serve,Receive,Set,Attack, and others. - Switch to
superframewhen needed. - End the
rally. - Review the rally tree on the right.
- Export the annotations.
Space- Play / PauseLeft- Previous frameRight- Next frameA- Previous frameD- Next frameS- Jump backward by15framesW- Jump forward by15framesQ- Go to previous annotated frameE- Go to next annotated frameHome- Go to the first frameEnd- Go to the last frame
Return- Start rallyShift+Return- End rally[- Start rally]- End rally|- Split the current rally at the current frame
F1- TogglesuperframeF2- Toggle bounding boxes
Delete- Delete selected boxCtrl+C- Copy boxes from the current frameCtrl+V- Paste boxes into the current frame
- The selected box has resize handles in the top-left and bottom-right corners.
- The right panel includes a
Stepfield (1..30) that controls playback frame stepping duringPlay. - Clicking any item in the rally/action tree seeks to the corresponding frame.
- YOLO labels: one
.txtfile per frame - Project JSON:
rallies, nestedactions,yolo_boxes, and saved app state
