云端高尔夫球位置追踪系统

关键要点

PGA巡回赛正在通过实时数据提升观众的高尔夫体验,正在开发一套新一代云端高尔夫球位置追踪系统,能够自动跟踪球在果岭上的位置。该系统结合了计算机视觉和机器学习技术,以提供更丰富的观赛体验。

PGA巡回赛不断通过实时数据提升高尔夫体验,让球迷更贴近比赛。为了提供更丰富的体验,PGA巡回赛正在开发一套新一代的高尔夫球位置追踪系统,能够自动追踪球在果岭上的位置。

目前,巡回赛使用由CDW支持的ShotLink,这是一种复杂的摄像系统,能够准确地跟踪每次击球的起始和结束位置。巡回赛希望利用计算机视觉和机器学习ML技术,开发一个基于云的下一个球位置追踪系统。

亚马逊生成AI创新中心GAIIC展示了这些技术在最近一次PGA巡回赛事件的示例数据集中的有效性。GAIIC设计了一种模块化管道,串联一系列深度卷积神经网络CNN,成功地在摄像机视野内定位球员,判断谁在推杆,并在球朝向球洞移动时进行追踪。

在本文中,我们将介绍这一管道的开发过程、原始数据、构成管道的卷积神经网络设计及其性能评估。

数据

巡回赛提供了三台4K摄像头从某个洞口连续拍摄的三天视频。如下图所示,图中裁剪和放大了一帧画面,以便清楚可见正在推杆的球员。尽管摄像头分辨率很高,由于距离果岭较远,球的大小通常为33、44或55像素,对于这样的小目标进行准确的定位非常困难。

云端的球位追踪与PGA TOUR 机器学习博客

除了摄像头数据,巡回赛还提供了每次击球的带注释的得分数据,包括球的静止位置和时间戳。这使得我们能够可视化每一次推杆的路径,并提取球员推杆的视频片段,以供手动标注并用于训练构成管道的检测模型。下图展示了三种摄像头的视图及大致推杆路径,图中编号为蓝色、红色和橙色,分别对应第一天、第二天和第三天。

闪连加速器

管道概述

整个系统由训练管道和推理管道组成。下图展示了训练管道的架构。起始点为视频数据摄取,既可以通过亚马逊Kinesis等流媒体模块用于现场直播,或直接存放于亚马逊简单存储服务S3中用于历史视频。训练管道需要进行视频预处理,并通过亚马逊SageMaker Ground Truth对图像进行手动标注。模型可以用亚马逊SageMaker进行训练,并将其工件存储在亚马逊S3中。

推理管道如下面的图所示,包括多个模块,依次从原始视频中提取信息,并最终预测球的静止世界坐标。最初,从每个摄像机的广角视图中裁剪出果岭区,以减少模型搜索球员和球的像素区域。接下来,使用深度卷积神经网络CNN寻找视野内的人。而后,另一个CNN用于预测找到的对象是哪个人,以确定任何人是否正在推杆。在找到可能的推杆者后,使用同一网络来预测球的位置。第三个CNN则负责在球运动期间进行追踪,最后通过一个变换函数将摄像机像素位置转换为GPS坐标。

球员检测

尽管可以在设置的间隔内对整张4K图像运行CNN进行球的检测,但考虑到摄像头的角度,任何小型白色物体都会触发检测,从而导致许多误报。为避免在整个图像中寻找球,可以利用球员姿势与球位置之间的相关性。因为待推杆的球必须靠近球员,所以在视野中查找到球员将大大限制检测器搜索球的像素区域。

我们能够使用一个预训练CNN来预测场景中所有人的边界框,如下图所示。不幸的是,果岭上通常会有多个球,因此除了简单查找所有人和搜索球之外,还需要进一步的逻辑。这就要求另一个CNN定位当前正在推杆的球员。

球员分类与球检测

为了进一步缩小球的可能位置,我们对预训练的物体检测CNNYOLO v7进行了微调,以识别果岭上的所有人。这一过程的重要组成部分是使用SageMaker Ground Truth手动标注一组图像。标签使CNN能够高准确率地分类正在推杆的球员。在标注过程中,球与正在推杆的球员一起被勾画出来,因此该CNN在推杆之前能够对球进行初步检测,并将位置信息反馈到下游球追踪CNN。

我们使用四个不同的标签对图像中的对象进行标注:

正在推杆的球员 手握球杆且处于推杆位置的球员未推杆的球员 不在推杆位置的球员也可能握着球杆其他人 不是球员的其他人高尔夫球 高尔夫球

下图显示了CNN通过SageMaker Ground Truth的标签微调以分类视野中的每个人。这一过程非常复杂,因为球员、球童和观众的视觉外观差异很大。在球员被判定为推杆之后,将专用的球检测CNN应用于该球员的周围小区域。

球的路径追踪

第三个CNN使用预训练的ResNet架构进行运动追踪,能够在推杆后准确跟踪球。运动追踪是一个深受研究的问题,因此该网络在管道中集成时表现良好,无需进一步微调。

管道输出

这系列CNN在人周围放置边界框、对果岭上的人进行分类、检测初始球位置,并在球开始运动时进行追踪。下图展示了管道的标注视频输出。球运动时的像素位置被追踪并记录。需要注意的是,果岭上的人被追踪并用边界框标出;底部的推杆者被正确标记为“正在推杆的球员”,而球的运动被小蓝边框追踪并标示。

性能

为了评估管道各部分的性能,需要有标注数据。虽然我们得到了球的世界位置的真实值,但我们没有中间点的真实路径,比如球的最终像素位置或正在推杆的球员的像素位置。通过我们进行的标注工作,我们开发了这些中间输出的真实数据,以便衡量性能。

球员分类与球检测准确性

为了检测正在推杆的球员和初始球位置,我们标注了一组数据集,并如前所述微调了YOLO v7 CNN模型。该模型将上一检测模块的输出分类为四个类别:正在推杆的球员、未推杆的球员、其他人和高尔夫球,如下图所示。

本模块的性能通过混淆矩阵评估,如下图所示。对角框中的值表示预测类别与来自真实标签的实际类别匹配的频率。模型在每个球员类别上有89或更高的召回率,而对于高尔夫球的召回率为79因为该模型是基于球员的例子预训练的,而高尔夫球的例子则相对较少;通过增加带标签的高尔夫球样本可以提高效果。

下一步是触发球追踪器。由于球检测的输出为一个置信概率,也可以设置“检测到的球”的阈值,以观察如何影响结果,汇总在下图中。这种方法有取舍,因为较高的阈值虽然能减少误报,但也可能漏掉一些不太确定的球。我们测试了20和50置信度的阈值,发现球的检测率分别为78和61。以此指标,20阈值更佳。显而易见,20置信度时,80的总检测结果实际上是球20误报,而在50时,90为球10误报。若要减少误报,50置信度阈值更好。通过增加更多的标注数据,两个指标都可以得到提升。

检测管道的吞吐量约为每秒10帧,因此,在现有形式下,单台实例无法以每秒50帧的速度持续运行输入。要在球被击打后达到输出的7秒阈值,可能需要进一步优化延迟,比如通过并行运行多个版本的管道,并通过量化压缩CNN模型实现。

球的路径追踪准确性

来自MMTracking的预训练CNN模型表现良好,但也有一些有趣的失败案例。下图展示了一个案例,跟踪器开始跟随球,扩展其边界框以包含推杆头与球,但不幸的是跟踪了推杆头而忘记了球。在这种情况下,推杆头显得很白可能是由于光泽反射,因此造成这种混淆是可以理解的;未来通过标注数据及微调跟踪CNN可以改善这一问题。

结论

在本文中,我们讨论了开发一个模块化管道的过程,该管道能够在摄像机的视野中定位玩家,判断哪个球员在推杆,并追踪球在移动中的路径。

有关AWS与PGA巡回赛合作的更多信息,请参考PGA巡回赛与AWS联合重塑观赛体验。

了解作者

James Golden 是亚马逊Bedrock的应用科学家,专攻机器学习与神经科学领域。

Henry Wang 是亚马逊生成AI创新中心的应用科学家,专注于研究和构建面向AWS客户的生成AI解决方案,曾与多家体育联盟、球队及广播商合作并在空闲时间喜爱打网球和高尔夫。

Tryambak Gangopadhyay 是AWS生成AI创新中心的应用科学家,负责与多个行业的组织合作,进行研究并开发生成AI解决方案,以应对重要的商业挑战并加速AI的应用。