Tracklab Configuration
This framework uses Hydra for its configuration.
Hydra combines commandline arguments with configuration directories, to create a configuration dictionary. The config tree is determined by the directory structure, and each file in a directory is a configuration choice.
By default, the main configuration file looks like this :
The defaults list in this file contains the default value for every category. You can change these defaults either through the commandline. For example, to change the dataset and the image detector, you could do:
uv run tracklab dataset=sportsmot bbox_detector=yolox
If you want to change a single value inside a category, for example the number of frames per video:
uv run tracklab dataset.nframes=10
You can find out which values you can change by looking at the configuration directory or running:
uv run tracklab --help
Thanks to Hydra, we can also run a grid-search (or other kind of hyper-parameter searches). The default grid-search
is activated with the -m
flag, and by passing a comma-separated list of values, either at the category-level
or at the key-level:
uv run tracklab -m dataset=sportsmot,dancetrack track.cfg.max_dist=0.2,0.5,0.7
This command will run tracking multiple times, to test two datasets, with three different tracking hyper-parameters (combining to 6 runs).
Configuration directory
The configuration for tracklab is located in the configs/
directory, with the following structure:
configs
├── dataset
├── detect_multiple
├── detect_single
├── reid
├── track
├── engine
├── eval
├── machine
├── state
├── visualization
└── config.yaml
For example, when adding a new dataset, you should add a new file inside configs/dataset/
, which will be the basis
for your new dataset.
Automatic initialization
In the code, we use hydra.initialize()
in order to find the right class to initialize or function to call. This
requires the configuration to have a specific key, _target_
, which must contain the full name (including modules) of