StrongSORT
StrongSORT:让DeepSORT再次伟大
新闻
-
[2022.06.10] "YOLO+OSNet+StrongSORT"已在https://github.com/mikel-brostrom/Yolov5_StrongSORT_OSNet 中得到支持。
-
[2022.08.19] StrongSORT已在mmtracking中得到支持。更多详情请参见dev-1.x分支。
-
[2022.11.30] StrongSORT的打包版本已得到支持(https://pypi.org/project/strongsort/)。更多详情请参见https://github.com/kadirnar/strongsort-pip。
-
[2023.01.23] 论文"StrongSORT: Make DeepSORT Great Again"已被TMM (IEEE Transactions on Multimedia)接收。
星标历史
摘要
现有的多目标跟踪(MOT)方法大致可分为基于检测的跟踪和联合检测关联范式。尽管后者受到更多关注并展示出与前者相当的性能,我们认为基于检测的跟踪范式在跟踪精度方面仍是最佳解决方案。在本文中,我们重新审视了经典跟踪器DeepSORT,并从检测、嵌入和关联等多个方面对其进行升级。由此产生的跟踪器,称为StrongSORT,在MOT17和MOT20上创造了新的HOTA和IDF1记录。我们还提出了两种轻量级且即插即用的算法来进一步完善跟踪结果。首先,提出了一种无外观链接模型(AFLink)来将短轨迹关联成完整轨迹。据我们所知,这是第一个不需要外观信息的全局链接模型。其次,我们提出了高斯平滑插值(GSI)来补偿缺失的检测。与忽略运动信息的线性插值不同,GSI基于高斯过程回归算法,可以实现更准确的定位。此外,AFLink和GSI可以插入各种跟踪器中,几乎不会增加额外的计算成本(在MOT17上分别为591.9和140.9 Hz)。通过将StrongSORT与这两种算法相结合,最终的跟踪器StrongSORT++在MOT17和MOT20的HOTA和IDF1指标上排名第一,并超过第二名1.3 - 2.2。代码将很快发布。
与最先进方法的比较
数据和模型准备
-
从官方网站下载MOT17和MOT20。
数据集路径/MOTChallenge ├── MOT17 │ ├── test │ └── train └── MOT20 ├── test └── train
-
下载我们准备的数据(Google云盘)或百度网盘(提取码:sort)
数据空间路径 ├── AFLink_epoch20.pth # AFLink模型的检查点 ├── MOT17_ECC_test.json # CMC模型 ├── MOT17_ECC_val.json # CMC模型 ├── MOT17_test_YOLOX+BoT # 检测结果 + 特征 ├── MOT17_test_YOLOX+simpleCNN # 检测结果 + 特征 ├── MOT17_trainval_GT_for_AFLink # 用于训练和评估AFLink模型的真实值 ├── MOT17_val_GT_for_TrackEval # 用于评估跟踪结果的真实值 ├── MOT17_val_YOLOX+BoT # 检测结果 + 特征 ├── MOT17_val_YOLOX+simpleCNN # 检测结果 + 特征 ├── MOT20_ECC_test.json # CMC模型 ├── MOT20_test_YOLOX+BoT # 检测结果 + 特征 ├── MOT20_test_YOLOX+simpleCNN # 检测结果 + 特征
-
在"opts.py"中设置数据集和其他文件的路径,即root_dataset、path_AFLink、dir_save、dir_dets、path_ECC。
注意:如果您想自行生成ECC结果、检测结果和特征,请参考辅助教程。
环境要求
- pytorch
- opencv
- scipy
- sklearn
例如,我们已经测试了以下命令来为StrongSORT创建环境:
conda create -n strongsort python=3.8 -y
conda activate strongsort
pip3 install torch torchvision torchaudio
pip install opencv-python
pip install scipy
pip install scikit-learn==0.19.2
跟踪
-
在MOT17-val上运行DeepSORT
python strong_sort.py MOT17 val
-
在MOT17-val上运行StrongSORT
python strong_sort.py MOT17 val --BoT --ECC --NSA --EMA --MC --woC
-
在MOT17-val上运行StrongSORT++
python strong_sort.py MOT17 val --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI
-
在MOT17-test上运行StrongSORT++
python strong_sort.py MOT17 test --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI
-
在MOT20-test上运行StrongSORT++
python strong_sort.py MOT20 test --BoT --ECC --NSA --EMA --MC --woC --AFLink --GSI
评估
我们使用官方代码TrackEval来评估MOT17-val集上的结果。 为了方便您开始,我们在Google和百度网盘上提供了MOT17-val注释,在"MOT17-train"文件夹中。
请首先准备TrackEval的代码和环境,并将下载的"MOT17-train"文件夹与TrackEval的"data/gt/mot_challenge"文件夹链接,如下:
ln -s xxx/MOT17-train xxx/TrackEval/data/gt/mot_challenge
我们还在网盘上提供了一些跟踪结果,在"MOT17-val_results"文件夹中。 您可以下载它们,进入TrackEval目录,并尝试评估StrongSORT++,如下:
python scripts/run_mot_challenge.py \
--BENCHMARK MOT17 \
--SPLIT_TO_EVAL train \
--TRACKERS_TO_EVAL xxx/MOT17-val_results/StrongSORT++ \
--TRACKER_SUB_FOLDER '' \
--METRICS HOTA CLEAR Identity VACE \
--USE_PARALLEL False \
--NUM_PARALLEL_CORES 1 \
--GT_LOC_FORMAT '{gt_folder}/{seq}/gt/gt_val_half_v2.txt' \
--OUTPUT_SUMMARY False \
--OUTPUT_EMPTY_CLASSES False \
--OUTPUT_DETAILED False \
--PLOT_CURVES False
注意:您可能还需要准备SEQMAPS
来指定要评估的序列。
注意事项
- 您也可以尝试将AFLink和GSI应用到其他跟踪器上。如果您能告诉我们您的新结果,我们将非常高兴。
- 仔细调整超参数会带来更好的性能。
引用
@article{du2023strongsort,
title={Strongsort: Make deepsort great again},
author={Du, Yunhao and Zhao, Zhicheng and Song, Yang and Zhao, Yanyun and Su, Fei and Gong, Tao and Meng, Hongying},
journal={IEEE Transactions on Multimedia},
year={2023},
publisher={IEEE}
}
您也可以考虑阅读并引用我们的相关工作GIAOTracker,该工作在ICCV研讨会的VisDrone2021 MOT挑战赛中获得第二名:
@InProceedings{Du_2021_ICCV,
author = {Du, Yunhao and Wan, Junfeng and Zhao, Yanyun and Zhang, Binyu and Tong, Zhihang and Dong, Junhao},
title = {GIAOTracker: A Comprehensive Framework for MCMOT With Global Information and Optimizing Strategies in VisDrone 2021},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV) Workshops},
month = {October},
year = {2021},
pages = {2809-2819}
}
致谢
大部分代码、想法和结果都借鉴自DeepSORT、JDE、YOLOX和ByteTrack。感谢他们的出色工作!