用于乒乓球运动分析的深度网络TTNet解读
作者:互联网
用于乒乓球运动分析的深度网络TTNet解读
深度学习与乒乓球运动分析的有趣融合
首先,这是基于深度学习的计算机视觉分析方法在某个领域的一种新奇应用,是多种子任务的集合和集大成者。个人认为最大的贡献不在于技术点的创新,而在于集成了计算机视觉任务在某一特定领域的应用,并集成进一个网络,对我们造成的启发。
为了解决乒乓球运动分析中的多种问题,包括目标检测、语义分割、时序事件分析等,来自南韩osai的作者提出一个轻量的多任务神经网络 TTNet: Real-time temporal and spatial video analysis of table tennis,使用一种端到端的方式,对这些问题使用一个网络进行解决。(链接:https://arxiv.org/abs/2004.09927)。
因为本人对乒乓球这项运动比较感兴趣,同时在视觉方面又有一些粗浅的经验,因此大致地过了一下这篇文章。
问题难点
基于深度学习的乒乓球运动分析中存在一些难点,例如:
- 相对于运动员、裁判来说,乒乓球很小,在画面中占像素很少;
- 在画面背景、运动员衣服中容易出现类似乒乓球的目标图案,造成误检;
- 专业比赛中乒乓球球速较快。因此需要对高帧率数据数据进行处理,去获取乒乓球轨迹;
- 最后数据集的缺乏也是一个很大的问题。
相关工作
首先与乒乓球先关的计算机视觉分析很少,而且主要集中在球的位置检测及定位方面。而对赛事的分析,不仅需要球的位置,还需要外界环境信息,并对多种信息进行融合处理,最后才能综合得出比赛状态。
OpenTTGames数据集
这一任务首先要解决的就是特定数据集缺乏的问题。因此作者组建了一个包含38752个训练样本、9502个验证样本、7328个测试样本的数据集。数据集的标注包括乒乓球的位置坐标、分割模板、以及比赛的状态信息。
提出的方法
设计的TTNet出入是1920*1080的图像,输出特定事件的概率、乒乓球位置、以及球桌、运动员、裁判、得分板的分割信息。网络整体结构如图所示:
-
乒乓球检测
球的位置检测方面会有几个问题:首先作者假设了图像帧中只有一个真实的乒乓球,但可能有其它容易被误认为球的白色圆形物体;另外球可能存在模糊现象。
作者提出的球检测方法由两个阶段组成。首先第一阶段获取球的位置区域,随后在原图中截取这一区域,送入第二阶段网络获取球的精确位置。与关键点估计相似,球的位置使用一个高斯分布进行估计,使得网络更加快速收敛。使用两个阶段的方法,一方面可以降低误检,因为球所出现的位置与所处背景还是相关的(例如球更有可能出现在球桌附近);另一方面也可以提高球位置估计的准确性。
-
事件分析
根据乒乓球比赛的规则,只有在球出界、下网及发球时的状态对比分更新是至关重要的。
为了准确地对球的状态进行估计,网络同时使用了第一阶段的检测信息和第二阶段的检测信息获取球的状态(很明显球的状态分析除了与图像整体信息有关,更重要的是球所在区域的信息)。另外还使用了标签平滑技术、额外加入了一定数量的负样本。标注时,为了准确获取当前帧中球的状态,使用一个包含9张图像的图像堆更准确地对当前帧的信息进行标注。 -
语义分割
分割一共包含三类信息:人、球桌、得分板。分割网络的基干网络与检测的第一阶段是共享的。损失方面使用了平滑的DICE损失及BCE交叉熵损失。
-
多任务损失
同样使用的是多任务的加权损失。但是这个场景下的加权比较复杂,作者参考 Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics 中的方法,使用了可学习的加权系数,获取一个自适应权值进行加权。 -
数据标注
这里只有事件信息是完全人工手动标注的,乒乓球的位置及分割都进行了半自动标注处理。
结果
一张结果示意图如下,获取的信息还是比较丰富的。要不是实在不想在春节假期期间用一台新装Windows系统的电脑上配置环境,我也应该拿自己打球的视频跑一下。
标签:TTNet,检测,位置,网络,信息,乒乓球,解读,标注 来源: https://blog.csdn.net/bengyanluo1542/article/details/113812269