PaddlePaddle顶会论文复现 | ECO视频动作识别网络

  • 论文题目:ECO: Efficient Convolutional Network for Online Video Understanding

  • 论文链接:https://arxiv.org/abs/1804.09066

  • 代码链接:https://github.com/mzolfaghari/ECO-pytorch

此次课程是由百度组织,GPU和算力都是百度提供,课程链接如下:

https://aistudio.baidu.com/aistudio/education/group/info/1340

解决的问题

目前视频理解技术存在两个问题:

(1)推理的主要部分是在视频中局部进行的,因此,它忽略了几秒钟内动作中的重要关系。

(2) 虽然局部方法具有快速的性能帧处理,但是对整个视频的处理效率不高,阻碍了视频的快速检索或对长期活动的在线分类。

论文创新点

  • 1、我们提出了一种网络架构,它考虑了长期视频内容,同时实现了每个视频的快速处理。

  • 2、这种架构是基于网络中已经存在的融合的长时间内容,而不是一种事后融合。

  • 3、再加上一种利用相邻帧大量冗余的采样策略,可以产生高质量的动作分类和视频字幕,其速度高达每秒230个视频,其中每个视频可以包含几百个帧。

ECO动作识别网络简介

Long-term Spatio-temporal Architecture

主要网络架构如下图所示:

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

如上图所示,将视频帧的数量作为一个整体提供给网络。把视频分成N个子段,i=1,…,N个大小相等的子段,在每个子段中,随机抽取一帧。每一帧都由一个二维卷积网络(权重共享)处理,该网络产生编码帧外观的特征表示。通过联合处理覆盖整个视频的时间段中的帧,我们确保我们捕获了一个动作随时间变化的最相关部分以及这些部分之间的关系。

对帧的位置随机采样,这比总是使用相同的位置有优势,因为它在训练过程中会导致更多的多样性,并使网络适应动作实例化时的变化。这种处理利用训练期间视频的所有帧来探索视频的variance。同时,网络在运行时只需处理N帧,这使得该方法非常快速。

为了了解随着时间的推移,场景的不同外观是如何构成动作的,我们将所有帧的表示进行叠加(concatenate),并将它们输入到三维卷积网络中。此网络生成最终动作类label

PS:2DNet用来提取视频帧数特征并输出特征图,3DNet用来对动作进行分类,输出action的概率。

ECO Lite and ECO Full

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

 

ECO-Lite中的3D架构针对学习帧之间的关系进行了优化,但在仅从静态图像内容识别出的简单短期操作中,它往往会浪费电脑容量和资源。因此,我们设计了通过并行使用2D网络来扩展架构。

如上图所示,2DNetwork可以简化算法的处理和确保静态图像特征得到必要的重视,而3D网络体系结构则处理依赖于帧之间关系的更复杂的动作。二维网络接收所有样本的特征映射并产生N个特征表示。然后,应用平均池算法得到一个代表静态场景语义的特征向量。

网络细节

  • 2D-Net: 我们使用BN-Inception架构的第一部分(直到Inception-3c层)。它有2D过滤器和带有BatchNormlize的pooling kernels。我们选择这个架构是因为它效率快。每帧的输出由96张size为28×28的特征图组成。

  • 3D-Net: 对于3D网络,采用了几层3D-Resnet18,这是许多视频分类工作中使用的高效架构。其输出是不同类标签的one-hot向量。

  • 2D-: 在ECO-full设计中,我们使用2D-n与3D-net并行,直接提供静态的视频视觉语义。对于这个网络,我们从Inception-4a层到最后一个池层使用BN Inception架构。最后一个池化层将为每帧生成1024维特征向量。我们采用平均池化的方法生成视频级特征,然后与从3D网络获得的特征进行连接(concat)。

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

 

训练细节

我们使用带有Nesterov 动量的mini-batch SGD来训练我们的网络,并在每个完全连接的层中利用dropout。我们将每段视频分成N个片段,然后从每个片段中随机选择一个帧。此采样提供了对变化的鲁棒性,并使网络能够充分利用所有帧。此外,我们应用了数据扩充技术:我们将输入帧的大小调整为240×320,并使用固定角剪切和水平翻转的比例抖动(采样提供的时间抖动)。然后,我们运行每像素的平均减法,并将裁剪区域的大小调整为224×224。初始lr为0.001,当验证误差4个周期不变化时,初始学习率就下降10倍。我们训练网络的动量为0.9,权重衰减weight-decay为0.0005,mini-batch为32。

one more thing

作者还把网络运用在在线视频理解上,对网络进行了一些调整,调整算法和策略如下所示:

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

 

使用ECO的在线方法在Tesla P100 GPU上以675 fps(而ECO Lite为970 fps)运行。此外,该模型只需保留N帧就可以节省内存。这使得实现也可以在更小的硬件上实现,比如移动设备。

实验对比

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

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

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

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

ECO和ECO-lite结果比较。

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

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

PaddlePaddle顶会论文复现 | ECO视频动作识别网络

各个2模型动作推理结果。

PaddlePaddle顶会论文复现 | ECO视频动作识别网络