sri299792458/quest-bowling-ball-yolo
Quest Bowling Ball YOLO Dataset This dataset contains YOLO-format bounding-box annotations for detecting a bowling ball in Quest mixed-reality bowling footage. The dataset was created for a live Quest-to-laptop bowling replay pipeline. YOLO is used only to find the first reliable ball seed; SAM2 then takes over for mask tracking and trajectory reconstruction. Dataset Summary Task: single-class object detection Class: bowling_ball Format: YOLO detection labels… See the full description on the dataset page: https://huggingface.co/datasets/sri299792458/quest-bowling-ball-yolo.
Quest Bowling Ball YOLO Dataset
This dataset contains YOLO-format bounding-box annotations for detecting a bowling ball in Quest mixed-reality bowling footage.
The dataset was created for a live Quest-to-laptop bowling replay pipeline. YOLO is used only to find the first reliable ball seed; SAM2 then takes over for mask tracking and trajectory reconstruction.
Dataset Summary
- Task: single-class object detection
- Class:
bowling_ball - Format: YOLO detection labels
- Images: 801
- Positive images: 641
- Negative images: 160
- Source runs: 40 accepted bowling runs
- Capture domain: 2 bowling alleys
- Resolution: 960 x 720 source frames
Contributors
- Sri: https://github.com/sri299792458
- Apurv: https://github.com/ApurvK032
- Cale: https://github.com/CaleR2003
Project Repository
The full Quest bowling replay project is available here:
https://github.com/sri299792458/QuestBowlingStandaloneSplits
The validation and test sets are intentionally from the newer alley domain, so they measure cross-domain generalization rather than only in-domain memorization.
Directory Layout
images/
train/
val/
test/
labels/
train/
val/
test/
dataset.yaml
metadata/
export_summary.json
bowling_ball_combined_v2_split.json
training/
YOLO26S_TRAINING_DECISIONS.md
args.yaml
results.csvEach image has a matching .txt file in labels/<split>/. Negative examples have empty label files.
Usage With Ultralytics YOLO
yolo detect train model=yolo26s.pt data=dataset.yaml imgsz=1280dataset.yaml:
path: .
train: images/train
val: images/val
test: images/test
names:
0: bowling_ballAnnotation Workflow
This dataset was not hand-labeled frame by frame.
The workflow was:
- Manually curate 40 bowling runs.
- Select/verify ball seed frames.
- Use SAM2-assisted tracking to propagate ball masks through each run.
- Convert accepted SAM2 masks into YOLO bounding boxes.
- Add pre-release negative frames so the detector learns when no ball is visible.
- Split by bowling run, not by random image, to avoid leaking near-duplicate frames across train/val/test.
This gave a useful detector dataset from a small amount of manual labeling effort.
Intended Use
This dataset is intended for:
- bowling ball detection
- live sports replay prototypes
- small fast-object detection
- YOLO seed detection before a tracker such as SAM2
- AR/MR computer-vision experiments using Quest-style footage
It is not intended to be a general-purpose bowling dataset. It focuses on one object class and a specific camera/domain.
Limitations
- The dataset is small.
- Lighting and camera exposure vary by alley.
- The ball can be small, dark, blurred, or partially occluded.
- Labels are SAM2-assisted and review-filtered, not pure manual pixel inspection.
- The model trained from this dataset should be evaluated on new alleys before production use.
Project Context
This dataset was produced as part of the Quest Bowling Standalone project: a Quest 3 mixed-reality bowling replay system where YOLO detects the ball seed, SAM2 tracks the ball mask, and the laptop reconstructs a lane-space trajectory for headset replay.
