比赛介绍

时序动作定位(提案生成)是计算机视觉和视频分析领域一个具有挑战性的任务。本次比赛不同于以往的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名方案.

关注【飞桨PaddlePaddle】公众号

获取更多技术内容~

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

  1. DigSci科学数据挖掘大赛-亚军方案分享

    写在前面的话 本文将基于在中国计算机大会方案宣讲PPT中的内容,给出此次比赛的完整方案,主要从赛题理解.建模核心思路.算法核心思想等角度阐述,同时对相关细节进行了适当的拓展讲解.涉及SIF Sente ...

  2. CVPR 2021 | 腾讯优图20篇论文入选,含人脸识别、时序动作定位、视频动作分割等领域...

    编辑丨腾讯优图AI开放平台 计算机视觉世界三大顶会之一的CVPR 2021论文接收结果出炉!本次大会收到来自全球共7015篇有效投稿,最终有1663篇突出重围被录取,录用率约为23.7%.本次,腾讯优 ...

  3. 百度飞将BMN时序动作定位框架 | 数据准备与训练指南 (上)

    一.介绍 BMN模型是百度自研,2019年ActivityNet夺冠方案,为视频动作定位问题中proposal的生成提供高效的解决方案. 简单说,视频的时序动作定位就是给一段视频,分析出从xxx秒到x ...

  4. 时序动作定位:Rethinking the Faster R-CNN Architecture for Temporal Action Localization(TAL-Net)

    这篇是2018CVPR的文章,论文下载链接: http://cn.arxiv.org/pdf/1804.07667.pdf 1 背景 1.1 Faster R-CNN vs TAL-Net 得益于Fa ...

  5. 时序动作定位 | 面向时序行为定位任务的无监督预训练

    ​论文链接:https://arxiv.org/abs/2203.13609 代码地址:https://github.com/zhang-can/UP-TAL 主要贡献: 首次面向时序行为定位任务进行 ...

  6. ICCV2021 新增数据集汇总 | 含时序动作定位、时空行为检测、弱光目标检测等!...

    点击下方"计算机视觉联盟",一起进步!重磅干货,第一时间送达 ICCV 2021 数据集汇总 https://github.com/DWCTOD/ICCV2021-Papers-w ...

  7. 时序动作定位 | ActionFormer: 使用Transformers动作时刻

    目录 ActionFormer: Localizing Moments of Actions with Transformers 摘要 3 ActionFormer: A Simple Transfo ...

  8. SCNN-用于时序动作定位的多阶段3D卷积网络

    转自:http://blog.csdn.net/wzmsltw/article/details/65437295 注:本文首发在微信公众号-极市平台.如需转载,请联系微信Extreme-Vision ...

  9. 时序动作定位 | RSKP:基于代表片段知识传播的弱监督时间动作定位(CVPR 2022)

    关于<Weakly Supervised Temporal Action Localization via Representative Snippet Knowledge Propagatio ...

  10. 时序动作定位|使用 ‘注意力机制’ 的弱监督时序动作定位顶会论文理解笔记(Weakly-Supervised Temporal Action Localization)

    目录 Weakly Supervised Action Localization by Sparse Temporal Pooling Network(CVPR 2018) W-TALC: Weakl ...

最新文章

  1. redis订阅怎么退出_redis-消息的发布与订阅,高效实现原理详述
  2. 想写总结,却变成了胡诌。。。
  3. java 读 xml_Java读写XML代码示例
  4. 单板机 单片机 c语言,单板机 单片机 个人计算机有什么区别吗
  5. 29 _react-router说明
  6. 《Python Cookbook 3rd》笔记(5.5):文件不存在才能写入
  7. 剖析三大个人IM工具安全隐患
  8. 基于java的九宫格求解程序。以荷兰数学家设计的世界最难九宫格为例。
  9. 访问linux端口失败_教你如何配置Linux服务器防火墙端口规则
  10. leecode - 入门 -- 双指针总结
  11. 对于DEMATEL法的部分理解
  12. 计算机原理电梯控制系统设计,基于PLC的电梯控制系统的设计与研究
  13. ESP12f/E(8266)以及STM32串口自动烧录电路
  14. 微信小程序解析并上传excel
  15. 原型和原型链和instanceof
  16. 举个栗子!Tableau 技巧(127):购物篮分析 Market Basket Analysis 之关联购买
  17. 物联网卡新型智慧城市解决方案
  18. 我的世界服务器物品管道,我的世界漏斗管道怎么做 教你连接漏斗箱子
  19. 可解释知识追踪(整理更新)
  20. php 用pdf转html,在PHP中将PDF转换为HTML,类似于DocuSign

热门文章

  1. 计算机网络技能大赛感受,技能大赛心得体会
  2. quartz 整合 postgresql 附带例子
  3. 2022最新整理新手零基础系统的自学网络安全
  4. mysql中输出100内质数_SQL 打印 100 以内的质数
  5. html照片苹果手机,iPhone如何拍出漂亮唯美的照片
  6. php 加减法,php加减法
  7. 如何防止亚马逊账户关联?
  8. 农场买了一羊,第一年是小羊,第二年底生一只,第三年不生,第四年底再生一只,第五年死掉
  9. 微信多开设置网络代理服务器,微信多开终极技巧,可随意控制数量已亲测很好用...
  10. 修改网站背景图html代码,HTML中更换或添加网站背景图片的代码怎么写?(示例)...