1总体介绍

短视频在当前多媒体环境中占据着巨大流量,有效理解视频内容对于数据分发发挥着重要作用,动作识别是视频内容理解的一个重要方向。当前图像识别技术已趋于成熟,但动作识别仍未达到理想效果,相比于图像识别,动作识别有一定时序相关性,比如“开门”和“关门”、“投球”和“接球”,时序相反则动作完全相反,因此动作识别除了对空间语义信息建模外还需要对时序信息建模,这也是其相较图像识别较为复杂的地方。此外视频动作识别往往需要根据多帧图像计算得到,其计算开销较图像识别也更大,某种程度上限制了其在工业界落地。本文将对视频动作识别技术进行梳理,其发展演变形式大致可以分为3D卷积网络结构算法和2D卷积网络结构算法,均以对空间语义信息和时序信息有效建模为目的,但出发点又各不相同。

23D卷积网络结构算法

很长时间以来3D卷积网络结构算法都是解决视频动作识别的主流算法,其中包括Two-Stream Network[2,3]、I3D[5]、SlowFast[7]等。视频相对于图像多了时间维度,对于图像识别一般采用2D卷积网络来捕捉空间语义信息,同理,对于视频理解可采用3D卷积网络,第三个维度建立在时间维度,即同时在视频帧和帧之间作卷积运算,具体算法如C3D[2],其计算过程如图1所示。但是由于维度的增加,3D卷积网络的参数量和计算量暴增,且无法有效利用2D预训练模型做参数初始化,在数据规模较小的动作识别数据集上往往难获得好的识别效果。后续算法如Two-Stream Network[2,3]、P3D[4]、I3D[5]、R(2+1)D[6]等在此基础上进一步改进,一方面让3D卷积参数可以基于2D卷积参数作初始化,另一方面则优化3D卷积的运算量。

图1I3D[5]算法改进了C3D类算法中3D卷积网络无法基于预训练好的2D卷积网络参数作初始化的劣势,其具体初始化过程为将2D卷积核参数在第三个维度上重复多次的方式来初始化3D卷积核参数。实验表明,采用预训练参数作初始化的模型效果明显优于随机初始化模型。I3D[5]算法结构如图2所示,分别对视频帧和光流建模,二者是独立的分支,训练过程也相互独立的,但预测阶段取二者预测结果的均值作为最终预测结果。

图2

SlowFast[7]算法的依据是动作识别中空间语意信息和时序信息的不同步性,即空间语义信息变化是缓慢的,比如在挥手这个动作中,“手”作为语意主体贯穿动作始终,而时间维度的运动信息变化是快速的,因此SlowFast[7]算法将低帧率的帧序列输入网络来捕获空间语义信息而将高帧率的帧序列输入网络捕获时序信息。SlowFast[7]算法结构如图3所示,网络有两个支路,分别是fast支路和slow支路,网络设计的思想是用fast支路捕捉快速变化的时序信息,同时用slow支路捕捉较为稳定的空间语义信息。相比于slow支路,fast支路输入的视频帧更密集,但fast支路中每层的特征通道数仅为slow支路的p倍(p<1),因此fast支路更轻量级且计算量仅占整体计算量的20%。Fast支路时间维度更大而featuremap通道数更少,这样的设计旨在捕捉快速变化的时序信息而忽略空间语义信息。在整个网络计算中,两个支路特征提取并不完全独立,实验表明,网络逐层特征提取过程中融合fast支路的特征信息到slow支路特征会显著提升模型效果,由于二者时间维度分辨率和特征通道数并不一致,因此需要将fast支路的featuremap做卷积运算使其各个维度与slow支路对应的featuremap维度一致,然后二者拼接后作为slow支路下一层的输入。模型的最终识别结果基于两个分支最后层拼接特征预测结果。

图3

以上算法为3D卷积网络结构算法中较为有代表性的算法,模型卷积层均为3D卷积或者部分层采用3D卷积,也有3D卷积的变体实现方式,如R(2+1)D[6]算法等。3D卷积运算已同时在空间和时间维度建模,但对于同一算法模型,采用双流结构形式相比单支路结构具有更好的识别效果,如I3D[5]中采用光流及SlowFast[7]采用fast分支,其可以进一步补充时序信息。

32D网络结构算法

3D卷积网络结构算法一般计算开销较大,这一点限制了其在工业界落地。2D卷积网络结构算法则基于此进一步优化,其采用单支路网络结构同时对空间语义信息和时序信息建模,使二者特征映射在同一特征空间,其中代表性算法有TSM[8]、TIN[9]等。这类算法参数量较图像识别采用的2D卷积网络几乎没有增加,可以利用基于图像识别任务预训练网络参数作初始化,同时又在计算量上显著优于3D卷积网络。

受卷积运算过程启发,2D卷积网络可有效捕捉空间语义信息,而卷积运算可拆解为卷积核在特征图上位移和乘积求和两个步骤,因此TSM[8]算法将网络每层的部分featuremap沿着时间维度移动并重新组合成新的featuremap以达到空间信息和时序信息融合的目的,其算法实现过程如图4所示。由于以多视频帧作为输入的网络结构相较单一图像识别网络多了时间维度,因此网络每层输出的featuremap也多一个时间维度。将featuremap沿着时间维度移动可以有效捕捉时间维度的变化信息,同时为了不破坏空间语义信息和节省计算开销,该方法只移动一定比例的特征通道,论文中通过实验验证以移动1/4的特征通道效果最佳。特征移动过程中当前帧特征与其相邻帧之间特征作了融合,即时序维度作了特征融合,特征移动后组合成新的featuremap作为模型下一层的输入,可以看出,整个计算过程较逐帧抽取图像特征然后作融合的算法增加了较小的计算开销,但帧与帧之间特征交互有效传递了时序信息。

图4

TIN[9]算法在TSM[8]算法基础上进一步改进,同是视频空间语义信息和时序信息交错学习,但相比TSM[8]其时间感受野可以动态调整,在时间维度上跨度更大,TIN[9]算法结构如图5所示。针对网络每层的featuremap,其将1/4的特征图通道均匀分为4组,这4组特征通道在时间维度上移动以融合不同时间维度上的特征信息,其过程类似于TSM[8]。不同的是,每组featuremap在时间维度上的移动幅度是一个动态值,由一个浅层的offsetNet网络根据当前层featuremap计算得到,有g组移动特征,则offsetNet输出g个offset,offset取值范围为[-T/2,T/2]。此外,每组移动特征还要进行特征加权,权重由一个浅层网络WeightNet根据当前层featuremap学习得到。最后,在时间维度上移动并加权后的featuremap与静态不变的featuremap部分拼接组成新的featuremap作为下一层网络的输入。TIN[9]整个计算过程的时间开销与2D网络计算开销是相匹敌的。

图5

4模型预训练

视频动作识别算法建模除了面对计算性能方面的挑战外,还面对训练数据规模较小的问题。由于人工标注成本巨大,视频动作类数据集往往规模较小,且标签体系规模也较小,这对于精准理解视频内容无疑是有阻碍的,尤其是深度学习技术发展到现在,训练数据规模往往对于模型效果有极大影响。因此在小规模目标数据集上获得较好识别效果,预训练是十分重要的,这一点在图像识别任务中已得到印证,论文[10]则通过实验验证有哪些因素会影响预训练效果。

论文[10]实验基于R(2+1)D[6]展开,预训练视频数据通过seed label及其同义词在社交媒体中搜索得到,seed label来源于动作识别类开源数据集的标签体系,通过搜索可以获得大量数据,但搜索数据含有噪声且为长尾分布。模型预训练的目的是提升模型的特征表征能力,作者基于搜索得到的大规模数据集进行网络的预训练,并试图说明预训练数据规模、标签体系等等因素对于模型最终识别效果的影响。

首先,论文[10]通过实验证明,预训练数据规模越大,基于预训练模型在目标数据集上迁移学习的效果提升就越明显,且模型体量越大,效果还会有进一步提升。其次,预训练数据集的标签类型应全面覆盖目标数据集的标签体系,覆盖越完善收益越大,但是预训练数据集的标签体系也并非越大越好,当预训练数据集标签数量积累到一定量后预训练模型的效果在目标数据集上就不会明显增加。此外,对于动作识别这一任务,是否在图像粒度预训练就足矣还是基于视频片段训练整个网络效果更佳呢?实验证明基于视频片段预训练整个网络效果更好。最后,视频时间长短对于模型训练效果影响如何呢?实验发现,当训练数据量相同时,基于长视频训练的模型较基于短视频训练的模型识别更精准,原因是长视频内容的丰富度抵消了时间维度噪声的影响,而训练数据总时长相同时,基于短视频数据训练的模型效果更好,原因是短视频对于动作的定位较长视频而言更准。

由论文[10]实验结果可以得出,预训练对于视频动作识别影响是巨大的,且预训练的数据规模、标签体系、视频长度都对模型效果有较大影响,这对于工业界调优模型很有参考意义。

5总结

本文主要介绍了不同流派的视频动作识别算法,包括3D卷积网络结构算法和2D卷积网络结构算法,同时介绍了预训练对于模型效果的影响。动作识别技术目前还有很大的探索空间,其在工业界落地仍有计算性能、识别精准度等方面的挑战,但是其应用潜力是巨大的。在网易新闻app中,曾尝试基于动作识别算法I3D[5]提取视频精彩片段生成动态封面,实验表明其对于吸引用户点击有明显增益。诸如此类的应用探索都将推动视频理解技术取得更好的研究成果。

服务推荐

  • 蜻蜓代理
  • ip代理
  • 代理ip
  • ip代理服务器
  • 国内ip代理
  • 代理服务ip
  • 最新代理服务器
  • 代理ip网
  • 中国代理服务器
  • 付费代理
  • 企业级ip
  • 企业级代理ip
  • 中国代理ip
  • 最新代理ip

短视频动作识别技术简述相关推荐

  1. 计算机视觉和动作检测,计算机视觉技术深度解读之视频动作识别

    来源:雪球App,作者: 我是张康,(https://xueqiu.com/6964725465/135165468) 作者:极链AI研究院 徐宝函 视频的理解与识别是计算机视觉的基础任务之一.随着视 ...

  2. Facebook AI牛津提出带“轨迹注意力”的Video Transformer,在视频动作识别任务中性能SOTA!...

    关注公众号,发现CV技术之美 ▊ 写在前面 在视频Transformer中,时间维度通常与两个空间维度(W和H)的处理方式相同.然而,在对象或摄影机可以移动的场景中,在第t帧中的一个位置处的物体可能与 ...

  3. 公开课笔记 | 多模态短视频内容标签技术及应用

    自然语言处理(Natural Language Processing,NLP)是人工智能的一个重要分支,它研究能实现人与机器之间用自然语言进行有效通信的各种理论和方法,即让机器"懂" ...

  4. Kfir Matza:以色列的动作识别技术世界领先

    Kfir Matza是Onysus公司的CTO,Onysus是一家专业于计算机视觉技术的初创公司,该公司已经入选GEM(全球创业周)2014年的总决赛.Kfir于上世纪90年代加入以色列国防部,时任精 ...

  5. 视频动作识别--Temporal Segment Networks: Towards Good Practices for Deep Action Recognition

    Temporal Segment Networks: Towards Good Practices for Deep Action Recognition ECCV2016 https://githu ...

  6. 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition

    Convolutional Two-Stream Network Fusion for Video Action Recognition CVPR2016 http://www.robots.ox.a ...

  7. Tensorflow C3D完成视频动作识别

    本文是视频动作识别领域经典的C3D网络的简易实现,可以作为动作识别的入门.论文为<Learning Spatiotemporal Features with 3D Convolutional N ...

  8. 网络不良视频内容识别技术初探

    网络不良视频内容识别技术初探 网络中的图片.视频及音频等多媒体信息具有内容丰富.感观性强等特点,已经逐渐成为不良信息在互联网上传播所采取的主要方式之一.网络中不良多媒体信息的数量与日俱增,所造成的文化 ...

  9. 视频数据集 | 视频动作识别video recognition常用数据集整理

    一 写在前面 未经允许,不得转载,谢谢~~~ 这篇文章主要整理一下视频动作识别领域常用的数据集~~~ 大概但不严格按照时间顺序排列. 二 视频分类数据集 HMDB51 来源:HMDB: a large ...

最新文章

  1. 小程序画布画海报保存成图片可以保存实现完整代码
  2. 招不招新人?IT经理很纠结.
  3. 简单快速开发C\S架构程序用最简单的不分层最快的效率
  4. 简单的表单提交 by MVC 2
  5. “向前进,向钱进”上:自媒体的流量变现路
  6. vue 一个组件内多个弹窗_论如何用Vue实现一个弹窗-一个简单的组件实现
  7. Dede cms文章内容管理系统安全漏洞!如何有效防止DEDE织梦系统被挂木马安全设置...
  8. 用事件驱动编程解救臃肿的代码
  9. 资源池(数据库连接池,内存池,线程池)
  10. 密西根州立大学计算机排名,美国密西根州立大学 Alex X. Liu 教授来我校作学术讲座...
  11. hadoop 编程规范(hadoop专利分析)
  12. arcgis制作超链接
  13. pip报错 Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-wa
  14. python递推公式_线性代数求解递推形式数列的通项公式
  15. Uniapp返回上一页触发页面更新
  16. 小米手机深陷“返修门” 售后成软肋
  17. bboss ioc快速入门教程
  18. 钡铼技术IO模块—专业独立式io模块
  19. Kali无线渗透获取宿舍WiFi密码(WPA)
  20. MPLAB常见问题及解决方法

热门文章

  1. 原生app 为什么要嵌入h5
  2. NextInt()和NextLine()
  3. 如何使输入算术表达式时允许操作数和运算符之间加入任意多个空格符
  4. 关于Python,你想知道的都在里面~
  5. 吴恩达【优化深度神经网络】笔记01——深度学习的实用层面
  6. Excel数据分析-漏斗图
  7. gradle安装及配置
  8. 计算机不能正常启动故障及原因,出现电脑无法正常开机并提示错误代码0xc000000f问题和解决方法...
  9. popstate_HTML5之pushstate、popstate操作history,无刷新改变当前url
  10. 堡垒机、堡垒机的原理