English | 简体中文
BOT_SORT(BoT-SORT: Robust Associations Multi-Pedestrian Tracking). The configuration of common detectors is provided here for reference. Because different training data sets, input scales, number of training epochs, NMS threshold settings, etc. will lead to differences in model accuracy and performance, please adapt according to your needs
Dataset | detector | input size | detector mAP | MOTA | IDF1 | config |
---|---|---|---|---|---|---|
MOT-17 half train | PP-YOLOE-l | 640x640 | 52.7 | 55.5 | 64.2 | config |
Attention:
-
Model weight download link in the configuration file
det_ Weights
-
MOT17-half train is a data set composed of pictures and labels of the first half frames of each video in the MOT17 train sequence (7 in total). To verify the accuracy, we can use the MOT17-half val to eval,It is composed of the second half frame of each video,download link,decompression
dataset/mot/
-
BOT_ SORT training is a separate detector training MOT dataset, reasoning is to assemble a tracker to evaluate MOT indicators, and a separate detection model can also evaluate detection indicators.
-
BOT_SORT export deployment is to export the detection model separately and then assemble the tracker for operation. Refer to PP-Tracking。
-
BOT_SORT is the main scheme for PP Human, PP Vehicle and other pipelines to analyze the project tracking direction. For specific use, please refer to Pipeline and MOT.
Start training and evaluation with the following command
#Single gpu
CUDA_VISIBLE_DEVICES=0 python tools/train.py -c configs/mot/bytetrack/detector/ppyoloe_crn_l_36e_640x640_mot17half.yml --eval --amp
#Multi gpu
python -m paddle.distributed.launch --log_dir=ppyoloe --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/mot/bytetrack/detector/ppyoloe_crn_l_36e_640x640_mot17half.yml --eval --amp
CUDA_VISIBLE_DEVICES=0 python tools/eval.py -c configs/mot/bytetrack/detector/ppyoloe_crn_l_36e_640x640_mot17half.yml
Attention:
- eval detection use
tools/eval.py
,eval mot usetools/eval_mot.py
.
CUDA_VISIBLE_DEVICES=0 python tools/eval_mot.py -c configs/mot/botsort/botsort_ppyoloe.yml --scaled=True
Attention:
--scaled
indicates whether the coordinates of the output results of the model have been scaled back to the original drawing. If the detection model used is JDE YOLOv3, it is false. If the universal detection model is used, it is true. The default value is false.- mot result save
{output_dir}/mot_results/
,each video sequence in it corresponds to a txt, and each line of information in each txt file isframe,id,x1,y1,w,h,score,-1,-1,-1
, and{output_dir}
could use--output_dir
to set.
python tools/export_model.py -c configs/mot/bytetrack/detector/ppyoloe_crn_l_36e_640x640_mot17half.yml --output_dir=output_inference -o weights=https://bj.bcebos.com/v1/paddledet/models/mot/ppyoloe_crn_l_36e_640x640_mot17half.pdparams
# download demo video
wget https://bj.bcebos.com/v1/paddledet/data/mot/demo/mot17_demo.mp4
CUDA_VISIBLE_DEVICES=0 python deploy/pptracking/python/mot_sde_infer.py --model_dir=output_inference/ppyoloe_crn_l_36e_640x640_mot17half --tracker_config=deploy/pptracking/python/tracker_config.yml --video_file=mot17_demo.mp4 --device=GPU --threshold=0.5
Attention:
- You must fix
tracker_config.yml
trackertype: BOTSORTTracker
,if you want to use BOT_SORT. - The tracking model is used to predict videos. It does not support prediction of a single image. By default, the videos with visualized tracking results are saved. You can add
--save_mot_txts
(save a txt for each video) or--save_mot_txt_per_img
(Save a txt for each image) or--save_images
save the visualization picture of tracking results. - Each line of the trace result txt file format
frame,id,x1,y1,w,h,score,-1,-1,-1
。
@article{aharon2022bot,
title={BoT-SORT: Robust Associations Multi-Pedestrian Tracking},
author={Aharon, Nir and Orfaig, Roy and Bobrovsky, Ben-Zion},
journal={arXiv preprint arXiv:2206.14651},
year={2022}
}