DCL The Game footage produces noisy labels and the wrong visual signature for the AIGP simulator due in May 2026. These synthetic frames render LED-lit square gates against procedural venue backgrounds with pixel-perfect labels — bbox + 4 corners — and AIGP-spec camera parameters.
synth_aigp_gates.py50 sample images at deploy/documents/synth-samples/preview/. A representative subset below — full set is shipped with the docs site.
| Stage | What it does |
|---|---|
| 1. Random pose | Beta-skewed distance (3–25 m, mode≈8 m), azimuth/elevation within FOV, 6-DoF rotation that tightens at close range. |
| 2. Background | Dark vertical gradient (15% chance bright/daylight), faint horizon line, a sprinkling of distant pinpoint LEDs with their own halos. |
| 3. Project corners | Pinhole projection from 4 gate corners (1.5 m square in gate-local frame) → image pixels via fx,fy from FOV. |
| 4. Frame body | Dark polyline (8,8,10) at 1.6× LED thickness — the matte structural part of the gate. |
| 5. LED bloom (3 layers) | Big halo (×0.55, σ≈big), mid bloom (×0.95, σ≈med), inner glow (×1.4, σ≈small) — additive composite onto the scene. |
| 6. Hot core | 70% white + 30% LED color polyline, slightly thinner than the bloom — the actual emitter line. |
| 7. Augmentations | Motion blur (60% chance), exposure jitter, hue shift, sensor noise, JPEG compression at random quality 45–95. |
| 8. Labels | YOLO bbox (axis-aligned over corners) + YOLO-pose (4 corners with visibility flag). |
python synth_aigp_gates.py --output dataset_gates_synthetic --preview 50
Outputs JPEGs under dataset_gates_synthetic/preview/. Inspect, tweak, re-run.
python synth_aigp_gates.py --output dataset_gates_synthetic \
--n-train 8000 --n-val 2000 --imgsz 640 360 --seed 42
Outputs the YOLO-format tree:
dataset_gates_synthetic/
images/{train,val}/*.jpg
labels/{train,val}/*.txt # YOLO-pose: bbox + 4 keypoints (Phase 2)
labels_bbox/{train,val}/*.txt # plain YOLO bbox (Phase 1)
data.yaml # for detector training
data_pose.yaml # for keypoint training
Phase 1 (detector):
python train_apex.py detector \
--dataset dataset_gates_synthetic \
--epochs 200 \
--name apex_yolo11n_synth \
--wandb-project aigp-gate-detector-synth
Phase 2 (keypoints) reads data_pose.yaml automatically when the dataset has a kpt_shape field.
--bg-dir arg and sample from there.gate_corners_local().
Cross-refs: W&B uploads · training runbook · related code: synth_aigp_gates.py, train_apex.py:790 (camera constants).