【视频行为识别7】ECO:Efficient Convolutional Network for Online Video Understanding(ECCV2018)

提出问题:

1. 大部分推理均是局部(如取2s一段的子片段)进行的,丧失了跨越数秒的动作内的重要关系。

2. 尽管有快速桢处理的局部方法,整个视频的处理效率不高,有损在线长视频分类检索的效率。

本文:引入一种网络结构(考虑进了长视频和短视频,同时能使快速实现每个视频(per-video)的处理),该结构基于融合网络中的长时间内容,而不是像之前论文中先将视频分n个片段,然后网络分别处理每个片段,最后再对n个片段的结果求平均融合。post-hoc fusion。

1、Introduction

主要提出了两点:

  1. 使用单帧的图像很多情况下能够获得不错的分类效果,而相邻帧间的很多信息都是冗余的。因此,本文ECO中在一个时序邻域内仅使用单帧图像
  2. 为了获得长时程的图像帧间的上下文关系,仅仅使用简单的分数融合(aggregation) 是不足够的。因此,ECO中对较远帧之间采取对feature map 进行3D 卷积的方式进行end-2-end的融合

2、主要工作

    1)与TSN类似,作者从整个视频中抽取固定数量的帧来覆盖长期时间结构,以便理解视频。这样,采样帧跨越整个视频,与视频的长度无关。

   2)与TSN不同的是,作者使用3D网络来学习帧间的关系,并在整个视频中跟踪它们。该网络经过端到端训练,以学习这种关系。

   3)该网络直接提供视频级别的分数,不需要事后的特征聚合。(- - ?)

3、网络结构

ECO-Lite(基本结构如上图所示,S1-SN是从视频中采样得到的N个RGB的segment

  1. 对于每个segment,采用共享的2DNet卷积子网络来得到96个28*28大小的feature map,堆叠后得到一个N*28*28*96 大小的特征volume。此处2DNet使用的是BN-Inception网络中的第一部分(到inception-3c层前)。
  2. 对于得到的特征volume,采用一个3DNet子网络进行处理,直接输出对应动作类别数目的一维向量。此处3DNet采用了3D-Resnet18 [6]中的部分层。

ECO-Full网络结构:

如上的两部分,就构建了这篇文章中构建的第一种网络结构ECO-Lite。除了用3D卷积进行融合,还可以同时使用2D卷积,如下图所示,即为ECO-Full网络结构。此处多的一个2D网络分支2DNets采用的是BN-Inception网络中inception-4a到最后一个pooling层间的部分,最后再采用average-pooling得到video-level的表示,与3D net的结果concat后再得到最后的action分类结果。

采样策略(视频帧)

在ECO中,作者先将一个视频等分为N份,再在每份中随机选取一帧作为输入。作者认为这样的随机采样策略可以在训练中引入更多的多样性,并提高泛化能力。

测试

在TSN或是ARTNet等方法中,测试时通常都会对每段视频进行多次的cropping采样以及水平翻转等数据增强,从而增强测试的效果。这使得计算的效率较低,从而难以用于实时场景。

与之相反,ECO中对于一个视频,只需要计算一次前向就可以获得很好的效果,而不需要进行任何额外的融合或是增强,在效率上面有更好的保证。

在线视频理解

○一般情况(offline)下,我们是获得了一整段视频后再做分析处理的。

○在online情况下,视频是以视频流的形式呈现的,即我们只能获得当前时刻过去的视频。对于这个场景,一般的做法是将当前时刻之前的N帧作为一个窗口,输入网络来判断结果。

作者认为这样主要有两个缺陷:一是这样会造成长程语义的缺失,二则是可能造成较长的delay。

○作者基于ECO提出了以下的online处理框架:

1)这个框架中主要维护了两个图像组,分别是存放较旧图像的工作记忆组和存放新的未处理图像的新收图像组

2)每次预测时,从两组视频中各采样一半来更新工作记忆组,并将其作为网络的输入得到当前的预测结果,将当前的预测结果和平均预测结果进行平均后得到最终的输出。这个框架在工作记忆组和平均输出两个层面保存了较长时程的信息,但同时依旧是以当前的图像为主。可以说是设计的很精巧的一个框架了。

实验内容

与SOTA方法在基准数据集比较:(输入仅为RGB,没有光流)

速度-精度比较

        ECO的一个主要卖点就是速度快,上表就展示了ECO和其他方法的速度/精度性能比较(基于单卡Tesla P100)。ECO的右下标表示的是ECO的输入帧数N。可以看出,在获得相近精度的前提下,ECO的速度要远远快于现有方法。需要注意的是,此处作者使用的是VPS,即每秒处理的视频数量。很多方法为了获得video-level的结果,对于每个视频需要进行多次inference,而ECO只需要进行一次。下图则可视化地展示了速度-精度的效果,ECO的优势还是很大的。

在线视频理解

在线视频分类问题通常以early action recognition 的形式来评估。如上图所示,但是与采用横轴显示的是可以看到的视频的前百分之几,纵轴则是对应的精度。基于上图的在J-HMDB数据集上的实验,可以看出ECO在精度上有明显的优势,并且只需要很小一部分视频就可以达到不错的精度。

结语

ECO的核心点其实就是两块

1)一是与TSN方法类似的视频帧采样方法篇;

2)二是用3D卷积来做融合,一般网络是融合单个clip内的多帧图像,而ECO是跨clip融合,将多个clip中的随机一帧融合起来。

 

贴上源码:

caffe:https://github.com/mzolfaghari/ECO-efficient-video-understanding

pytorch:https://github.com/mzolfaghari/ECO-pytorch

猜你喜欢

转载自blog.csdn.net/chen1234520nnn/article/details/104863315