Skip to content

Latest commit

 

History

History
137 lines (109 loc) · 8.43 KB

GET_STARTED.md

File metadata and controls

137 lines (109 loc) · 8.43 KB

Training Details

We train all models with a total batch size of 16, split among 8 GPUs (NVIDIA RTX 2080Ti).

Source Training (QDTrack)

Our work relies on QDTrack's appearance-based tracker. You can find the config files for training a QDTrack model on several source domains in configs/mot/qdtrack. Source dataset configs can be found in configs/base/datasets.

Training on a single GPU

python tools/run/train.py ${CONFIG_FILE} [optional arguments]

e.g.

python tools/run/train.py \
    configs/mot/qdtrack/qdtrack_faster-rcnn_r50_fpn_4e_mot17-private-half.py \
    --work-dir ./work-dir \
    --exp-name qdtrack_bdd

During training, log files and checkpoints will be saved to the working directory, which is specified by work_dir in the config file or via CLI argument --work-dir.

Training on multiple GPUs

We provide tools/run/dist_train.sh to launch training on multiple GPUs. The basic usage is as follows.

bash ./tools/run/dist_train.sh \
    ${CONFIG_FILE} \
    ${GPU_NUM} \
    [optional arguments]

For example:

JOB_NAME=qdtrack_shift_frcnn_6e
CONFIG_FILE=configs/mot/qdtrack/qdtrack_faster-rcnn_r50_fpn_6e_shift_track.py

bash ./tools/run/dist_train.sh \
    ${CONFIG_FILE} \
    ${GPU_NUM} \
    --exp-name ${JOB_NAME} \
    [optional arguments]

Optional arguments remain the same as stated above.

If you would like to launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs, you need to specify different ports (29500 by default) for each job to avoid communication conflict.

If you use dist_train.sh to launch training jobs, you can set the port in commands.

CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4

Training the source models

We provide config files and pre-trained weights for QDTrack models trained on a variety of source domains. CH indicates the CrowdHuman dataset. Ped. means that the model was trained and evaluated to track pedestrians only.

Dataset DetA MOTA HOTA IDF1 AssA Config Weights
SHIFT 46.9 48.4 55.2 60.6 65.8 config weights
MOT17 57.2 68.2 57.1 68.5 57.4 config weights
MOT17 (+ CH) 59.8 71.7 59.7 71.6 58.7 config weights
DanceTrack 68.5 79.2 43.5 42.3 28.0 config weights
BDD100K (ped.) 36.5 14.2 39.6 48.2 43.3 config weights

Test-time Adaptation (DARTH)

We present DARTH, a holistic test-time adaptation method for multiple object tracking. You can find the config files for adapting a QDTrack model on several target domains with DARTH in configs/mot/qdtrack. Target dataset configs can be found in configs/base/target_datasets. They differ from the source datasets since test-time adaptation is performed on the validation set of each dataset.

Adapting on multiple GPUs

The basic usage is as follows, where CHECKPOINT is the source checkpoint trained as above.

declare -a CFG_OPTIONS=(
    "model.init_cfg.checkpoint=${CHECKPOINT}"
    "find_unused_parameters=True"
)

bash ./tools/run/dist_train.sh \
    ${CONFIG_FILE} \
    ${GPU_NUM} \
    --cfg-options ${CFG_OPTIONS[@]} \    
    [optional arguments]

For example:

CHECKPOINT=work_dirs/shift/qdtrack/train_qdtrack_shift_frcnn_6e/latest.pth
JOB_NAME=darth_bdd_as_shift_from_shift_frcnn_12e
CONFIG_FILE=configs/adapters/darth/darth_qdtrack_faster-rcnn_r50_fpn_12e_bdd_as_shift.py

declare -a CFG_OPTIONS=(
    "data.workers_per_gpu=2"
    "data.samples_per_gpu=2"
    "log_config.hooks.1.init_kwargs.name=${JOB_NAME}"
    "find_unused_parameters=True"
    "evaluation.interval=2"
    "optimizer.lr=0.002"
    "optimizer_config.grad_clip.max_norm=35.0"
    "model.loss_rpn_distillation.loss_weight=0.1"
    "model.loss_roi_distillation.loss_weight=0.1"
    "custom_hooks.0.momentum=0.002"
    "model.init_cfg.checkpoint=${CHECKPOINT}"
    "model.conf_thr=0.7"
)

bash ./tools/run/dist_train.sh \
    ${CONFIG_FILE} \
    ${GPU_NUM} \
    --exp-name ${JOB_NAME} \
    --cfg-options ${CFG_OPTIONS[@]}

Adapting to the target domain

We provide config files and pre-trained weights for DARTH models adapted to a variety of target domains. We report the performance on the target dataset after adaptation. CH indicates the CrowdHuman dataset. Ped. means that the model was trained and evaluated to track pedestrians only.

Source Target DetA MOTA HOTA IDF1 AssA Config Weights
SHIFT BDD100K 15.2 8.3 20.6 23.7 33.1 config weights
MOT17 DanceTrack 57.2 70.1 31.6 32.8 17.7 config weights
MOT17 BDD100K 31.6 21.4 32.4 40.4 33.6 config weights
MOT17 (+ CH) DanceTrack 64.7 78.9 35.4 35.3 19.6 config weights
MOT17 (+ CH) BDD100K 36.3 23.4 36.3 44.4 36.8 config weights
DanceTrack MOT17 26.4 25.5 34.3 37.9 45.2 config weights
DanceTrack BDD100K (Ped.) 12.8 -1.5 17.8 17.4 25.1 config weights
BDD100K (ped.) MOT17 29.4 32.6 36.6 44.4 45.9 config weights
BDD100K (ped.) DanceTrack 45.1 50.2 21.5 21.4 10.4 config weights