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. 我已经喜欢上了Python
  2. 一位数据挖掘成功人士给数据挖掘在读研究生的建议
  3. 谷歌地球API相关网页翻译
  4. 页面多条件组合查询功能 代码 如何写效率高_Jeecg Boot 2.2 首个里程碑版本发布,低代码平台
  5. Harbor API整理:获取项目下的所有镜像
  6. LunarCalendarUtil
  7. Java实体映射工具MapStruct
  8. 打不开磁盘“D:\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。
  9. 三个关键词,看懂AI未来趋势丨不仅仅是高薪
  10. linux设置自动清除内存碎片
  11. 汽车车牌正则表达式验证,含新能源车牌(适用全国)
  12. 计算机系统应用 莫军,Configuration tool for ARINC 653 operating systems
  13. AI智能名片系统源码
  14. 神奇的λ-calculus
  15. 亚马逊 Alexa skill开发
  16. 游戏里经常有涉及用户排行榜(金币消费排行榜),怎么设计一个良好的排行榜。
  17. 内容推荐场景中自监督学习的应用
  18. i2c-tool使用详细说明
  19. 手机 音乐 推送 到 linux 播放器,很简单地解决了:用手机控制群晖播放音乐并推送到功放的问题...
  20. 82.Hive SQL插入动态分区的异常分析

热门文章

  1. WinGate使用说明
  2. Apple公司的官方声明
  3. qzezoj 1590 买玩具
  4. 角度制与弧度制的相互转换np.deg2radnp.rad2deg
  5. [计算机、网络相关历史]unix简史
  6. 苹果微信更新不了最新版本_教你安卓微信怎么更新到最新版本?
  7. cie规定的标准光源_标准光源
  8. Fourth Point !!
  9. 2021年美容师(初级)考试及美容师(初级)考试资料
  10. 汇编总结(2)——IA-32处理器基本功能