《ECO: Efficient Convolutional Network for Online Video Understanding》
前言
这是一篇2018年提交在ECCV的论文,在文章的 Introduction部分,作者描述了自己对构建行为识别模型的一些看法:1、作者认为一个动作良好的初始分类是可以从单帧中获取的。所以单帧的领域信息对于网络都是冗余的。2、要想连接远距离帧的上下文关系,不能只是简单的预测分数相加(类似TSN)。所以作者想到了可以结合TSN和3DCNN的各自优势,构建一个既可以减少冗余信息计算量又可以实现长距离帧与帧之间连接的模型。
这个模型有三个特点:1、与TSN类似从整个视频抽取固定数量帧来代表整个视频的信息。2、用3DCNN来学习帧与帧之间的联系。3、网络直接给出视频级的分数,不需要融合分数。
模型
模型的输入是从视频的N等份子片段中随机采样的一个帧(即输入为N个帧)。每个帧都由一个二维卷积网络(权值共享)处理,它产生一个特征表示编码帧的外观。然后将所有帧的表示叠加起来,并将它们输入到一个3D卷积网络中。这个网络生成最终的action类标签。
ECO Lite 和 ECO Full
A是ECO Lite,B是ECO Full,作者考虑的很周到,当我们处理那些短视频,或者是说一张图片就能识别的动作那么就没必要让它通过3DCNN(输入帧少了效果会变差),所以将ECOLite改进了下,就成了ECO Full。
网络细节
最前面的2D-Net用到了BN-Inception的第一部分(到Inception-3a层为止),每一帧输出由96组尺寸为28×28的特征图组成。3D-Net用了多层3D- resnet18。后面的2D-Net用了BN-Inception的inception-4a层直到最后一个池化层部分。最后一个池化层将为每一帧生成1024维的特征向量。利用平均池生成视频级特征,然后与来自3D-net的特征进行连接。
训练细节
主要总结下,训练步骤,具体的超参等要复现再看。作者预训练过程是用BN-Inception架构在Kinetics上训练得到的参数初始化2D-Net,同样,3D-Net用的也是别人的训练的权重。最后在Kinetics上对ECO和ECO Lite进行了10个epoch的训练。对于其他数据集,也就是对ECO训练好的参数调整下。
线上视频理解
上图是实现线上视频理解的算法,算法很简单。初始状态下有一个大小为N的空帧队列Q和内存SN,初始预测值为PA,当视频开始播放时,将播放的前N个帧存储到Q中。当Q中满了以后,把Q中的一半帧取出替换掉SN中一般的旧帧。清空Q,将SN喂给模型ECO来获取预测值P,用P来更新PA(图中采取的时平均法)。
实验
UCF101和HMDB
Kinetics
Something-Something
ECOEn指的是在{16,20,24,32}帧数的网络集合中获得的平均分数。