《ECO:Efficient Convolutional Network for Online Video Understanding》PaddlePaddle论文复现营
https://aistudio.baidu.com/aistudio/education/group/info/1340
1、介绍
使用单帧的图像,在很多情况下已经可以获得一个不错的初始分类结果了,而相邻帧间的很多信息都是冗余的。因此,ECO 中在一个时序邻域内仅使用单帧图像。
为了获得长时程的图像帧间的上下文关系,仅仅使用简单的分数融合(aggregation) 是不足够的。因此,ECO 中对较远帧之间采取对 feature map 进行 3D 卷积的方式进行 end-2-end 的融合。
2、工作
与TSN类似,从整个视频中抽取固定数量的帧来覆盖长期时间结构,以便理解视频。这样,采样帧跨越整个视频,与视频的长度无关。
与TSN不同的是,我们使用3D网络来学习帧间的关系,并在整个视频中跟踪它们。该网络经过端到端训练,以学习这种关系。
3、网络框架
采用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卷积网络专注于提取视频复杂的时序特征,让模型有足够的能力应对需要观察一定时间才能分辨的动作。
4、模型结构细节
采用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卷积网络的结构。
5、算法
6、实验
不同采样帧下的精度性能对比。
7、总结
与TSN类似的视频帧采样
采用3D卷积做融合
直观的motivation+简单有效的框架设计