随着多媒体、网络和存储技术的快速发展,视频数据量呈现爆炸式增长。面对如此庞大的视频数据,无论是处理还是监管都成了难题!剪辑人员希望从比赛录像中便捷地提取比赛集锦,上网课的老师希望随时了解电脑摄像头前的学生是否在安心听讲,短视频网站希望能迅速给每个新作品打上标签并推送给合适的用户,监管部门也希望能精准发现不合规的视频内容等等。但是人力有穷时,都靠人来做肯定是不现实的,人搞不定,人工智能行不行呢?这个真可以有!

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

视频相较于图像,具有额外的时间维度信息,因此如何更好的利用视频中的时序信息是视频领域研究的重点。目前常用的方法有三类:

  1. 使用RNN对视频特征做时序建模,如AttentionLSTM模型。这类模型的输入是视频特征,而不是原始视频,因此往往用作后处理模块。

  2. 使用3D网络提取时序信息。如SlowFast模型,创新性的使用Slow和Fast两个网络分支分别捕获视频中的表观信息和运动信息。这一方法在很大程度上是受到灵长类视觉系统中视网膜神经节细胞的生物学研究所启发。

    研究发现,在灵长类的视觉系统中,约80%为是P细胞,15-20%是M细胞。M细胞以较高的频率工作,对时间变化更加敏感;P细胞则提供良好的空间细节和颜色感知。相应的,SlowFast模型的Slow分支类似于P细胞,感知空间信息;Fast分支类似于M细胞,对时间变化敏感。该模型在视频分类任务上取得了SOTA的效果,同时也是AVA 视频检测挑战赛的冠军模型。

  3. 使用2D网络提取时序信息,如经典的TSN和TSM模型。相较于TSN模型,TSM模型使用时序位移模块对时序信息建模,在不增加计算量的前提下提升网络的精度,非常适合工业落地。

3D网络在精度方面很有优势,但由于3D卷积计算量大,训练和推理耗时较大,难以用于产业实践;而2D网络虽然计算量较小,训练和预测速度快,但对时序信息的建模能力相对不足,精度普遍偏低。依托丰富的视觉领域模型优化经验,飞桨视频理解团队基于TSM模型打造了一个非常适用于产业实践的高效行为识别模型PP-TSM,并在相关应用场景取得显著收益。在基本不增加计算量的前提下,PP-TSM使用Kinetics-400数据集训练的精度可以提升到76.16%,超过同等Backbone下的3D模型SlowFast,且推理速度提升了4.5倍,具有显著的性能优势。

注:模型精度以实际测试为准,所有模型采用同一份数据进行训练测试。

源码链接:

https://github.com/PaddlePaddle/PaddleVideo

那PP-TSM到底采用了哪些优化策略呢?下面咱们带领大家一起来深入剖析一下飞桨团队算法优化的 “内功心法”。

1.数据增强Video Mix-up

  • Mix-up是图像领域常用的数据增广方法,它将两幅图像以一定的权值叠加构成新的输入图像。对于视频Mix-up,即是将两个视频以一定的权值叠加构成新的输入视频。相较于图像,视频由于多了时间维度,混合的方式可以有更多的选择。实验中,我们对每个视频,首先抽取固定数量的帧,并给每一帧赋予相同的权重,然后与另一个视频叠加作为新的输入视频。结果表明,这种Mix-up方式能有效提升网络在时空上的抗干扰能力。

2.更优的网络结构

  • Better Backbone:骨干网络可以说是一个模型的基础,一个优秀的骨干网络会给模型的性能带来极大的提升。针对TSM,飞桨研发人员使用更加优异的ResNet50_vd作为模型的骨干网络,在保持原有参数量的同时提升了模型精度。

    ResNet50_vd是指拥有50个卷积层的ResNet-D网络。如下图所示,ResNet系列网络在被提出后经过了B、C、D三个版本的改进。ResNet-B将Path A中1*1卷积的stride由2改为1,避免了信息丢失;ResNet-C将第一个7*7的卷积核调整为3个3*3卷积核,减少计算量的同时增加了网络非线性;ResNet-D进一步将Path B中1*1卷积的stride由2改为1,并添加了平均池化层,保留了更多的信息。

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

3.更稳定的训练策略

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

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

4.Label smooth

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

5.Precise BN

  • 假定训练数据的分布和测试数据的分布是一致的,对于Batch Normalization层,通常在训练过程中会计算滑动均值和滑动方差,供测试时使用。滑动均值的计算方式如下:

    但滑动均值并不等于真实的均值,因此测试时的精度仍会受到一定影响。为了获取更加精确的均值和方差供BN层在测试时使用,在实验中,我们会在网络训练完一个Epoch后,固定住网络中的参数不动,然后将训练数据输入网络做前向计算,保存下来每个step的均值和方差,最终得到所有训练样本精确的均值和方差,提升测试精度。

6、知识蒸馏方案:

Two Stages Knowledge Distillation

  • 我们使用两阶段知识蒸馏方案提升模型精度。第一阶段使用半监督标签知识蒸馏方法对图像分类模型进行蒸馏,以获得具有更好分类效果的pretrain模型。第二阶段使用更高精度的视频分类模型作为教师模型进行蒸馏,以进一步提升模型精度。实验中,将以ResNet152为Backbone的CSN模型作为第二阶段蒸馏的教师模型,在uniform和dense评估策略下,精度均可以提升大约0.6个点。最终PP-TSM精度达到76.16,超过同等Backbone下的SlowFast模型。

PP-TSM在实际业务中表现如何呢?以足球动作定位项目FootballAction为例,该项目可以提取出足球比赛的关键集锦,例如进球、角球、任意球等。在基础特征提取阶段,使用TSM模型替换TSN模型,精度由84%提升到90%,使用PP-TSM模型,分类精度能达到94%。FootballAction最终的precision和recall均有大幅提升,F1-score从0.57提升到了0.82

PP-TSM所应用的这套优化策略其实也可以尝试应用于该系列的其它模型上(如TSN模型),欢迎广大产业开发者或者科研人员展开进一步的探索。

如果您觉得PP-TSM对您带来了一些启发或者确实实用话,也欢迎您可以给PaddleVideo项目点亮Star

PaddleVideo项目链接:

https://github.com/PaddlePaddle/PaddleVideo

点击文末“阅读原文”,为PaddleVideo献上您宝贵的Star吧!

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

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

·飞桨官网地址·

https://www.paddlepaddle.org.cn/

·飞桨PaddleVideo项目地址·

GitHub: https://github.com/PaddlePaddle/PaddleVideo

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

·飞桨开源框架项目地址·

GitHub: https://github.com/PaddlePaddle/Paddle 

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

更快更强!视频理解模型PP-TSM重磅发布:速度比SlowFast快4.5倍相关推荐

  1. Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自机器之心. 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作.近日,FAIR视频团队在 ICCV 相关 ...

  2. 今晚直播 | 高效视频理解模型的设计及ICCV比赛冠军方案解读

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  3. 直播预告 | 高效视频理解模型的设计及ICCV比赛冠军方案解读

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  4. 精度76.16%,速度是SlowFast的4.5倍,视频理解模型PP-TSM重磅发布

    随着多媒体.网络和存储技术的快速发展,视频数据量呈现爆炸式增长.面对如此庞大的视频数据,无论是处理还是监管都成了难题!剪辑人员希望从比赛录像中便捷地提取比赛集锦,上网课的老师希望随时了解电脑摄像头前的 ...

  5. 【PySlowFast】Facebook开源算法代码库PySlowFast,轻松复现前沿视频理解模型

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩 ...

  6. Facebook开源算法代码库,轻松复现前沿视频理解模型

    在近些年的视频理解研究中,Facebook AI Research 贡献了许多精彩的工作.近日,FAIR视频团队在 ICCV 相关研讨会上开源了视频识别检测代码库 PySlowFast,并同时发布了预 ...

  7. 【深度学习】更大规模的完整视频理解

    译者:蓝燕子 声明:作者翻译论文仅为学习,如有侵权请联系作者删除博文,谢谢! 摘要 近年来,视频识别技术在具有丰富注释的基准中得到了发展.然而研究仍然主要限于人类的行动或运动的认识-集中在高度具体的. ...

  8. 【视频理解论文】——TSM:Temporal Shift Module for Efficient Video Understanding

    TSM: Temporal Shift Module for Efficient Video Understanding(ICCV2019) 这是一篇关于视频理解的文章,主要介绍了一种可以达到3DCN ...

  9. 飞桨模型保存_重磅发布开源框架、生物计算平台螺旋桨,百度飞桨交了年终成绩单...

    机器之心报道 作者:蛋酱.张倩 在 12 月 20 日举行的「WAVE SUMMIT+ 2020 深度学习开发者峰会」上,飞桨平台交出了一份非常亮眼的年终成绩单. 2020 年,是不平凡的一年:这一年 ...

最新文章

  1. networkx的基本使用
  2. csrf 攻击和防御
  3. 【MM】新建移动类型(Movement Type)
  4. 爱加密Android APk 原理解析
  5. rlm sql mysql.so_UBUUTU7.10上安装配置freeradius+mysql+rp-pppoe手记
  6. 轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)
  7. webpack loader使用
  8. 研究人脸识别技术必须知道的十个基本概念
  9. xcode cocos2dx 3.x mac工程 当assert(cond)触发断点,但cond却为0
  10. mongodb java驱动_Java的MongoDB驱动及读写策略
  11. JavaScript入门之Canvas(一): 2D Context
  12. Makefile,Shell command,Shell Language 之间的联系
  13. 浙江开票系统服务器窗口,浙江增值税发票综合服务平台常见问题解答
  14. python汉语叫什么意思_Python是什么-百度经验
  15. 【C++】关于日期的计算
  16. 常用Windows 快捷键
  17. 无线耳机哪个品牌好一点?真无线蓝牙耳机推荐品牌
  18. C语言编程编制职工档案管理程序,C语言 编写一个职工档案程序.doc
  19. 关于软件工程第一个博客
  20. knex mysql 操作_手把手教你用express + mysql + knex 做个 todoList

热门文章

  1. 当我不再依赖你的时候说说_不会再依赖你的说说 以后不再依赖别人的说说
  2. java中注解和注释的说明
  3. selenium java api 中文_Selenium Java WebDriverAPI 接口操作
  4. 如何利用「心理账户」提高用户付费和留存?
  5. java暑假_Java暑假作业
  6. 计算机辅助设计教案板书,计算机辅助设计教案计算机辅助设计教案.doc
  7. potplay播放突然变得模糊
  8. 如何使用Blender建3D汉字(保姆级别的详细)
  9. 通过.NET反射动态调用SetValue方法给属性PropertyInfo动态类型赋值
  10. eclipse building workspace 卡住