基于 PaddleDetection 的 SoccerNet 多目标跟踪基线
1. 介绍
一个基于 PaddleDetection 套件和 SoccerNet Tracking 数据集开发的足球和足球运动员多目标跟踪(MOT)的基线
包含 DeepSort、ByteTrack、JDE 和 FairMOT 四个经典的多目标跟踪模型,模型训练、评估、推理和部署全流程支持
项目 GitHub:jm12138/SoccerNet_Tracking_PaddleDetection
2. 演示
足球与运动员多目标跟踪效果如下:
3. 目录
本项目目录结构如下:
configs -> 模型配置文件
dataset -> 数据集下载和预处理脚本
tools -> 评估脚本
PaddleDetection -> PaddleDetection 套件源码
4. 数据
4.1 数据简介
SoccerNet Tracking 多目标跟踪数据集由来自主摄像机拍摄的 12 场完整足球比赛组成,包括:
200 个视频剪辑,每段 30 秒,包含跟踪数据
一个完整的半场视频,用跟踪数据标注
12 场比赛的完整视频
4.2 数据格式
视频数据以视频帧图像的形式储存,样例如下:
真实值和检测结果存储在逗号分隔的 txt 文件中,共 10 列,样例如下:
数据集符合 MOT20 格式要求,由于某些值未使用,所以被标注为 -1
4.3 数据结构
数据集的目录结构如下:
- train- SNMOT-060- gt- gt.txt- img1- 000001.jpg...- gameinfo.ini- seqinfo.ini... - test... - challenge...
5. 模型
5.1 DeepSort
配置:configs/snmot/deepsort
论文:Simple Online and Realtime Tracking with a Deep Association Metric
介绍:DeepSORT (Deep Cosine Metric Learning SORT) 扩展了原有的 SORT (Simple Online and Realtime Tracking) 算法,增加了一个 CNN 模型用于在检测器限定的人体部分图像中提取特征,在深度外观描述的基础上整合外观信息,将检出的目标分配和更新到已有的对应轨迹上即进行一个 ReID 重识别任务。DeepSORT 所需的检测框可以由任意一个检测器来生成,然后读入保存的检测结果和视频图片即可进行跟踪预测。ReID 模型此处选择 PaddleClas 提供的
PCB+Pyramid ResNet101
和PPLCNet
模型。
5.2 ByteTrack
配置:configs/snmot/bytetrack
论文:ByteTrack: Multi-Object Tracking by Associating Every Detection Box
介绍:ByteTrack 通过关联每个检测框来跟踪,而不仅是关联高分的检测框。对于低分数检测框会利用它们与轨迹片段的相似性来恢复真实对象并过滤掉背景检测框。此处提供了几个常用检测器的配置作为参考。由于训练数据集、输入尺度、训练 Epoch 数、NMS 阈值设置等的不同均会导致模型精度和性能的差异,请自行根据需求进行适配。
5.3 JDE
配置:configs/snmot/jde
论文:Towards Real-Time Multi-Object Tracking
介绍:JDE (Joint Detection and Embedding) 是在一个单一的共享神经网络中同时学习目标检测任务和 Embedding 任务,并同时输出检测结果和对应的外观 Embedding 匹配的算法。JDE 原论文是基于 Anchor Base 的 YOLOv3 检测器新增加一个 ReID 分支学习 Embedding,训练过程被构建为一个多任务联合学习问题,兼顾精度和速度。
5.4 FairMOT
配置:configs/snmot/fairmot
论文:FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking
介绍:FairMOT 以 Anchor Free 的 CenterNet 检测器为基础,克服了 Anchor Based 的检测框架中 Anchor 和特征不对齐问题,深浅层特征融合使得检测和 ReID 任务各自获得所需要的特征,并且使用低维度 ReID 特征,提出了一种由两个同质分支组成的简单 Baseline 来预测像素级目标得分和 ReID 特征,实现了两个任务之间的公平性,并获得了更高水平的实时多目标跟踪精度。
6. 使用
6.1 克隆源码
%cd ~!git clone https://gitee.com/paddlepaddle/PaddleDetection!cp -r configs PaddleDetection
!cp -r dataset PaddleDetection
!cp -r output PaddleDetection
!cp -r tools PaddleDetection
6.2 安装依赖
%cd ~/PaddleDetection!pip install -r requirements.txt
!pip install git+https://github.com/JonathonLuiten/TrackEval.git
6.3 数据解压
- 使用如下命令解压数据:
!mkdir ./dataset/snmot/SNMOT
!mkdir ./dataset/snmot/SNMOT/images!unzip -q ~/data/data149176/train.zip -d ./dataset/snmot/SNMOT/images
!unzip -q ~/data/data149176/test.zip -d ./dataset/snmot/SNMOT/images
!unzip -q ~/data/data149176/challenge.zip -d ./dataset/snmot/SNMOT/images
6.4 数据处理
转换数据格式以符合 PaddleDetection 的要求:
生成多目标跟踪数据标签
生成图像列表
生成 COCO 目标检测数据
生成检测结果文件
压缩标签文件
%cd ~/PaddleDetection/dataset/snmot!python gen_labels.py
!python gen_image_list.py!python gen_det_coco.py
!python gen_det_results.py!python zip_gt.py
6.5 模型训练
- 指定一个模型配置文件,使用如下命令进行模型训练(以 FairMOT 为例):
%cd ~/PaddleDetection!python tools/train.py \-c ./configs/snmot/fairmot/fairmot_dla34_30e_1088x608.yml
6.6 模型验证
使用如下命令进行模型评估:
使用评估脚本输出结果文件
压缩结果文件
使用 SoccerNet 官方评估脚本对结果文件进行评估
得到最终的各种精度指标(MOTA、HOTA 等)
评估结果:
%cd ~/PaddleDetection!python tools/eval_mot.py \-c ./configs/snmot/fairmot/fairmot_dla34_30e_1088x608.yml \-o weights=./output/fairmot_dla34_30e_1088x608/model_final!cd ./output/mot_results && zip soccernet_mot_results.zip *.txt!python tools/evaluate_soccernet_v3_tracking.py \--BENCHMARK SNMOT \--DO_PREPROC False \--SEQMAP_FILE tools/SNMOT-test.txt \--TRACKERS_TO_EVAL test \--SPLIT_TO_EVAL test \--OUTPUT_SUB_FOLDER eval_results \--TRACKERS_FOLDER_ZIP ./output/mot_results/soccernet_mot_results.zip \--GT_FOLDER_ZIP ./dataset/snmot/gt.zip
6.7 模型推理
- 使用如下命令进行模型推理:
%cd ~/PaddleDetection!python tools/infer_mot.py \-c ./configs/snmot/fairmot/fairmot_dla34_30e_1088x608.yml \-o weights=./output/fairmot_dla34_30e_1088x608/model_final \--image_dir ./dataset/snmot/SNMOT/images/challenge/SNMOT-021/img1 \--frame_rate 25 \--output_dir ./output \--save_videos
6.8 更多详情
- 模型部署和更多使用指南请参考 PaddleDetection 官方文档
7. 参考
相关链接:
SoccerNet: Soccer Video Understanding Benchmark Suite
SoccerNet Tracking Official Website
SoccerNet Tracking Development Kit
PaddleDetection
多目标跟踪(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} }
此文仅为搬运,原作链接:https://aistudio.baidu.com/aistudio/projectdetail/4350452
基于 PaddleDetection 的 SoccerNet 多目标跟踪基线相关推荐
- 基于PaddleDetection的行车检测
基于PaddleDetection行车检测 效果展示:数据集检测精度和召回率要明显高于真实场景下的检测,尤其是召回率.因此在行车检测任务上,模型对视角的依赖程度仍然很大,对图像中的语义信息学习不够. ...
- 『PPYOLO tiny尝鲜』基于PaddleDetection的人脸疲劳检测
老规矩,先上 B站视频 AIStudio链接 背景介绍 背景一(老师的福音) 讲台上老师认真上课,口若悬河:讲台下同学频频点头,双目具闭! 45分钟是很紧张的,老师在这个时间段内需要把计划的教 ...
- 基于深度学习的多目标跟踪算法——ReID与MOT的联系
©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士 研究方向|多目标跟踪 最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的.如果 ...
- 基于深度学习的多目标跟踪:从UMA Tracker出发谈谈SOT类MOT算法
©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 之前的文章中我们介绍了联合检测和跟踪的多目标跟踪框架,这类框架最大优势在于可以利用优秀的检测器平衡不同观 ...
- 基于深度学习的多目标跟踪算法(上):端到端的数据关联
©PaperWeekly 原创 · 作者|黄飘 学校|华中科技大学硕士生 研究方向|多目标跟踪 最近基于深度学习的多目标跟踪算法越来越多,有用于特征提取的,有改进单目标跟踪器的,也有提升数据关联的.如 ...
- 百度李伟彬:基于PGL的图神经网络基线系统
不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...
- 基于paddledetection在ROS中搭建红绿灯检测控制车模运动(2)—— 数据集制作以及训练
前言 第一节: 基于paddledetection在ROS中搭建红绿灯检测控制车模运动(1)-- 环境搭建准备以及软件安装 第二节: 基于paddledetection在ROS中搭建红绿灯检测控制车模 ...
- agx 安装ros opencv_基于paddledetection在ROS中搭建红绿灯检测控制车模运动(1)
前言本来想直接用百度智能车比赛的数据集训练,但是发现在ROS中搭建红绿灯模型和提供的数据集在颜色亮度外形上都有点差别- -无奈从创建数据集开始.目录:基于paddledetection在ROS中搭建红 ...
- 基于paddledetection在ROS中搭建红绿灯检测控制车模运动(3)—— 使用训练结果在ros中仿真红绿灯控制小车运动
前言 第一节: 基于paddledetection在ROS中搭建红绿灯检测控制车模运动(1)-- 环境搭建准备以及软件安装 第二节: 基于paddledetection在ROS中搭建红绿灯检测控制车模 ...
最新文章
- Python入门100题 | 第076题
- linux 添加最大串口数量方法
- 机器学习003-Kernel
- eclipse下web开发中缓存问题
- Yet Another Array Partitioning Task CodeForces - 1114B(思维)
- XML文档注释(C#)
- java object转泛型_为什么Java的泛型要用擦除实现
- php mysql开发技术_PHP+MySQL开发技术详解—学习笔记
- TCP、UDP及IP协议总结
- vim 与 ascii 码表与可显示字符
- 虚拟机VMware的下载与安装——详细教程
- psp模拟器完美字库_安卓PSP模拟器评测:战神——斯巴达之魂
- 对图像 香农费诺编码 matlab 实现,香农编码费诺编码.doc
- matlab fprintf和disp,matlab中 fprintf 和disp的用法
- 开机直接进入键盘布局_开机怎么进入安全模式(windows10停留选择键盘布局)
- c语言 中文转拼音,汉字转换拼音解决思路
- 统计本段话的高频词汇——报错:KeyError
- excel中批量自动生成一个月内日期和时间
- BookKeeper源码解析之Bookie启动流程(一)
- 数据分析 和 PowerBI 和 DAX 的核心
热门文章
- java 读取dwg_Java 读取 dwg 转换 dxf
- Argument 2 passed to must be an instance of Illuminate\\Http\\Request, none given
- 一阶电路中的时间常数_一阶RC电路的时间常数为 ;一阶RL电路的时间常数为
- pytorch 动态调整学习率,学习率自动下降,根据loss下降
- 玩 High API 系列好文(一):智能客服、钉钉Ding功能、智能云相册、快速实现身份验证
- matlab画一维波动方程,一维波动方程的数值解
- RAM和ROM和Flash ROM的区别
- VUE cli3 脚手架循环展示多张图片
- Nature子刊:基于海马功能连接预测模型预测个体对压力的主观感受
- 解决mysql远程连接等待时间长的问题