← all repositories
BMW-InnovationLab/BMW-YOLOv4-Training-Automation

BMW's YOLO wrapper: Dockerized training with a side of Swagger

A Docker-and-JSON automation layer over AlexeyAB's darknet that lets you train YOLOv4/v3 without touching a .cfg file by hand.

BMW-YOLOv4-Training-Automation
Velocity · 7d
+0.3
★ / day
Trend
steady
star history

What it does Wraps AlexeyAB’s darknet in Docker containers and exposes the whole YOLOv4/v3 training pipeline through a JSON config file and a REST API. You drop in a labeled dataset, point a shell script at it, and the container handles weights, checkpoints, and three different monitoring endpoints. CPU and GPU builds are both supported, with build flags for CUDNN half-precision and OpenMP.

The interesting bit The monitoring stack is unusually generous for a training wrapper: TensorBoard on port 6006, a custom Swagger-documented REST API on 8000 that serves structured JSON logs and lets you test inference on latest weights, plus AlexeyAB’s own web UI on 8090 if enabled. It’s not just training automation; it’s training observability as a default.

Key highlights

  • Dockerized darknet with GPU/CPU build variants and proxy support baked into build args
  • Single JSON config (train_config.json) drives model selection, hyperparameters, and monitoring ports
  • Auto-split of train/test data (80/20 default) if you don’t provide your own train.txt/test.txt
  • Checkpoints and logs land in timestamped folders under trainings/
  • Includes a benchmark table: COCO inference at 0.0691 sec/image on Tesla V100, ~0.27 sec/image on the listed Intel CPUs

Caveats

  • Ubuntu 18.04 is the stated target; 16.04 “could work, but not tested”
  • Closing the terminal kills the container—there’s no daemon mode mentioned
  • Several darknet-specific failure modes are documented (nan loss, OOM, immediate exit) with manual workarounds, not automatic handling

Verdict Good fit if you want YOLO training without wrestling darknet’s C build system, and especially if you need the REST API for integration into a larger pipeline. Skip it if you need distributed multi-node training or fine-grained control over the darknet internals—the README explicitly notes they didn’t modify darknet itself.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.