《ECO: Efficient Convolutional Network for Online Video Understanding》

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

代码地址:https://github.com/mzolfaghari/ECO-efficient-video-understanding

对于视频理解,只使用少部分帧计算速度会比较快,但是对于数秒长的视频需要利用更多的帧信息来提高检测精度。为了解决这种问题,文章提出一种既可以利用较长的时间信息又可以较快的计算的网络。

一、网络结构

首先文章认为视频帧存在一些冗余,所以输入网络的视频帧可以采样获得。

对于一个输入视频,先将视频分为N等分,对于每个部分都随机采样一帧,每一帧都经过一个2DCNN网络,得到N个feature后,不同的通道进行堆叠就可以得到有时序信息的feature了,然后将堆叠后的feature输入到3DCNN网络,最终输出动作类别。网络的结构如下图所示:

1.png

1.1 ECO Lite 和 ECO Full

上图中的结构就是ECO Lite,但是该结构浪费了short-term actions的信息,对于短时间动作可能可以只通过少量的视频帧来进行分类,为了更好的提取这部分信息,文章在3DCNN并行加上2DCNN网络,加2DCNN的网络成为ECO Full。两种网络结构图如下图所示:

2.png

文章2D-Net采用BN-Inception网络,3D-Net网络采用3D-Resnet18,2D-Nets采用BN-Inception网络(该网络与3D-Net是并行结构,每帧预测的feature进行pooling后与3D-Net输出进行concatenate)

二、Online video understanding

对于有些场景需要对在线视频进行处理,文章提出的网络也能很好的处理这种视频。

对online video的处理流程如下伪代码所示:

3.png
  1. 首先初始化一个queue Q(Q的大小为N帧)和一个工作内存SN
  2. 当开始检测是有N帧都放入SN中
  3. 将SN所有的视频帧都输入到ECO网络进行预测,输出P
  4. 视频帧不断的输入,都存入Q中,当Q满后,从SN采样和从Q中采样
  5. 将采样出来的N帧更新SN,然后跳到3步骤
  6. 最终的预测用PA表示,PA为P与之前的PA的平均

采样方式采用的是uniform的方式,如下图所示

4.png

你可能感兴趣的:(《ECO: Efficient Convolutional Network for Online Video Understanding》)