Teardown2026-08-248 min

We found 8,295 golf images. Almost none were the data we needed.

GitHub, Roboflow, Kaggle, and Hugging Face produced plenty of files. The hard part was refusing to call mismatched labels a dataset.

We found 8,295 golf images. Almost none were the data we needed.

The dataset search looked successful in the first hour. Golf videos on GitHub. Pose projects on Roboflow. Multi-gigabyte archives on Kaggle and Hugging Face. By the end of intake we had 8,295 downloaded images before the later relabeling candidates were even counted.

The five-point production dataset was still empty.

That is the part of machine-learning work that a download count hides. Data can be relevant, legal to inspect, technically loadable, and still wrong for the question you are asking.

Keypoint count is not keypoint meaning

Our target contract names five landmarks: grip, shaft-grip junction, hosel, inner clubhead, outer clubhead. The public sources advertised two points, three points, seven points, fourteen points, and twenty-one points. A few had exactly five.

Exactly five still did not mean compatible.

GolfPose uses shaft, hosel, heel, toe-down, and toe-up. That is a coherent research schema, but it is not ours. Renaming its points would manufacture equivalence the source does not claim. Several YOLO exports contained numbered indices without enough semantic documentation to know what the numbers meant. Those cannot become production truth through optimism.

Roboflow gave us warm starts, not an answer

Three Roboflow sources were genuinely useful. A 7,842-image detection set can help a first-stage model learn golfer, club, clubhead, ball, and hard-negative context. A 233-image, fourteen-keypoint set and a 220-image, three-keypoint set can support experiments or manual relabeling.

None of them satisfies the final five-point contract as downloaded.

That does not make them bad datasets. It makes “useful” a stage-specific word. Detector pretraining, relabeling inventory, and final evaluation truth are three different jobs. The mistake would be letting one folder silently do all three.

GitHub exposed the rights problem

The strongest public research candidates were not simple downloads. CADDIE describes 72,000 annotated golf-club frames with a five-point scheme remarkably close to ours, but we did not find a public dataset license or official download path. GolfPose provides an official implementation and a dataset access route, but authorization is required and its landmark semantics differ.

Other sources failed for different reasons. GolfDB is noncommercial. One Kaggle mirror claimed permissive terms that appeared inconsistent with its likely source. A 37-gigabyte Hugging Face archive had no dataset card, license, or provenance strong enough to justify pulling it into a commercial training corpus.

Downloading first and sorting out rights later is how a research shortcut becomes a product liability.

The spreadsheet became the real asset

The most valuable output was not the image directory. It was the source ledger: exact version, origin, license, checksum, intended use, schema compatibility, and disposition. Approved warm start. Research only. Quarantined. Access request required. Excluded from training.

That ledger prevented file accumulation from being mistaken for readiness.

The honest result

We found useful detector data, candidate relabeling material, academic methods, and two strong access-gated five-point sources. We did not find a publicly downloadable, commercially cleared corpus with hundreds of samples already matching our exact landmarks.

So the highest-confidence path is less glamorous: request author access where the terms work, and record our own 120/240 fps face-on and down-the-line footage with clean rights and the target camera geometry.

The search did not fail. It saved us from training the wrong model on the wrong labels under the wrong license. In applied ML, that is a successful research result even when the final dataset count is zero.