ITADN

cli: add hyperparameter tuning for trackers

#260OpenSkalskiP 创建于 2026-02-16
help wantedclistale
S
SkalskiPcommented
## Description Add a `trackers tune` CLI subcommand that runs hyperparameter optimization for any registered tracker. The tuner takes pre-computed detections (MOT format) and ground-truth annotations, repeatedly instantiates the tracker with different parameter configurations proposed by Optuna, evaluates each configuration using the existing `evaluate_mot_sequences` engine, and reports the best-found parameters. ```bash # Basic usage — tune ByteTrack on MOT17 with 100 trials trackers tune \ --tracker bytetrack \ --gt-dir path/to/gt/ \ --detections-dir path/to/detections/ \ --n-trials 100 # Pick objective metric and metric families to compute trackers tune \ --tracker sort \ --gt-dir path/to/gt/ \ --detections-dir path/to/detections/ \ --metrics HOTA MOTA IDF1 \ --objective HOTA \ --n-trials 200 ``` ## Search space definition Each tracker declares a `search_space` class variable alongside its `__init__` parameters. ```python class ByteTrackTracker(BaseTracker): search_space: ClassVar[dict[str, dict]] = { "lost_track_buffer": {"type": "randint", "range": [10, 61]}, "track_activation_threshold": {"type": "uniform", "range": [0.5, 0.9]}, "minimum_iou_threshold": {"type": "uniform", "range": [0.05, 0.5]}, "high_conf_det_threshold": {"type": "uniform", "range": [0.3, 0.8]}, } ``` ## Tasks - [ ] Define `search_space: ClassVar[dict[str, dict]]` on `SORTTracker` and `ByteTrackTracker` with sensible ranges for each tunable parameter. Validate that every key in `search_space` matches a parameter name in `__init__`. - [ ] Implement a `Tuner` class that wraps an Optuna study: converts `search_space` to Optuna distributions, runs trials calling the objective function. - [ ] Register the `tune` subcommand in `trackers/scripts/__main__.py` with arguments: `--tracker`, `--gt-dir`, `--detections-dir`, `--metrics`, `--objective`, `--n-trials`, `--output`, `--resume`. - [ ] Add `optuna` as an optional dependency under `trackers[tune]` in `pyproject.toml`. - [ ] Document usage: expected input format for detections-dir and gt-dir, how to generate detections with `trackers track`, example commands, and the meaning of output files.
8 条评论