Extract cones, barriers, barrels and stop signs from nuScenes, Argoverse 2,
COCO and BDD100K into one manifest carrying camera intrinsics and ground-truth
distance, then train YOLO11n and YOLO11s on the derived YOLO export.
The manifest is the artifact, not the .txt files: .txt cannot hold intrinsics
or gt distance, and phase 2's geometric distance estimator needs both. 2D boxes
are projected from the 3D cuboids rather than taken from a pre-made 2D
annotation file, so boxes and distances come from one convention.
merge.py asserts the cross-dataset geometry rather than leaving it to be
eyeballed -- distance positive, distance and box-bottom row negatively
correlated within a camera, median cone distance plausible. A coordinate
convention mismatch otherwise produces a manifest that trains fine and makes
the depth numbers nonsense a day later.
Extraction and export run locally; only training moves to Colab, so the dataset
is published to the Hugging Face Hub as tar shards with the mani…