【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017

Two-Stream Inflated 3D ConvNets (I3D):

         文章提出了一种I3D(Two-Stream Inflated 3D ConvNets)模型,该3DCNN模型是由2DCNN Inception-V1扩张而来,并且可以使用在ImageNet上预训练的参数,实验结果表明这个模型在各个标准数据集上都取得了当时最好的结果。

五种常见的视频分类网络结构:

       作者基于在ImageNet上预训练的带BN的InceptionV1为骨干,搭建了五种行为分类网络,其中四种为基于以前论文搭建的网络,最后一种作者提出网络I3D,如图1为结构描述,如图2为参数大小和网络输入设置。具体每种结构描述如下:

      【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017_第1张图片

ConvNet+LSTM:每一帧都提取feature后整视频pooling,或者每一帧提feature+LSTM。缺点,前者忽略了时间信息,open和close door会分错,如图1(a);

改进C3D:比二维卷积网络有更多的参数,缺点参数量大,不能imagenet pretrain,从头训难训。Input,16帧 输入112*112,本文实现了C3D的一个变种,在最顶层有8个卷积层,5个pooling层和2个全联接层。模型的输入是16帧,每帧112x112的片段。不同于论文中的实现是,作者在所有的卷积层和全联接层后面加入了BN层,同时将第一个pooling层的temporal stride由1变为2,来减小内存使用,增加batch的大小,这对batch normalization很重要,如图1(b)。

双流网络:由于LSTM只抓住高层的卷积后的信息,底层的信息在某些例子上也非常重要,LSTM train消耗很大。RGB帧和10个堆叠的光流帧,光流输入是2倍的光流帧(x,y水平垂直的channel),可以有效train,如图1(c)。

新双流网络:作者实现使用InceptionV1,后面的融合部分改为3D卷积,3D pooling,最终通过一个全连接层进行分类。网络的输入是相隔10帧采样的5个连续RGB帧,采用端到端的训练方式,如图1(d)。

双流Inflated 3D卷积:扩展2D卷积base model为3D base model卷积,卷积核和pooling增加时间维,尽管3D卷积可以直接学习时间特征,但是将光流加进来后会提高性能。

I3D结构扩展方式:如果2D的滤波器为N*N的,那么3D的则为N*N*N的。具体做法是沿着时间维度重复2D滤波器权重N次,并且通过除以N进行归一化。

二、I3D网络结构

Inflated“就说明这是一种将2DCNN扩充为3DCNN的网络,2DCNN网络使用的也是InceptionV1网络,其扩充为3D后的结果如下图所示:

○把two-stream结构中的2D卷积扩展为3D卷积。由于时间维度不能缩减过快,前两个汇合层的卷积核大小是1×2×2,最后的汇合层的卷积核大小是2*7*7。和之前文章不同的是,two-tream的两个分支是单独训练的,测试时融合它们的预测结果。

【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017_第2张图片

怎么inflate?

     文章中使用的方法是直接将尺寸为N×N 的2D卷积核扩充为尺寸为N×N×N 的3D卷积核。

如何使用ImageNet预训练的参数?

      3D卷积核使用ImageNet预训练参数的方法是对2D卷积核的参数沿着时间复制,最后除以3D卷积核的时间维度的大小即可。

扩充全部3D卷积核的时间维度等于空间维度合适吗?

      将所有的 N×N 2D核扩充为 N×N×N 3D核可能并不合适,因为时间维度的最优值可能受到帧率等的影响,所以文章通过实验确定了最优的3D核时间维度的尺寸。

如何进一步提升I3D的性能?

     为了进一步提升网络的性能,文章在网络中加入了光流的输入,RGB视频和堆叠的光流分别输入到3D卷积网络中得到输出结果,最终的结果为这两个流的结果的融合。

 

实验:

对比上面几种视频分类网络结构的输入参数个数和输入视频时间:

【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017_第3张图片

几种网络结构在不同数据集上的对比: 【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017_第4张图片

        体系结构比较:(左)UCF-101的split 1训练与测试;(中)HMDB-51的split 1训练与测试;(右)Kinetics训练与测试。所有模型都是基于ImageNet预先训练的Inception-v1,除了3D ConvNet,一个类似于C3D的[31]模型,它有一个定制的体系结构,是在这里从头开始训练的。注意,单个RGB和流流上的两个流架构号可以被解释为一个简单的基线,该基线将ConvNet独立地应用于25个均匀采样帧,然后对预测进行平均。

网络最终结果对比:

【视频行为识别4】I3D:Two-Stream Inflated 3D ConvNets —CVPR2017_第5张图片

 

你可能感兴趣的:(视频行为识别)