论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding

ECO: Efficient Convlutional Network for Online Video Understanding这篇论文发表于2018年ECCV上。作者Mohammadreza Zolfaghari等人来自弗莱堡大学。这篇论文主要内容如下:

当前最先进的视频理解模型主要存在两个问题:1. 模型在做任务推理时只关注视频局部信息,忽略了横跨一定时间间隔的动作联系;2. 已有模型只在视频局部处理进行效率改进,但是视频整体的处理效率较低,无法用于快速的视频检索或者在线长期动作分类。这篇论文针对这两个问题,提出了高效的卷积网络用于视频分类和实时视频分类算法。模型结构本身整合了视频的长期信息,并利用了相邻帧存在大量冗余信息这一特点。它最快能在一秒时间内进行230段视频的动作分类和描述。这种方法在所有的数据集上取得了和当前最好模型相当的效果,同时在速度上快了10到80倍。

视频动作分类领域主要有三个数据集:Kinetics、ActivityNet和SomethingSomething。

模型宏观架构

由于相邻帧存在大量的信息冗余,因此该方法利用预训练好的2D卷积网络每隔一定时间只处理一帧视频。为了让卷积网络自身就能学习到长期的语义信息,作者采用3D卷积层来对按一定时间间隔提取出来的帧的集合进行特征提取。在具体训练模型时,视频被分成N小段S_i, i=1,...,N,每小段时间长度相等。每次用某段视频进行训练时,在每个时间段内随机采样一帧视频,输入卷积网络。就长时间训练而言,视频中的每一帧都得到了充分的利用。这样训练数据更加多样化,让模型能够适应视频中动作在各个瞬间的微妙变化。就单次前向和反向传播而言,模型对一段视频只需要处理N帧图像(N是固定的),因此模型的运行速度很快。这里的单个视频的分割是固定的。如果要让模型学习进行动态的视频分割,需要让模型对视频中的每一帧进行处理,这极大地增加了计算量,同时带来的效果提升也是有限的。在时间段内进行随机视频帧采样在一定程度上让模型学到了动作随时间变化的规律。

模型在前半段利用现有的预训练的图像分类模型对视频各帧进行各自独立的特征提取。然后将各帧得到的特征进行堆叠,在后半段利用3D卷积网络进行跨帧的特征提取。最后利用3D卷积网络提取出的视频表示(和2D卷积网络提取视频表示)输出视频的分类结果。这种前半段是2D卷积网络,后半段是3D卷积网络如下图中的A所示,即ECO Lite。但是考虑到有些视频只需要一帧图像就可以进行分类,不需要3D卷积网络提取视频的时序信息,作者又在后半段加上了2D卷积网络,与3D卷积网络平行,专门提取视频的静态空间特征,如下图中的B所示。对于2D卷积网络提取的各帧表示,作者将它们堆叠在一起,沿着帧维度求平均值,得到的向量与3D网络的输出拼接在一起。

这种后半段2D和3D卷积网络并行的结构做到了分工合作,“1+1>2”的效果,一方面2D卷积网络专注于提取图像的静态特征,保证在最后分类的中视频的静态空间信息得到充分的重视,另一方面3D卷积网络专注于提取视频复杂的时序特征,让模型有足够的能力应对需要观察一定时间才能分辨的动作。

模型结构细节

作者采用BN-Inception从开始到inception-3c层的部分作为模型前半段的2D卷积网络。3D-ResNet18中的几层被用来作为模型后半段3D卷积网络。在完整的ECO模型中,BN-Inception剩余部分被用作模型后半段与3D网络平行的2D网络。

3D网络最后会输出512维的向量作为视频的动态表示。BN-Inception会输出1024维的向量作为视频的静态表示。因此ECO Lite最后会输出512维的特征向量,ECO Full最后会输出1536维的特征向量。下图是ECO Lite的结构,左半部分是2D卷积网络的结构,右半部分是3D卷积网络的结构。

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第1张图片

训练细节

作者使用带有Nesterov动量的随机梯度下降来优化模型。每个全连接层都后接dropout层。除了从视频中随机采样视频帧外,作者还使用了一些数据增强技术:将视频帧缩放到240*320后进行随机尺寸的剪切,随机横向翻转,最后统一放缩到224*224。

2D神经网络参数采用在kinetics数据集上的预训练模型的参数进行初始化。3D神经网络参数采用预训练的3D-ResNet-18网络的参数进行初始化。模型在Kinetics数据集上训练了10遍(epochs)。

在其他数据集上,作者把在kinetics数据集训练得到的模型做了微调。

测试细节

大部分世界领先的模型在输出结果上做了后处理。比如TSN和ARTNet从每段视频采样了25帧,对于每帧分别进行四个角和中间剪切得到五组视频帧,然后利用横向翻转进行数据增强,对于每段视频总共得到10组视频帧。模型分别对10组视频帧进行预测,对10组结果求平均值,得到最后的预测结果。这样的后处理极大地增加了计算量。

该论文只从视频从采样一组视频帧,不做数据增强,过一遍模型后直接得到最后的结果。

流视频动作分类算法

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第2张图片

该模型只需要做些微的修改就可以处理流视频。每隔一定时间,就从该时间内传输过来的视频中采样N帧图像。这些图像保存在队列Q中。工作内存(working memory)S_N包含N帧输入模型的图像。每当一个时间段结束,我们就队列Q中采样N/2帧图像替换掉S_N中N/2帧图像。清空队列Q。然后将S_N喂给模型,得到预测P。P_A是平均预测结果。将新预测P与P_A进行平均,更新P_A的值,输出新的平均预测结果P_A。具体算法如上图所示。

在Tesla P100 GPU上,该模型处理速度达到675fps(ECO Lite可达970fps)。由于模型只保存N帧图像,因此它内存消耗较小。

实验结果

 

只是用图像作为输入在UCF101和HMDB51两个数据集上的实验结果。

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第3张图片

在Kinetics数据集上的实验结果比较

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第4张图片

下图是在Something-Something数据集上的实验结果。Flow表示光流(optical flow)。

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第5张图片

下图是模型预测运行速度的比较。同时该表附带在UCF101和HMDB51两个数据集上的分类结果。

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第6张图片

下图是各模型计算量-准确率比较图。计算量用推理速度表示,即横轴。准确率就是纵轴。

论文介绍 -- ECO: Efficient Convolutional Network for Online Video Understanding_第7张图片

 

你可能感兴趣的:(深度学习基础理论与技术实践)