1. 介绍

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 ResNet101PPLCNet 模型。

    在这里插入图片描述

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. 参考

  • 相关链接:

  • 论文引用:

    @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

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐