1. 介绍

  • 一个基于 PaddleClas 套件和 SoccerNet ReID 数据集开发的足球运动员重识别(ReID)的基线

  • 支持 ResNet、MobileNet 等多种经典 Backbone,模型训练、评估、推理和部署全流程支持

  • 项目 GitHub:jm12138/SoccerNet_ReID_PaddleClas

  • PS. 本项目运行需要极大的内存空间,需要使用至尊版(A100)环境才可以正常进行模型评估操作

2. 演示

  • ReID 即通过一个输入的 Query 图像,然后从图库(Gallery)寻找与之最相似的 N 个图像:

3. 目录

  • 本项目目录结构如下:

    • configs -> 模型配置文件

    • tools -> 训练和评估脚本

    • PaddleClas -> PaddleClas 套件源码

4. 数据

4.1 数据简介

  • SoccerNet Re-Identification (ReID) 数据集由 340.993 名球员缩略图组成,这些缩略图是从 6 个主要联赛的 400 场足球比赛的广播视频的图像帧中提取的。

  • 该挑战的目标是在多个摄像机视点中重新识别足球运动员,这些视点描绘了比赛中的相同动作。

  • 我们将广播视频中已看到动作的第一帧称为“动作帧”。

  • 描绘相同动作(在大致相同的时间戳)并在广播视频中稍后出现的其他帧称为“重播帧”。

  • 挑战的目标是在不同的重播帧中重新识别动作帧中的每个足球运动员。

  • 为此,给定操作帧中的每个边界框将被视为查询,来自相应重播帧的边界框将根据其到每个查询的距离进行排名。

  • SoccerNet ReID数据集分为训练,验证,测试和挑战集。

  • 挑战集的标签是保密的,因为挑战的参与者将根据他们在挑战上的表现进行排名。

  • 挑战赛的获胜者将是挑战赛中 mAP 得分最高的参赛者。

  • 与传统的街道监控类型再识别数据集相比,SoccerNet-v3 ReID数据集特别具有挑战性,因为来自同一支球队的足球运动员具有非常相似的外表,这使得很难区分他们。

  • 另一方面,每个标识都有一些样本图像分辨率有很大的差异,这使得模型更难训练。

    重要说明:
    玩家身份标签派生自操作中边界框之间的链接,仅在给定操作中有效。
    所以玩家身份标签在操作中不成立,并且给定的玩家对于他被发现的每个操作都有不同的身份。
    因此,在评估过程中,只有同一操作中的样本相互匹配。
    在训练阶段,参与者需要实施策略,以减轻来自不同动作的图像样本的负面影响,这些动作描绘了同一名球员,但用不同的身份标记。

4.2 数据格式

  • ReID 数据集以缩略图形式储存,样例如下:





  • 真实值和检测结果存储在逗号分隔的 txt 文件中,共 10 列,样例如下:

    {"0": {"bbox_idx": 0,"action_idx": 0,"person_uid": 0,"frame_idx": 0,"clazz": "Player_team_left","id": "None","UAI": "000r000_004597cb000d","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 74,"width": 32},"1": {"bbox_idx": 1,"action_idx": 0,"person_uid": 1,"frame_idx": 0,"clazz": "Player_team_left","id": "None","UAI": "000r000_004597cb000e","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 51,"width": 20},"2": {"bbox_idx": 2,"action_idx": 0,"person_uid": 2,"frame_idx": 0,"clazz": "Player_team_left","id": "b","UAI": "000r000_004597cb000f","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 63,"width": 24},"3": {"bbox_idx": 3,"action_idx": 0,"person_uid": 3,"frame_idx": 0,"clazz": "Player_team_left","id": "2","UAI": "000r000_004597cb0010","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 75,"width": 31},"4": {"bbox_idx": 4,"action_idx": 0,"person_uid": 4,"frame_idx": 0,"clazz": "Player_team_left","id": "g","UAI": "000r000_004597cb0011","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 64,"width": 41},"5": {"bbox_idx": 5,"action_idx": 0,"person_uid": 5,"frame_idx": 0,"clazz": "Player_team_left","id": "f","UAI": "000r000_004597cb0012","relative_path": "england_epl/2014-2015/2015-02-21 - 18-00 Chelsea 1 - 1 Burnley/0","height": 67,"width": 20}...
    }
    
  • 数据集符合 MOT20 格式要求,由于某些值未使用,所以被标注为 -1

4.3 数据结构

  • Soccernet-v3 ReID 数据集被组织在如下的树文件夹结构中:

    root -> {train, valid, test, challenge} -> championship -> season -> game -> action -> image files

6. 使用

6.1 克隆源码

%cd ~
!git clone https://gitee.com/PaddlePaddle/PaddleClas!cp -r configs PaddleClas/ppcls
!cp -r tools PaddleClas

6.2 安装依赖

%cd ~/PaddleClas!pip install -r requirements.txt

6.3 数据解压

%cd ~/PaddleClas
!mkdir ~/PaddleClas/dataset/SNReID!unzip -q ~/data/data159534/challenge.zip -d ~/PaddleClas/dataset/SNReID
!unzip -q ~/data/data159534/test.zip -d ~/PaddleClas/dataset/SNReID
!unzip -q ~/data/data159534/valid.zip -d ~/PaddleClas/dataset/SNReID
!unzip -q ~/data/data159534/train.zip -d ~/PaddleClas/dataset/SNReID

6.4 模型训练

  • 指定配置文件进行模型训练
%cd ~/PaddleClas
!python tools/train_snreid.py -c ppcls/configs/snreid/baseline.yaml

6.5 模型验证

  • 根据官方评估脚本进行修改

  • 使用如下命令实现模型精度评估:

!%cd ~/PaddleClas
!python tools/eval_snreid.py -c ppcls/configs/snreid/baseline.yaml -o Global.pretrained_model=./output/RecModel/latest
[2022/08/10 00:17:01] ppcls INFO: [Eval][Epoch 0][Avg]mAP: 0.57672, rank-1: 0.45455

6.6 模型推理

6.6.1 导出推理模型

  • 模型推理之前需要导出推理模型

  • 使用如下命令进行模型导出:

!%cd ~/PaddleClas
!python tools/export_model.py -c ppcls/configs/snreid/baseline.yaml -o Global.pretrained_model=./output/RecModel/latest

6.6.2 获取特征向量

  • 通过导出的推理模型,就可以输入照片然后得到这张图片所对应的特征向量

  • 这个特征向量可以在高纬度的向量空间中描述不同图片的相似程度

  • 然后通过一些向量检索的方法就可以实现 ReID 功能了

%cd ~/PaddleClas/deploy!python python/predict_rec.py \-c ../ppcls/configs/snreid/inference.yaml \
ml \-o Global.rec_inference_model_dir="../inference"

6.7 更多详情

  • 模型部署和更多使用指南请参考 PaddleClas 官方文档

7. 参考

  • 相关链接:

    • SoccerNet: Soccer Video Understanding Benchmark Suite

    • SoccerNet ReID Official Website

    • SoccerNet ReID Development Kit

    • PaddleClas

    声明

    此项目为搬运
    原项目链接

基于 PaddleClas 的 SoccerNet 足球 ReID 基线相关推荐

  1. 基于深度学习的行人Re-ID问题的综述和展望

    基于深度学习的行人Re-ID问题的综述和展望 写在前面: 写完之后发现git上作者给了一个在知乎发表的官方论文介绍,官方中文概述 我做的稍微详细一点,可以跟官方的对比着看,如有错误请指正. 主要概括: ...

  2. java校园足球管理系统_基于jsp的校园足球管理平台-JavaEE实现校园足球管理平台 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的校园足球管理平台, 该项目可用各类java课程设计大作业中, 校园足球管理平台的系统架构分为前后台两部分, 最终实 ...

  3. 【AI达人创造营第二期】基于PaddleClas的新冠肺炎CT影像的分类

    转自AI Studio,原文链接:[AI达人创造营第二期]基于PaddleClas的新冠肺炎CT影像的分类 - 飞桨AI Studio 一.项目背景 新近爆发的2019新型冠状病毒(SARS-CoV- ...

  4. android 疯狂足球原码,基于Android的疯狂足球游戏源代码

    基于Android的疯狂足球游戏源代码. 相关文件下载在Linux公社的1号FTP服务器里,下载地址: 用户名:www.linuxidc.com 密码:www.muu.cc 在 2011年LinuxI ...

  5. 基于BP神经网络的足球结果预测软件开发

    基于BP神经网络的足球结果预测软件开发 一.问题描述 足球,被称为世界第一运动.足球比赛充满了对抗.力量.激情,比赛过程跌宕起伏,结果难以预测.随着人工智能时代的 到来,越来越多的人期望于将智能算法应 ...

  6. 基于 PaddleDetection 的 SoccerNet 多目标跟踪基线

    1. 介绍 一个基于 PaddleDetection 套件和 SoccerNet Tracking 数据集开发的足球和足球运动员多目标跟踪(MOT)的基线 包含 DeepSort.ByteTrack. ...

  7. 基于深度学习的Person Re-ID(综述)

    一. 问题的提出 Person Re-ID 全称是 Person Re-Identification,又称为 行人重检测 or 行人再识别,直观上可以通过两种思路进行比对,一种是 通过 静态图像(st ...

  8. 基于深度学习的Person Re-ID(特征提取)

    一. CNN特征提取 通过上一篇文章的学习,我们已经知道,我们训练的目的在于寻找一种特征映射方法,使得映射后的特征 "类内距离最小,类间距离最大",这种特征映射 可以看作是 空间投 ...

  9. 基于asp.net校园足球赛事管理系统-计算机毕业设计

    项目介绍 大量学校将校园足球管理平台投入使用后,增加了管理者的工作范围.校园足球管理除了要对赛事数据信息和赛程表信息进行管理外,以及完善队员和足球的基本信息等方面的具体信息.系统使用Visual st ...

最新文章

  1. YOLOX:高性能目标检测的最新实践 | 报告详解
  2. C语言 下标运算符和指针运算符
  3. java yml 转 map_如何在Java中将YAML转换为JSON?
  4. Windows7系统技巧:常用的10个快捷键
  5. 深入了解Oracle IDM审核
  6. winform窗体数据的添加 1217
  7. android用上传图片到服务器上,Android使用post方式上传图片到服务器的方法
  8. eslint的安装与使用
  9. Android--布局
  10. NSIS安装或卸载时检查程序是否正在运行
  11. 【对抗攻击代码实战】对抗样本的生成——FGSM
  12. VS语音信号处理(1) C语言读取WAV语音文件文件头数据
  13. JDownloader 2 for Mac(不限速下载工具)
  14. 三级模式两级映像/数据库系统结构
  15. S2B2B-云分销系统介绍
  16. 【ACWing】1489. 田忌赛马
  17. The authentication type 10 is not supported
  18. 机器学习----人脸对齐的算法-ASM.AAM..CLM.SDM
  19. 茄子总结31/8/2022
  20. Android4.0的StatusBar和NavigationBar

热门文章

  1. 白硕:背靠背知识协同——区块链与人工智能结合的新途径
  2. Antd 表格 ellipsis属性兼容性问题
  3. Tableau实战 石油产量与收入分析(一二三)汇总制作仪表盘
  4. python开发mes系统_MES系统开发手记(一)
  5. 阿里云国际站有什么优势吗?
  6. CreateEvent()的参数说明
  7. 宝塔实测-PHP网页版在线客服系统源码
  8. vue中的slot(插槽)详解
  9. 高通再次「押宝」中科创达,挑战智能驾驶软硬件全栈方案
  10. 控制台快速理解简单工厂