【paddlepaddle 论文复现营阅读笔记】ECO: Efficient Convolutional Network for Online Video Understanding

【paddlepaddle 论文复现营阅读笔记】ECO: Efficient Convolutional Network for Online Video Understanding
论文复现营课程地址
https://aistudio.baidu.com/aistudio/education/group/info/1340

文章地址
ECO: Efficient Convolutional Network for Online Video Understanding

参考文章:
https://zhuanlan.zhihu.com/p/36795554
https://zhuanlan.zhihu.com/p/64470726
https://zhuanlan.zhihu.com/p/84599705
https://zhuanlan.zhihu.com/p/66342566

摘要

ECO网络仅采用RGB图像输入,没有额外的光流信息,这使得其轻量并且推理速度快。其基本思路为:对视频均匀采样得到N帧图像,对这些图像使用共享的2D CNN网络获得一个2D feature map,再堆叠这些feature map,用一个3D CNN网络得到最后的分类结果。(而不是像之前3D卷积那样将多帧的特征在最后进行融合)在获得了相近的性能的前提下,ECO网络比SOTA方法要快10-80倍。

Motivation

视频理解技术的现状存在两个问题:

1.无法有效学习跨越多帧的较长时间动作信息。之前提出的几种3D卷积网络可以捕捉帧之间的时间关系,但它们计算代价大,而且仅仅只能覆盖一个小窗口而不是整个视频。因此,ECO中对较远帧之间采取对feature map 进行3D 卷积的方式进行end-2-end的融合。
2.模型推理速度并不能有效实时处理视频。

Related Work

  1. 大部分2stream类方法和所有3D卷积类型方法 都是在学习短时程的时序信息,即输入一个连续的video clip,输出一个分类结果。在video-level上,通常是对video中选取多个clip分别得到分类结果,再进行平均得到最后的分类结果,这样会带来较大的计算开销。
  2. 一些方法(比如去年deepmind的i3d ) 选择增大输入clip的时序长度来获得更长时程的信息,但这样一方面会带来计算开销的提高,另外一方面则还是不能处理较长的视频。
  3. 一些方法采用编码方法来获得video-level的表示,但作者表示这样忽略了帧间的信息。
  4. 与ECO最相似的是目前被广泛使用的TSN 网络:
  • ECO和TSN的相似点:两者都是从video中均匀采样固定数量的视频帧,从而来覆盖长时程的时序结构。两者都是end-to-end训练的。
  • ECO和TSN的不同点:TSN中直接用late-fusion的方式对每个segment的结果做融合,而ECO中则使用3D网络来学习帧之间的关系。网络可以端到端的训练来学习这种关系。同时网络直接提供视频级评分,无需事后特征聚合,因此,它运行速度很快。

网络结构

在这里插入图片描述

ECO网络的基本结构如上图1所示,每个视频被分成N个等长的小段{S1, S2, … , Si, …, Sn},从每一段中随机的采样一帧RGB图像Fi,组成N帧作为ECO网络的输入{F1, F2, …, Fi, …, Fn},这些帧中的每一帧都由一个二维卷积网络(权重共享)处理,该网络生成一个编码帧外观的特征表示。将产生的特征堆叠后送进3D卷及网络捕获它们的时间关系,并对行为分类。

其实ECO的核心点其实就是两块:一是与TSN方法类似的视频帧采样方法,二是用3D卷积来做融合,这种体系结构非常简单,直观,可以在大型数据集上对其进行端到端的有效训练。它也可以很容易地适应其他视频理解任务,比如视频描述。

2D-Net

输入:视频采样抽取的N帧{F1, F2, …, Fi, …, Fn},每帧size: 224*224

网络:use the first part of the BN-Inception architecture (until inception-3c layer),每帧分别过2D Net,提取frame-level static appearance semantics,2D Net网络权重共享

输出:This network creates feature maps Mi(962828) for ith input frame.

3D-Net

输入:2D Net的输出沿时间维度concat在一起,作为3D Net的输入

img

网络:several layers of 3D-Resnet18,建模帧间的时序动作信息

输出:video-level fc-512d,用于视频分类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YzVz0bQQ-1596701455468)(C:\Users\kylinhyl\AppData\Roaming\Typora\typora-user-images\image-20200806153701746.png)]

图2(A)展示的是上图ECO Lite的一个缩略图。作者将其称作为简易版本,因为作者还提供了一个 full版本。如下图所示。在full网络中增加一个2D Nets模块和3D Net并行,最后进行特征连接,这样做的目的就是,对于简单的动作,2D Nets网络就可以很轻易的处理,以保证静态图像特征获得了必要的重要性,而三维网络结构则负责处理依赖于帧之间关系的更复杂的操作。其实到这里,思想上又回到了双流网络上来,只是以前的输入时RGB 与 FLOW ,这里的3D Net就是类似于光流模块。

2D-Nets

输入:2D-Net的输出,作为2D-Nets的输入

网络:采用BN-Inceptionp架构,从inception-4a层到最后的池化层,其可以提供视频的静态视觉语义,最后的池化层将为每帧产生1024维的特征向量,对其进行平均池化产生视频级特征,然后将这些特征与从3D网络获得的特征连接。

在线视频理解

在这里插入图片描述

在线视频理解我们正常的想法就是通过一个滑动窗口的形式,但是作者认为这种方式有一些缺点,这与窗口大小有关,即长期的上下文是缺失的,或者有很长一段时间的延迟。

作者的设计思路如下:

  • 首先设置一个SN是对旧视频帧的一个保存,对于接受新的到来的视频帧,用一个队列 Q来表示。
  • 随后随机从两个部分各取 一半的视频,作为输入进入ECO学习。
  • 将Q清空,将混合在一起的帧更新到SN
  • 如此往复

这样就可以即保持了老帧,也学习了新帧。

实验对比

  • **数据集HMDB51和UCF101上的结果:**略比I3D差点

在这里插入图片描述

img

  • 数据集Kinetics和Something-Something上的结果:

ECO在Something-Something上取得了较好的效果,其中Something-Something是动作信息很强的数据集,说明ECO具有较强的时序动作建模能力

在这里插入图片描述

运行耗时比较:ECO达到了realtime效果

在这里插入图片描述

  • 不同采样帧数的效果

ECO效果优于ECO-Lite,但是耗时比ECO-Lite多

随着采样帧数N的增加,效果增加,耗时也增加,实际部署时根据具体业务场景进行权衡
在这里插入图片描述

但是对于较短的视频采样帧数增加,并未带来效果的提升

  • 准确率和耗时的权衡

在这里插入图片描述

  • 应用于Video Captioning也获得较好的效果
    在这里插入图片描述
    在这里插入图片描述

Conclusion

在本文中,我们提出了一种简单而高效的网络体系结构,它只查看视频中的一小部分帧,并学习如何利用这些帧之间的时间上下文。此原理可用于各种视频理解任务。我们在动作分类、在线动作分类和视频字幕方面取得了很好的效果。计算负载和内存占用使得在移动设备上实现成为一个可行的未来选择。这些方法比最先进的方法快10到80倍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值