赛事解析|乒乓球时序动作定位大赛亚军方案分享

2022-09-01 10:00:50 浏览数 (1)

比赛介绍

时序动作定位(提案生成)是计算机视觉和视频分析领域一个具有挑战性的任务。本次比赛不同于以往的ActivityNet-TAL,FineAction等视频时序检测动作定位比赛,采用了更精细的动作数据集–乒乓球转播画面,该数据集具有动作时间跨度短、分布密集等特点,给传统模型精确定位细粒度动作带来了很大挑战。

数据集介绍及处理

数据集介绍

本次比赛的数据集包含了19-21赛季兵乓球国际比赛(世界杯、世锦赛、亚锦赛,奥运会)和国内比赛(全运会,乒超联赛)中标准单机位高清转播画面的特征信息,共包含912条视频特征文件,每个视频时长在0~6分钟不等,特征维度为2048,以pkl格式保存。

数据处理方案

1.数据预处理

本赛题数据集中每条视频特征有不同的帧长(训练集帧长范围为464~8992,其中90%的序列帧长超过8704),对于如此长且长度不统一的视频序列,将其直接输入到模型中用于训练是不现实的。我们对最初的训练集按39:1的比例进行划分,得到新的训练集与验证集。当然,可以按照其他比例如9:1进行数据集划分,但是因为我们设计的验证方案(后续会提到)在数据量较多时耗费的时间更长,因此在验证可靠性与验证时间之间做出了取舍。

训练集

参照BMN[1]论文单元3.5中Training Data Construction部分所讲,我们也以一个滑动窗口对每一个长视频序列进行切分,其中步长为窗口长度的一半,同时要注意的是我们所保留的每一个视频切片必须包含至少一个完整提案。但是滑动窗口的长度如何选取呢?

首先我们对训练集相应的动作提案标签进行分析,总共有19054个提案标签(长度范围为1~831),分布如图1所示。我们设提案长度为D,当D=93时,已能够覆盖99.9%的动作提案。因此我们选择提案长度D为100,足以覆盖几乎全部的动作提案。当然为了减少训练推理时计算量,也可以选择更小的D,如D=50。正如冠军团队所说,PaddleVideo的anet_pipeline.py第50行出现错误,使得视频切片长度T与提案长度D不相等时便报错,故我们默认滑动窗口长度T与D相等,皆为100。当然,当T稍微更大时,比如T=200,可以使模型更好地建模长提案的上下文,但会带来更多的计算代价,因此T大小的选择可以在速度与性能之间进行权衡。

图1 训练集动作提案长度分布

验证集

为了在训练完模型之后对保存的模型进行筛选得到其中较好的模型,我们先后设计了两种验证方案。第一种方案是将验证集按照训练集的视频切分方式,即最后保留的切片都包含至少一个完整提案。这其实是与测试时不符的,即我们不应该事先知道哪些切片包含提案,而是应该对所有切片一视同仁。因此,第一种方案的验证分数远超A榜测试分数,但并不推荐。第二种方案则是模拟测试过程,即将验证集按照训练集的视频切分方式,但最后保留所有切片(每个切片不一定包含提案)。模型预测之后将每个视频对应的所有切片预测的提案进行汇总并进一步使用soft nms等方法筛选之后作为原未划分视频的预测提案信息,与标签对比计算AUC分数,作为模型筛选的凭证。

因此,我们对测试数据集的处理与验证集的第二种验证方案一致,即以一个滑动窗口对每一个长视频序列进行切分,其中步长为窗口长度T的一半,保留所有的切片。

2.提案后处理

如验证集第二种验证方案所讲,在选定的模型对测试集所有视频切片预测之后,我们将每个视频对应的所有切片预测的提案进行汇总并进一步使用soft nms等方法筛选之后作为原未划分视频的预测提案信息,并保存在submission.json中,打包之后即可提交A榜或B榜。

模型设计思路

这里围绕我们的最终模型进行讲述,思路演进可以见[2]。

模型整体架构

首先要提及的是我们的基础网络,即百度自研的BMN[1]模型,如图2所示。

图2 BMN模型整体架构

该模型由三个模块组成,基础模块(Base Module)作为主干网络处理输入的特征序列,TEM模块(Temporal Evaluation Module)预测每一个时序位置属于动作开始、动作结束的概率,PEM模块(Proposal Evaluation Module)生成BM置信度图。基于BMN[1]模型,我们对Base Module部分进行了修改,但继续沿用TEM模块和PEM模块,如图3所示。

图3 (a)我们最终模型的Base Module;

图3 (b)我们最终模型的整体结构

Base Module

为了使模型轻量,BMN[1]的基础模块使用的是两层的3x3分组卷积。由于分组之后,每通道信息只在各组中融合,而组与组之间无信息流通,会使得模型丢失一部分信息,降低模型容量。轻量化网络ShuffleNet采用Channel Shuffle操作使得信息跨组流通来解决这个问题,同样地,在这里我们也引入了Channel Shuffle操作。当然,也可以使用1x1卷积来解决,但会引入额外的参数和计算量。Channel Shuffle操作的代码如下:

为了扩大时域建模的感受野和建模更多的上下文信息,同时保证模型轻量,我们采用stride=2的3x3分组卷积对输入特征进行下采样。由于U-Net网络在图片分割领域的成功,正如BSN [3]中所述,采用U-Net这种Encoder-Decoder结构,网络可以同时捕捉高层次的全局上下文和低层次的局部细节。这恰恰可以帮助模型对提案边界的预测和对预测提案置信度的评估。但是与BSN [3]不同,我们将U-Net结构应用到了基础模块,且采用的不是U-Net [5]。由图3(a)可以看到我们的基础模块的结构,在使用U-Net结构之前,由于输入特征序列的维度为2048,为了减少计算量,我们先利用两层卷积对输入特征序列进行降维,将降维后的输出输入到Encoder-Decoder结构中。为了尽可能地不引入过多的参数量和计算量,我们采取分组卷积和Channel Shuffle操作,且尽可能地使用较少的通道数,同时U-Net结构仅采用了5层。当然,也引入了额外的跳过连接,来使得U-Net结构的输入输出特征融合。

从骨骼点动作识别方法SGN[6]显式使用节点类型和帧索引来增强模型对节点语义信息的建模得到启发,我们引入时域位置编码,显式地将视频帧顺序加入到模型中,确定视频开始与结束的差异,增强模型对一帧的表达能力和对全局、局部上下文的建模能力,更好地确定动作提案的开始与结束边界。当然,位置编码的加入位置是有多种选择的。我们经过比较AUC分数与引入的代价,最终确定将其加入到降维模块与U-Net结构之间。当然当我们在TEM模块之前加入位置编码时,可以将视频序列时间正向、反向两次传入模型的TEM模块,利用类似集成的方式来提高提案开始点和结束点的预测精度,但考虑到两次可能增加一部分计算量,没有采用。不过仅仅引入时域位置编码就大大地提高了模型的预测性能,使得我们的A榜分数从48.216提升至48.828。

当然,在Base Module中也可以引入注意力机制,但测试发现SE模块没有带来性能提升,且引入了额外的计算量。

Temporal Evaluation Module

与BMN[1]模型一致,我们沿用了它的TEM模块结构,仅在第一个卷积的输入通道数有差别。当然,修改过的SE模块、non-local块等注意力机制也曾应用到两层卷积之间,但提升不大,且引入了额外的计算量,故最终方案没有采用。

SE模块代码如下:

Proposal Evaluation Module

PEM模块是BMN[1]模型推理时间占比最大的部分,从图[2]可以看到,PEM模块存在3D卷积和多个2D卷积,带来了巨大的计算耗费。当然我们最终方案沿用的是BMN[1]模型的PEM模块。这里只提及我们做过的一些尝试。首先,如何对3D卷积进行取代?可以采用(2D 1D)来取代3D卷积;也可以减小3D卷积的输出通道数,采用2D卷积与3D卷积两路混合来取代3D卷积;采用3D可分离卷积或分组卷积等。虽然产生了高效的模型,但不可避免地带来了性能下降,不过A榜AUC分数仍能达到48分以上。然后,对2D卷积进行处理,我们尝试2D分组卷积和Channel Shuffle操作来替代,引入U-Net结构等,但相对最终方案性能都略低,但相对高效。

总结与完善方向

由于比赛要求不超过两个模型,且提到除了模型精度以外模型数量和模型耗时指标的权重分数会高于其他指标,我们专注于模型本身的设计,在兼顾轻量的同时追求高性能,故TTA等集成方法均没有采用。由于是基于A榜分数改进模型,最终模型不可避免地对A榜测试集过拟合,使得B榜分数下降,因此提高模型泛化性也是未来要改进的一个方向。此外,模型压缩等手段我们均未采用,所以设计容量大但冗余的模型,再进行压缩得到轻量结构也是一个完善方向。当然,模型本身也有许多完善的方向,比如PEM模块的轻量化。参照冠军方案[7],训练数据处理与增强方案也可以进一步完善。

最后感谢百度官方提供算力与框架支持,感谢PaddleVideo套件提供强力支持。最后希望PaddleVideo可以把更多前沿的学术成果迁移到飞桨框架,越做越好!

参赛项目地址:

https://aistudio.baidu.com/aistudio/projectdetail/3548768

PaddleVideo地址:

https://github.com/PaddlePaddle/PaddleVideo

参考文献

[1] Tianwei Lin, Xiao Liu, Xin Li, Errui Ding, and Shilei Wen. BMN: Boundary-Matching Network for Temporal Action Proposal Generation[C].In Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 3889-3898.

[2] 翟濮成, 基于飞桨实现乒乓球时序动作定位大赛 :B榜第2名方案.

[3] Haisheng Su, Weihao Gan, Wei Wu, Yu Qiao, and Junjie Yan. BSN : Complementary Boundary Regressor with Scale-Balanced Relation Modeling for Temporal Action Proposal Generation[C]. In Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2602-2610.

[4] Ronneberger O, Fischer P, and Brox T. U-Net: Convolutional Networks for Biomedical Image Segmentation. In International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015: 234-241.

[5] Zongwei Zhou, Md Mahfuzur Rahman Siddiquee, Nima Tajbakhsh, and Jianming Liang. UNet : A Nested U-Net Architecture for Medical Image Segmentation[M]. Deep learning in medical image analysis and multimodal learning for clinical decision support. Springer, Cham, 2018: 3-11.

[6] Pengfei Zhang, Cuiling Lan, Wenjun Zeng, Junliang Xing, Jianru Xue, and Nanning Zheng. Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition[C]. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 1112-1121.

[7] 来路生云烟,路里老咯,基于飞桨实现乒乓球时序动作定位大赛 :B榜第1名方案.

0 人点赞