Skip to content

Experiment Workflows

Use experiment configs for the generate, eval, tune, and research modes. An experiment selects entries from the central boxmot/configs catalog, so commands do not repeat paths or numeric class IDs.

boxmot generate --experiment mot17-ablation-yolox-lmbn
boxmot eval --experiment mot17-ablation-yolox-lmbn --tracker boosttrack
boxmot tune --experiment mot17-ablation-yolox-lmbn --tracker bytetrack

Detection sources

Choose the source in the experiment:

  • mot17-ablation-yolox-lmbn runs the named detector checkpoint.
  • mot17-ablation-frcnn-lmbn uses MOT17 public FRCNN detections.
  • mot17-ablation-precomputed downloads the declared detections and embeddings.

The cache root is <project>/dets_n_embs/<dataset>/<split>/<detector-or-public-producer>/. Detection outputs live below dets/. Embeddings below embs/ are further partitioned by their Python or C++ producer, model format and runtime, ReID artifact fingerprint, preprocessing policy, and crop-schema version.

Keep the same experiment, split, detection producer, ReID weights, backend, and preprocessing overrides when later commands should reuse the same cache.

Data and replay

Downloaded MOT-style datasets are stored under boxmot/datasets/mot. Most cached replay runs do not read images; trackers that need camera-motion inputs still load frames during replay.

Native --tracker-backend cpp replay can reuse the detection cache. Embedding producer identity is the effective Python or C++ implementation that generated the vectors, not the tracker algorithm that consumes them. See Embedding cache layout.

Benchmark publication

README benchmark cells use Python<br>(C++) for trackers with a native implementation. Publish a native value only from the same experiment, detector confidence threshold, split, cache producer, and metric aggregation as its Python value. In particular, mmot-obb-test-precomputed uses the yolo11l-mmot-obb detector's default 0.2 confidence threshold and TrackEval Class Avg (Cls) across all eight classes.

Every published native HOTA, MOTA, and IDF1 value must be within 0.25 percentage points of its Python pair. The download-free publication check is:

python .github/scripts/tracker_benchmark_results.py verify-readme \
  --readme README.md \
  --tolerance 0.25

Outputs

  • generate writes reusable detections and embeddings.
  • eval writes tracker outputs, metric results, config.source.yaml, and config.resolved.yaml.
  • tune writes trial outputs and the best parameters.
  • research writes summaries for evaluated code proposals.