yangjun dfa27afb39 提交PaddleDetection develop 分支 d56cf3f7c294a7138013dac21f87da4ea6bee829 | 1 rok temu | |
---|---|---|
.. | ||
botsort | 1 rok temu | |
bytetrack | 1 rok temu | |
centertrack | 1 rok temu | |
deepsort | 1 rok temu | |
fairmot | 1 rok temu | |
headtracking21 | 1 rok temu | |
jde | 1 rok temu | |
mcfairmot | 1 rok temu | |
mtmct | 1 rok temu | |
ocsort | 1 rok temu | |
pedestrian | 1 rok temu | |
vehicle | 1 rok temu | |
DataDownload.md | 1 rok temu | |
README.md | 1 rok temu | |
README_en.md | 1 rok temu |
简体中文 | English
多目标跟踪(Multi-Object Tracking, MOT)是对给定视频或图片序列,定位出多个感兴趣的目标,并在连续帧之间维持个体的ID信息和记录其轨迹。 当前主流的做法是Tracking By Detecting方式,算法主要由两部分组成:Detection + Embedding。Detection部分即针对视频,检测出每一帧中的潜在目标。Embedding部分则将检出的目标分配和更新到已有的对应轨迹上(即ReID重识别任务),进行物体间的长时序关联。根据这两部分实现的不同,又可以划分为SDE系列和JDE系列算法。
PaddleDetection中提供了SDE和JDE两个系列的多种算法实现:
注意:
PaddleDetection团队提供了实时多目标跟踪系统PP-Tracking,是基于PaddlePaddle深度学习框架的业界首个开源的实时多目标跟踪系统,具有模型丰富、应用广泛和部署高效三大优势。 PP-Tracking支持单镜头跟踪(MOT)和跨镜头跟踪(MTMCT)两种模式,针对实际业务的难点和痛点,提供了行人跟踪、车辆跟踪、多类别跟踪、小目标跟踪、流量统计以及跨镜头跟踪等各种多目标跟踪功能和应用,部署方式支持API调用和GUI可视化界面,部署语言支持Python和C++,部署平台环境支持Linux、NVIDIA Jetson等。 PP-Tracking单镜头跟踪采用的方案是FairMOT,跨镜头跟踪采用的方案是DeepSORT。
教程请参考PP-Tracking之手把手玩转多目标跟踪。
教程请参考PP-Tracking Python部署文档。
教程请参考PP-Tracking C++部署文档。
教程请参考PP-Tracking可视化界面使用文档。
PaddleDetection团队提供了实时行人分析工具PP-Human,是基于PaddlePaddle深度学习框架的业界首个开源的产业级实时行人分析工具,具有模型丰富、应用广泛和部署高效三大优势。 PP-Human支持图片/单镜头视频/多镜头视频多种输入方式,功能覆盖多目标跟踪、属性识别、行为分析及人流量计数与轨迹记录。能够广泛应用于智慧交通、智慧社区、工业巡检等领域。支持服务器端部署及TensorRT加速,T4服务器上可达到实时。 PP-Human跟踪采用的方案是ByteTrack。
PP-Human实时行人分析全流程实战教程链接。
PP-Human赋能社区智能精细化管理教程链接。
一键安装MOT相关的依赖:
pip install -r requirements.txt
# 或手动pip安装MOT相关的库
pip install lap motmetrics sklearn
注意:
apt-get update && apt-get install -y ffmpeg
。关于模型选型,PaddleDetection团队提供的总结建议如下:
MOT方式 | 经典算法 | 算法流程 | 数据集要求 | 其他特点 |
---|---|---|---|---|
SDE系列 | DeepSORT,ByteTrack,OC-SORT,BoT-SORT,CenterTrack | 分离式,两个独立模型权重先检测后ReID,也可不加ReID | 检测和ReID数据相对独立,不加ReID时即纯检测数据集 | 检测和ReID可分别调优,鲁棒性较高,AI竞赛常用 |
JDE系列 | FairMOT,JDE | 联合式,一个模型权重端到端同时检测和ReID | 必须同时具有检测和ReID标注 | 检测和ReID联合训练,不易调优,泛化性不强 |
注意:
不使用ReID的SDE系列 < JDE系列 < 使用ReID的SDE系列
;PaddleDetection团队提供了众多公开数据集或整理后数据集的下载链接,参考数据集下载汇总,用户可以自行下载使用。
根据模型选型总结,MOT数据集可以分为两类:一类纯检测框标注的数据集,仅SDE系列可以使用;另一类是同时有检测和ReID标注的数据集,SDE系列和JDE系列都可以使用。
SDE数据集是纯检测标注的数据集,用户自定义数据集可以参照DET数据准备文档准备。
以MOT17数据集为例,下载并解压放在PaddleDetection/dataset/mot
目录下:
wget https://bj.bcebos.com/v1/paddledet/data/mot/MOT17.zip
并修改数据集部分的配置文件如下:
num_classes: 1
TrainDataset:
!COCODataSet
dataset_dir: dataset/mot/MOT17
anno_path: annotations/train_half.json
image_dir: images/train
data_fields: ['image', 'gt_bbox', 'gt_class', 'is_crowd']
EvalDataset:
!COCODataSet
dataset_dir: dataset/mot/MOT17
anno_path: annotations/val_half.json
image_dir: images/train
TestDataset:
!ImageFolder
dataset_dir: dataset/mot/MOT17
anno_path: annotations/val_half.json
数据集目录为:
dataset/mot
|——————MOT17
|——————annotations
|——————images
JDE数据集是同时有检测和ReID标注的数据集,首先按照以下命令image_lists.zip
并解压放在PaddleDetection/dataset/mot
目录下:
wget https://bj.bcebos.com/v1/paddledet/data/mot/image_lists.zip
然后按照以下命令可以快速下载各个公开数据集,也解压放在PaddleDetection/dataset/mot
目录下:
# MIX数据,同JDE,FairMOT论文使用的数据集
wget https://bj.bcebos.com/v1/paddledet/data/mot/MOT17.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/Caltech.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/CUHKSYSU.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/PRW.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/Cityscapes.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/ETHZ.zip
wget https://bj.bcebos.com/v1/paddledet/data/mot/MOT16.zip
数据集目录为:
dataset/mot
|——————image_lists
|——————caltech.all
|——————citypersons.train
|——————cuhksysu.train
|——————eth.train
|——————mot16.train
|——————mot17.train
|——————prw.train
|——————Caltech
|——————Cityscapes
|——————CUHKSYSU
|——————ETHZ
|——————MOT16
|——————MOT17
|——————PRW
这几个相关数据集都遵循以下结构:
MOT17
|——————images
| └——————train
| └——————test
└——————labels_with_ids
└——————train
所有数据集的标注是以统一数据格式提供的。各个数据集中每张图片都有相应的标注文本。给定一个图像路径,可以通过将字符串images
替换为labels_with_ids
并将.jpg
替换为.txt
来生成标注文本路径。在标注文本中,每行都描述一个边界框,格式如下:
[class] [identity] [x_center] [y_center] [width] [height]
class
为类别id,支持单类别和多类别,从0
开始计,单类别即为0
。identity
是从1
到num_identities
的整数(num_identities
是数据集中所有视频或图片序列的不同物体实例的总数),如果此框没有identity
标注,则为-1
。[x_center] [y_center] [width] [height]
是中心点坐标和宽高,注意他们的值是由图片的宽度/高度标准化的,因此它们是从0到1的浮点数。注意:
用户自定义数据集准备请参考MOT数据集准备教程去准备。
@inproceedings{Wojke2017simple,
title={Simple Online and Realtime Tracking with a Deep Association Metric},
author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},
booktitle={2017 IEEE International Conference on Image Processing (ICIP)},
year={2017},
pages={3645--3649},
organization={IEEE},
doi={10.1109/ICIP.2017.8296962}
}
@inproceedings{Wojke2018deep,
title={Deep Cosine Metric Learning for Person Re-identification},
author={Wojke, Nicolai and Bewley, Alex},
booktitle={2018 IEEE Winter Conference on Applications of Computer Vision (WACV)},
year={2018},
pages={748--756},
organization={IEEE},
doi={10.1109/WACV.2018.00087}
}
@article{wang2019towards,
title={Towards Real-Time Multi-Object Tracking},
author={Wang, Zhongdao and Zheng, Liang and Liu, Yixuan and Wang, Shengjin},
journal={arXiv preprint arXiv:1909.12605},
year={2019}
}
@article{zhang2020fair,
title={FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking},
author={Zhang, Yifu and Wang, Chunyu and Wang, Xinggang and Zeng, Wenjun and Liu, Wenyu},
journal={arXiv preprint arXiv:2004.01888},
year={2020}
}
@article{zhang2021bytetrack,
title={ByteTrack: Multi-Object Tracking by Associating Every Detection Box},
author={Zhang, Yifu and Sun, Peize and Jiang, Yi and Yu, Dongdong and Yuan, Zehuan and Luo, Ping and Liu, Wenyu and Wang, Xinggang},
journal={arXiv preprint arXiv:2110.06864},
year={2021}
}
@article{cao2022observation,
title={Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking},
author={Cao, Jinkun and Weng, Xinshuo and Khirodkar, Rawal and Pang, Jiangmiao and Kitani, Kris},
journal={arXiv preprint arXiv:2203.14360},
year={2022}
}
@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}
}
@article{zhou2020tracking,
title={Tracking Objects as Points},
author={Zhou, Xingyi and Koltun, Vladlen and Kr{\"a}henb{\"u}hl, Philipp},
journal={ECCV},
year={2020}
}