# Roboflow `club-head-tracking/golf-club-tracking` — project notes

**Pulled**: 2026-05-26 via Roboflow API
**Upstream**: https://universe.roboflow.com/club-head-tracking/golf-club-tracking
**Version**: v2 (2024-04-30)
**License**: CC BY 4.0

## Scale

| Split | Images | Labels |
|---|---|---|
| train | 9 456 | 9 456 |
| valid | 1 347 | 1 347 |
| test  | 674   | 674 |
| **total** | **11 477** | **11 477** |

Original source: 6 750 images, ~1.7× augmentation.

## Format

YOLOv8-seg (polygon-mask, not bbox) — 3 classes (`0`, `1`, `3`):
- `train/images/*.jpg` + `train/labels/*.txt` (and `valid/`, `test/`)
- `data.yaml` already wired (relative paths to `../{split}/images`)
- Polygon vertices stored per label line — variable length

## Class meaning

Classes named `0`, `1`, `3` — likely club-head + shaft + grip from the project name. Visualize a few samples before training to confirm. Frames look like `m2c_frames<n>_png_jpg.rf.<hash>.jpg`, suggesting they came from a single video extraction pass.

## How this complements GolfDB

- GolfDB labels swing **events** (8 phases) but no club position per frame.
- This dataset labels club **head** position per frame on its source footage.
- Pairing them: train club-head detector here → run on GolfDB clips → get per-frame club-head trajectory → ground 8 swing events with concrete kinematic landmarks (e.g. Top phase = club-head max y).
