\u200E
PaddleVideo视频理解模型再下一城!PP-TSN重磅发布
发布日期:2021-08-19T11:05:56.000+0000 浏览量:1475次
随着多媒体、网络和存储技术的快速发展,视频数据量呈现爆炸式增长。面对如此庞大的视频数据,无论是处理还是监管都成了耗时耗力的难题!剪辑人员希望从比赛录像中便捷地提取比赛集锦,上网课的老师希望随时了解电脑摄像头前的学生是否在安心听讲,短视频网站希望能迅速给每个新作品打上标签并推送给合适的用户,监管部门也希望能精准地进行内容审核。但是面对千千万万的视频数据,每个任务都分配给人去做显然是不现实的,所以我们需要人工智能的帮助!


在深度学习的CV领域中,有个重要的研究方向就是视频理解,简而言之,就是通过AI技术让机器可以理解视频内容,如今在短视频、推荐、搜索、广告,安防等领域有着广泛的应用和研究价值,像下面这种视频打标签、视频内容分析之类的任务都可以通过视频理解技术搞定!


视频相较于图像,具有额外的时间维度信息,因此如何更好地利用视频中的时序信息是视频领域研究的重点。目前常用的方法有三类:
  1. 使用RNN对视频特征做时序建模,如AttentionLSTM模型。这类模型的输入是视频特征,而不是原始视频,因此往往用作后处理模块。

  2. 使用3D网络提取时序信息。如SlowFast模型,创新性的使用Slow和Fast两个网络分支分别捕获视频中的表观信息和运动信息。这一方法在很大程度上是受到灵长类视觉系统中视网膜神经节细胞的生物学研究所启发。研究发现,在灵长类的视觉系统中,约80%是P细胞,15-20%是M细胞。M细胞以较高的频率工作,对时间变化更加敏感;P细胞则提供良好的空间细节和颜色感知。相应的,SlowFast模型的Slow分支类似于P细胞,感知空间信息;Fast分支类似于M细胞,对时间变化敏感。该模型在视频分类任务上取得了SOTA的效果,同时也是AVA 视频检测挑战赛的冠军模型。3D网络尽管在精度方面很有优势,但由于3D卷积计算量大,训练和推理耗时较长,难以用于产业实践。

  3. 使用2D网络提取时序信息,如经典的TSN模型。TSN模型采用“段共识”的操作融合多帧图像的特征信息,能将绝大部分原本用于图像分类的网络模型进行扩展,通过简单地修改输入形式,就能直接用于下游的视频分类任务上。给后续许多模型提供了一种通用的思路。


依托丰富的视频模型优化经验,飞桨PaddleVideo团队总结并完善了一套通用的视频模型优化策略,在提出PP-TSM之后,研发团队将这套策略应用于TSN模型并取得显著收益,研发出PP-TSN模型。在基本不增加计算量的前提下,PP-TSN使用Kinetics-400数据集训练的精度可以提升到75.06%,达到同等Backbone下的3D模型SlowFast的精度区间,且推理速度快5.6倍,在精度和性能的平衡上具有显著的优势。

注:
1.模型精度以实际测试为准,所有模型采用同一份数据进行训练测试。
2.PP-TSN的Top1精度介于SlowFast的两个版本之间,即达到同等Backbone下的3D模型SlowFast的精度区间。

传送门:(Star一下防止走失)
https://github.com/PaddlePaddle/PaddleVideo
    
那PP-TSN到底采用了哪些优化策略呢?下面咱们带领大家一起来深入剖析一下飞桨团队算法优化的 “内功心法”。




数据增强Video Mix-up


众所周知Mix-up是图像领域常用的数据增强方法,它将两幅图像以一定的权值叠加构成新的输入图像。PaddleVideo团队通过合理扩展图像Mix-up,将其引入到视频数据增强中,让两个视频以一定的权值叠加构成新的输入视频。实际操作中,我们首先要从一个视频抽取固定数量的帧,并给每一帧赋予相同的权重,然后与另一个视频抽出来帧按一定比例进行叠加作为新的输入视频。结果表明,Mix-up能有效提升网络在时空上的鲁棒性,增强模型的泛化能力。另外,相较于图像,视频由于多了时间维度,混合的方式可以有更多的选择。





更优的网络结构

  • Better Backbone:骨干网络可以说是一个模型的基础,它决定了一个网络是否能提取有效的特征供后续任务使用,一个优秀的骨干网络会给模型的性能带来极大的提升。针对PP-TSN,飞桨研发人员使用更加优异的ResNet50_vd作为模型的骨干网络,在保持原有参数量的同时提升了模型精度。
    ResNet50_vd是指拥有50个卷积层的ResNet-D网络。如下图所示,ResNet系列网络在被提出后经过了B、C、D三个版本的改进。其中ResNet-B将Path A中1x1卷积的stride由2改为1,避免了信息丢失;ResNet-C将第一个7x7的卷积核调整为3个3x3卷积核,减少计算量的同时增加了网络非线性;ResNet-D进一步将Path B中1x1卷积的stride由2改为1,并在其后添加了平均池化层,保留了更多的信息。


  • Feature aggregation:对PP-TSN模型,在骨干网络提取特征后,还需要使用分类器做特征分类。实验表明,在特征平均之后分类,可以减少frame-level特征的干扰,获得更高的精度。假设输入视频抽取的帧数为N,则经过骨干网络后,可以得到N个frame-level的特征。分类器有两种实现方式:第一种是先对N个frame-level特征进行平均,得到video-level特征后,再经过全连接层得到logits;另一种方式是先经过全连接层,得到N个frame-level的logits,再求平均。飞桨开发人员经过大量实验验证发现,采用第1种方式有更好的精度收益。





更稳定的训练策略

  • Cosine decay LR:在使用梯度下降算法优化目标函数时,我们使用余弦退火策略调整学习率。假设一共有T个step,在第t个step时学习率按以下公式更新。同时使用Warm-up策略,在模型训练之初选用较小的学习率,训练一段时间之后再使用预设的学习率训练,这使得收敛过程更加快速平滑。


  • Scale fc learning rate:在训练过程中,我们给全连接层设置的学习率为其它层的5倍。实验结果表明,通过给分类器层设置更大的学习率,有助于网络更好的学习收敛,提升模型精度。



Label smooth


标签平滑是一种对分类器层进行正则化的机制,通过在真实的分类标签one-hot编码中真实类别的1上减去一个小量,非真实标签的0上加上一个小量,将硬标签变成一个软标签,达到正则化的作用,防止过拟合,提升模型泛化能力。




Precise BN


假定训练数据的分布和测试数据的分布是一致的,对于Batch Normalization层,通常在训练过程中会计算滑动均值和滑动方差,供测试时使用。滑动均值的计算方式如下:
但滑动均值并不等于真实的均值,尤其是在batchsize比较小的时候容易受到单次统计量不稳定的影响。因此为了获取更加精确的均值和方差供BN层在测试时使用,在实验中,我们会在网络训练完一个epoch后,固定住网络中的参数不动,然后将训练数据输入网络仅做前向计算,根据每个step的均值和方差计算出整体训练样本的平均均值和方差,代替原本的指数滑动均值和方差,以此提升测试时的精度。




知识蒸馏方案:Two Stages Knowledge Distillation


我们使用两阶段知识蒸馏方案提升模型精度。第一阶段使用半监督标签知识蒸馏方法对图像分类模型进行蒸馏,以获得具有更好分类效果的预训练模型。第二阶段使用更高精度的视频分类模型作为教师模型进行蒸馏,以进一步提升模型精度。实验中,将以ResNet152为backbone的CSN模型作为第二阶段蒸馏的教师模型, 在8 frame的训练策略下,精度可以提升约1.3个点。最终PP-TSN精度达到75.06,超过同等backbone下的SlowFast模型。

PaddleVideo团队将一整套优化策略在PP-TSN、PP-TSM等模型上进行了多次成功实践,欢迎广大产业开发者或者科研人员展开进一步的探索。

如果您觉得PP-TSN对您带来了一些启发或者确实实用的话,欢迎您在Github上给PaddleVideo项目Star一下,以便关注后续更多优秀的PP系列优化模型发布。


飞桨PaddleVideo项目二维码


https://github.com/PaddlePaddle/PaddleVideo

也欢迎感兴趣的同学加入PaddleVideo技术交流群,与我们一起交流和技术探讨。

PaddleVideo技术交流微信群,扫码加入:




如有飞桨相关技术问题,欢迎在飞桨论坛中提问交流:
http://discuss.paddlepaddle.org.cn/

欢迎加入官方QQ群获取最新活动资讯:793866180

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

·飞桨官网地址·
https://www.paddlepaddle.org.cn/

·飞桨开源框架项目地址·
GitHub: https://github.com/PaddlePaddle/Paddle 
Gitee: https://gitee.com/paddlepaddle/Paddle

·飞桨PaddleVideo项目地址·
GitHub:

https://github.com/PaddlePaddle/PaddleVideo

Gitee:
https://gitee.com/paddlepaddle/PaddleVideo



飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台。飞桨企业版针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。


END