接下来,本文将从“卡塔尔世界杯官方半自动越位技术分析”和“自行搭建3D+AI足球量化分析系统”两个方面来讨论AI技术在足球运动中的应用思路。
卡塔尔世界杯官方
半自动越位技术分析
根据FIFA官网的介绍,每个体育场有12个专用跟踪摄像头,以50Hz的频率,运用深度学习算法跟踪球和每个球员29个骨骼关键点。
通过应用AI技术追踪球员的骨骼关键点和足球数据,每当球被处于越位位置的进攻球员接球时,系统会向视频操作室内的视频裁判提供越位报警。在通知现场裁判之前,视频裁判通过系统自动计算出的越位线以及踢球点进行人工检查判断,这个过程在几秒内就可以完成,这意味着裁判可以更快、更准确地做出越位决定。
在得到场上裁判的确认后,系统会将当时的球员关键点、位置等数据渲染生成3D动画。该动画详细展示了踢球时球员四肢的位置,并提供查看越位情况的最佳视角,随后该动画将在体育场的屏幕上进行播放,同时推送给转播方,以最清晰的方式告知所有观众。
自行搭建
央视《足球盛宴》片段,百度智能云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技术的实时性要求不言而喻。
运行代码
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
骨骼关键点检测
人体骨骼点检测即人体关键点检测。足球比赛的规则判罚中,球员身体的各部位都会被关注,如禁区是否手球。在越位判断时,除了手臂之外,其他部位都会关注到。通过目标检测定位到球员在画面的位置后,需要进行球员的骨骼点检测。
骨骼关键点检测运行结果
目标追踪
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
以上就是3D+AI技术定量分析,相信这样的量化数据不仅对电视转播有用,对于各球队的录像分析师来说,更是一大利器。在1/4决赛的两场比赛中,夺冠热门巴西与克罗地亚、荷兰与阿根廷都踢到了点球大战。对于职业的球队来说,针对对方主要点球手的习惯分析已经很常见了,但由机器自动计算,并且要精确到球员助跑步数、射门角度这种统计维度的估计很少。试想,当球队踢到了轮盘赌这种局面,如果能在赛前掌握更多的数据给到门将,门将扑点成功的概率会不会更大?
除了上述分析的两项应用AI视觉技术的案例外,实际上,本届世界杯还有其他地方也运用到了AI技术。如相对成熟的人脸识别验票、球馆内是否有球迷抽烟、多哈街头上监控球迷是否有打架行为等各种用于安防的AI视觉应用,这些功能实现可以参考PaddleDetection里的PP-Human行人分析工具。
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
接下来,本文将从“卡塔尔世界杯官方半自动越位技术分析”和“自行搭建3D+AI足球量化分析系统”两个方面来讨论AI技术在足球运动中的应用思路。
卡塔尔世界杯官方
半自动越位技术分析
根据FIFA官网的介绍,每个体育场有12个专用跟踪摄像头,以50Hz的频率,运用深度学习算法跟踪球和每个球员29个骨骼关键点。
通过应用AI技术追踪球员的骨骼关键点和足球数据,每当球被处于越位位置的进攻球员接球时,系统会向视频操作室内的视频裁判提供越位报警。在通知现场裁判之前,视频裁判通过系统自动计算出的越位线以及踢球点进行人工检查判断,这个过程在几秒内就可以完成,这意味着裁判可以更快、更准确地做出越位决定。
在得到场上裁判的确认后,系统会将当时的球员关键点、位置等数据渲染生成3D动画。该动画详细展示了踢球时球员四肢的位置,并提供查看越位情况的最佳视角,随后该动画将在体育场的屏幕上进行播放,同时推送给转播方,以最清晰的方式告知所有观众。
自行搭建
央视《足球盛宴》片段,百度智能云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技术的实时性要求不言而喻。
运行代码
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
骨骼关键点检测
人体骨骼点检测即人体关键点检测。足球比赛的规则判罚中,球员身体的各部位都会被关注,如禁区是否手球。在越位判断时,除了手臂之外,其他部位都会关注到。通过目标检测定位到球员在画面的位置后,需要进行球员的骨骼点检测。
骨骼关键点检测运行结果
目标追踪
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
以上就是3D+AI技术定量分析,相信这样的量化数据不仅对电视转播有用,对于各球队的录像分析师来说,更是一大利器。在1/4决赛的两场比赛中,夺冠热门巴西与克罗地亚、荷兰与阿根廷都踢到了点球大战。对于职业的球队来说,针对对方主要点球手的习惯分析已经很常见了,但由机器自动计算,并且要精确到球员助跑步数、射门角度这种统计维度的估计很少。试想,当球队踢到了轮盘赌这种局面,如果能在赛前掌握更多的数据给到门将,门将扑点成功的概率会不会更大?
除了上述分析的两项应用AI视觉技术的案例外,实际上,本届世界杯还有其他地方也运用到了AI技术。如相对成熟的人脸识别验票、球馆内是否有球迷抽烟、多哈街头上监控球迷是否有打架行为等各种用于安防的AI视觉应用,这些功能实现可以参考PaddleDetection里的PP-Human行人分析工具。
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