\u200E
世界杯决赛号角吹响!趁周末来搭一套足球3D+AI量化分析系统吧!
发布日期:2022-12-22T06:10:46.000+0000 浏览量:1641次


2022年卡塔尔世界杯从11月21日开赛至今,即将在12月18日迎来这次赛事的最后高潮。
对于大部分热爱世界杯的朋友来说,无论之前是哪队的球迷,现在都在会师决赛的两支队伍上选择站队。从赛事结果看,最终无论哪支队伍夺冠,都会成为创造历史或极具故事性的一支队伍。是法国队成为世界杯首支卫冕冠军?还是梅西带领阿根廷队夺冠成为球王?让我们拭目以待!

另外,从整个赛事组织层面看,在2000亿多美元的办赛经费加持下,卡塔尔不再只展示土豪气质,更是展示了科技办赛的内涵。纵观赛场内外,处处彰显着硬核科技。如场馆内的空调系统、赛场上的VAR、半自动越位技术等多项科技。

接下来,本文将从“卡塔尔世界杯官方半自动越位技术分析”和“自行搭建3D+AI足球量化分析系统”两个方面来讨论AI技术在足球运动中的应用思路。



卡塔尔世界杯官方

半自动越位技术分析

半自动越位技术(Semi-automated offside technology)可以说是本届卡塔尔世界杯的一大热点。自首场揭幕战亮相后,就一直争议不断、褒贬不一。抛开这项技术对足球赛事观赛体验和判罚结果的利弊影响,单从技术角度看,这项工作还是有很多可圈可点的地方。

根据FIFA官网的介绍,每个体育场有12个专用跟踪摄像头,以50Hz的频率,运用深度学习算法跟踪球和每个球员29个骨骼关键点。

卡塔尔世界杯光学跟踪系统 图片来源:FIFA官网
本届卡塔尔世界杯的官方比赛用球是阿迪达斯的AI Rihla。球中心装有惯性测量单元 (IMU) 传感器,通过场内的超宽带(UWB)技术,以500Hz的频率发送足球的位置、速度、角速度、加速度等信息。
卡塔尔世界杯比赛用球 图片来源:FIFA官网

通过应用AI技术追踪球员的骨骼关键点和足球数据,每当球被处于越位位置的进攻球员接球时,系统会向视频操作室内的视频裁判提供越位报警。在通知现场裁判之前,视频裁判通过系统自动计算出的越位线以及踢球点进行人工检查判断,这个过程在几秒内就可以完成,这意味着裁判可以更快、更准确地做出越位决定。

在得到场上裁判的确认后,系统会将当时的球员关键点、位置等数据渲染生成3D动画。该动画详细展示了踢球时球员四肢的位置,并提供查看越位情况的最佳视角,随后该动画将在体育场的屏幕上进行播放,同时推送给转播方,以最清晰的方式告知所有观众。

越位判断 图片来源:FIFA官网

自行搭建

3D+AI足球量化分析系统
足球作为世界第一大运动,其职业化与专业化程度不仅仅体现在赛场上球员的高光表现、教练的运筹帷幄,还体现在电视转播技术、录像分析技术上。2022卡塔尔世界杯期间,百度智能云继以“3D+AI”技术助力央视总台北京冬奥会期间特别节目《奥秘无穷》、《荣誉殿堂》之后,再次与总台王牌世界杯专题节目《足球盛宴》(原《豪门盛宴》)达成技术合作。通过对高光视频片段的3D+AI技术量化分析,让球迷朋友拥有专业分析师的视角。下面以荷兰加克波的运动战进球进行案例分析,先展示一下Demo效果:

央视《足球盛宴》片段,百度智能云3D+AI技术赋能

上述3D+AI技术量化分析的实现,其技术细节由飞桨开源的目标检测套件PaddleDetection和针对体育领域的开源套件PaddleSports实现,覆盖了计算机视觉里面的目标检测、人体关键点检测、目标追踪、三维重建等各项视觉任务。
本节将介绍如何利用PaddleDetection和PaddleSports快速搭建一套AI足球分析系统,该系统除包括Demo里面的3D+AI量化分析外,还有球员和足球的检测与轨迹追踪、球员号码识别、球员高亮、球员骨骼点追踪等功能。

首先克隆代码仓库获取源代码

  • 克隆仓库

   
     
git clone https://github.com/PaddlePaddle/PaddleDetection.git
git clone https://github.com/PaddlePaddle/PaddleSports.git
注:篇幅所限,以下仅展示关键代码,完整代码请参考源码。


目标检测

无论是球员的骨骼数据追踪、还是球员号码识别与球员高亮,都离不开对球场要素(运动员、球等对象)的检测。而在世界杯赛场的场景下,目标检测有以下难点:

难点一:检测对象相似且遮挡。 同队球员着装相同,排人墙时人挤人,位置拥挤,存在视觉遮挡;

难点二:检测对象尺寸较小。球场的摄像头大部分都是在球场上空,从转播画面也能看到,无论是球员还是球在视频面上都显得很小,这就带来了小目标检测的难点;(关于小目标检测可查看往期推文:Yes, PP-YOLOE!80.73mAP、38.5mAP,旋转框、小目标检测能力双SOTA!

难点三:高精度与实时性双高要求。世界杯的判罚容错率要求小于1%,同时比赛在实时进行与转播,这对AI技术的实时性要求不言而喻。

PaddleDetection自身推出的PP-YOLOE+以及针对小目标检测的smalldet在世界杯场景下有较好的效果。

运行代码

  • 球员检测
   
     
python pipeline/pipeline.py \
--config pipeline/config/infer_cfg_pphuman_player.yml \
--image_file=path_to_your_image \
--device=gpu \
--output_dir=output/player

球员检测代码运行结果

  • 足球检测
   
     
python pipeline/pipeline.py \
--config pipeline/config/infer_cfg_pphuman_football.yml \
--image_file=path_to_your_image \
--device=gpu \
--output_dir=output/football
足球检测代码运行结果



骨骼关键点检测

人体骨骼点检测即人体关键点检测。足球比赛的规则判罚中,球员身体的各部位都会被关注,如禁区是否手球。在越位判断时,除了手臂之外,其他部位都会关注到。通过目标检测定位到球员在画面的位置后,需要进行球员的骨骼点检测。

关键点检测分自上而下自下而上两种方法:
  • 自上而下(Top-Down):这种方法包括两部分,先进行人体的目标检测,再裁剪出人体的边界框进行关键点检测。
  • 自下而上(Bottom-Up):这种方法也包括两部分,关键点检测以及关键点聚类。关键点检测将图片中所有类别的关键点全部检测出来,然后对这些关键点进行聚类处理,将不同人的不同关键点连接在一块,从而聚类产生不同的个体。
长期以来,关键点的检测一直存在一个难题,即精度高,速度则慢,算法体积也随之增加。在足球场上的关键点检测技术面临着目标小、被遮挡的问题同时,也追求高精度、实时性。同时,也面临多人关键点检测的问题。PaddleDetection的PP-TinyPose实现了速度在FP16,122FPS的情况下,精度可达到51.8%AP,不仅比其他类似实现速度更快,精度更是提升了130%。另外,在微小目标以及多人目标的问题上,也做了一系列的优化。(具体可查看往期推文 122FPS、51.8%AP的超轻量关键点算法PP-TinyPose来啦!
骨骼点的检测需要输入视频,运行代码可参考后面目标追踪模块,其效果图如下:

骨骼关键点检测运行结果


目标追踪

目标追踪可以识别和跟踪属于一个或多个类别的对象(即,行人、动物、汽车等)。与目标检测算法不同(即,输出是所识别的矩形边界框的一组坐标、高度和宽度),目标追踪算法还必须将对象ID与每个框相关联,以区分每个类中的对象。
在体育领域,对自动识别和目标追踪技术的需求日益增长。例如,通过目标追踪技术可以检测和分类运动员,跟踪运动员或运动中的球,并预测其轨迹,配合导播镜头,使转播画面更加真实。我们用PaddleDetection特色PP-Tracking追踪算法,分别运行以下Demo。
  • 足球轨迹追踪
   
     
python pipeline/pipeline.py \
--config pipeline/config/infer_cfg_pphuman_football.yml \
--draw_center_traj \
--video_file=path_to_your_video \
--device=gpu \
--output_dir=output/football

足球轨迹追踪代码运行结果

  • 球员号码识别跟踪
   
     
python pipeline/pipeline.py \
--config pipeline/config/infer_cfg_pphuman_player.yml \
--video_file=path_to_your_video \
--device=gpu \
--output_dir=output/player \
--player_recognize True

球员号码识别跟踪代码运行结果

  • 球员高亮跟踪
   
     
python pipeline/pipeline.py \
--config pipeline/config/infer_cfg_pphuman_player.yml \
--video_file=path_to_your_video \
--device=gpu \
--output_dir=output/player \
--link_player 1 5 54 10

球员高亮跟踪代码运行结果

  • 球员及骨骼点关键点跟踪
   
     
python pipeline\pipeline.py \
--config pipeline/config/infer_cfg_pphuman_player.yml \
--video_file=path_to_your_video \
--device=gpu \
--output_dir=output/player

球员及骨骼关键点跟踪代码运行结果



定量分析

在基于上述对球场要素的检测、追踪的信息下,还需要对高光视频段进行量化分析。首先,国际比赛的足球场标准一般是固定的,包括长、宽、大小禁区、中圈等要素。

因此,在量化分析时,我们可以根据对球员的追踪定位得到的图像坐标与这些参照物的相对距离,通过张氏标定法、PNP算法等反解出相机的内外参得到实际的距离(在此不展开,想了解更多可前往文末代码库链接)。

足球场参数 图片来源: Wikipedia

如下,在回放进球的视频段中,通过不同转播视角的图像,利用张氏标定法计算相机内参、以及单张图PNP计算外参。然后将球员在图像里的坐标与大禁区线的相对距离推算直线跑动距离约14米。同时,根据视频段的起始时间,得知这个过程经历了约2.3秒,算出球员带球平均速度约6米/秒,即20千米/小时。

以上就是3D+AI技术定量分析,相信这样的量化数据不仅对电视转播有用,对于各球队的录像分析师来说,更是一大利器。在1/4决赛的两场比赛中,夺冠热门巴西与克罗地亚、荷兰与阿根廷都踢到了点球大战。对于职业的球队来说,针对对方主要点球手的习惯分析已经很常见了,但由机器自动计算,并且要精确到球员助跑步数、射门角度这种统计维度的估计很少。试想,当球队踢到了轮盘赌这种局面,如果能在赛前掌握更多的数据给到门将,门将扑点成功的概率会不会更大?

除了上述分析的两项应用AI视觉技术的案例外,实际上,本届世界杯还有其他地方也运用到了AI技术。如相对成熟的人脸识别验票、球馆内是否有球迷抽烟、多哈街头上监控球迷是否有打架行为等各种用于安防的AI视觉应用,这些功能实现可以参考PaddleDetection里的PP-Human行人分析工具。

本周之后,卡塔尔世界杯将圆满落幕。毫无疑问,本届世界杯无论从赛场内外、热点、花边都极具故事性与历史性。相信走到最后的两支队伍,在决赛的赛场上,无关乎纸面实力,无关乎历史战绩,只有国家荣誉,个人梦想。在足球场上,势必寸土必争。巅峰之战一触即发,我们一起期待。
以上涉及到的代码均可在如下代码仓库中找到,欢迎star关注!
  • PaddleDetection
    https://github.com/PaddlePaddle/PaddleDetection
  • PaddleSports

    https://github.com/PaddlePaddle/PaddleSports

参考

  • https://www.fifa.com/technical/football-technology/football-technologies-and-innovations-at-the-fifa-world-cup-2022/semi-automated-offside-technology

  • https://tiyu.baidu.com/match/%E4%B8%96%E7%95%8C%E6%9D%AF/tab/%E6%8E%92%E5%90%8D/childTab/matchUp

  • https://github.com/KirigiriSuzumiya/Sports_Game_Tracker

  • https://en.wikipedia.org/wiki/Football_pitch



关注【飞桨PaddlePaddle】公众号
获取更多技术内容~