《Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset》概述

《Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset》概述


引言:

最近阅读了本篇论文,这是一篇发表在CVPR’17年的文章,总体上的贡献在于发布了一个新的数据集以及对3D卷积+Two-Stream方法的结合形成一个新的网络架构(I3D),以下是对本篇论文的概述,如有错误,欢迎留言指正。


一、主要贡献:
  1. 公布了新的Human Action Video 数据:Kinetics,它有400个人类动作类以及每个类超过400个片段,收集自现实的、具有挑战性的YouTube视频;
  2. 作者提供了一项分析,说明当前的体系结构在此数据集的操作分类任务中进展如何,以及在进行Kinetics预训练后,在较小的基准数据集(HMDB-51 and UCF-101)上的性能改进了多少;
  3. 提出来一个新的模型结构 Two-Stream Inflated 3D ConvNet (I3D) ,就是将标准的Two-Stream中的卷积核变为3D卷积;

作者在文中提到了该领域现存在的一些问题:

  1. 现有的数据集太小,限制了视频动作识别的发展;
  2. 对于构建网络架构还不太明确:
    • 卷积核是使用2D还是3D的卷积核;
    • 网络的输入是原始RGB视频还是包括计算得到的光流信息;
    • 在2D ConvNet的情况下,又如何利用LSTM或者时间上的特征融合来做到跨帧传播信息。

二、经典的网络架构:

作者列举了几种比较经典的网络架构,并在新的数据Kinetics上进行预训练观察他们的性能如何,以及和作者提出的I3D架构进行比较,下图为作者提出的网络架构模型:

2.1 实验策略:

作者以一个普通的ImageNet预先训练的图像分类体系结构作为骨干(除了C3D),选择了带批归一化的Inception-v1,并以不同的方式对其进行变形。

2.2 模型介绍:

ConvNet+LSTM:

  • 由于ConvNet结构在图片分类中表现的效果很好,因此有很多实验将其用在了视频分类中。这种方法能够独立的从每一帧中提取特征,然后综合这些特帧得到一个视频级别的特征描述;
  • 虽然这在 实验中使用方便,但却完全忽略了时间结构的问题;
  • 因此为了解决这一问题,通常ConvNet中添加LSTM,以此来捕获各帧之间的时间信息;

模型细节:

把一个包含512个隐含节点的LSTM 层以及BN放在Inception v1的最后一个average pooling层后面(即分类器之前),最后跟的是一个用于分类的全连接层;输入帧是在25帧/s的视频流中每5帧取1帧。

3D ConvNets:

  • 它们有一个非常重要的特点:直接创建时空数据的层次表示;
  • 但是由于额外添加的维度,它们比起2D卷积有更多的参数,这就使得3D卷积很难去训练;
  • 由于使用的是三维的卷积核,无法直接用在ImageNet上预训练过的网络。

模型细节:

使用的是C3D模型的一个变种,8层卷积、5层pooling、2层全连接。与C3D的区别在于这里的卷积和全连接层后面加BN;且在第一个pooling层使用stride=2,这样使得batch_size可以更大。输入是16帧,每帧112*112。

Two-Stream Networks:

  • LSTMs可以捕获对高层变化,但可能无法捕捉精细的低层运动,这在许多情况下是至关重要的。并且训练代价很大,因为因为它需要通过多个帧展开网络以进行时间反向传播;
  • 而Two-stream从不同的角度解决了这个问题:一路是RGB帧作为输入,捕捉空间变化信息,另一路是光学作为输入,捕捉时间变化信息。这样就对时间和空间的信息提取都比较好;
  • 图(c): 取一帧图像预测的结果与光学流图像预测的结果取平均;
  • 图(d): 是在图(c)基础上的一种扩展,通过一个3D ConvNet对多帧的信息进行融合,取到两个Stream的最后一个average pooling层的输出,作为3D ConvNet部分的输入;

模型细节:

网络的输入是相隔10帧采样的5个连续RGB帧以及相应的光流片段。在Inception-V1最后一个average pooling 之前,使用512个 3x3x3 的卷积核,然后是一个 3x3x3 的max-pooling,最后是一个全连接层;

The New: Two-Stream Inflated 3D ConvNets:

3DConvNet可以直接从RGB流中学习时间模式,但通过包含光流的使用仍然可以极大地提高其性能,因此作者采用了Two-Stream+3D ConvNet的方式

  • 把2D模型转化成3D模型结构,即把所有卷积核增加一个维度,拓展为 T T Tx N N Nx N N N;
  • Bootstrapping 3D filters from 2D Filters:为了能够使用在ImageNet上预训练的权重值来初始化网络,作者通过一张图片复制 N N N次,这样就形成了一个N帧的视频,然后就可以在使用3D卷积核的网络上预训练了,最后为使得激活函数值和在2D卷积上训练单张图片保持一致,通常要将卷积计算所得的值都除以 N N N,就得到和2D卷积上一样的激活函数值了,下图来源自简书,可以参考下;
  • Pacing receptive field growth in space, time and network depth :在时间维度上的感受野要如何变化,即Conv和Pooling的stride怎么选;这两个都是影响feature receptive field的主要因素
    • 在Image模型中,对待水平和垂直两个空间维度往往是一致的,也就是两个维度上pooling核大小以及stride都一样;
    • 在时间维度上这样的对称对待未必是最优的(也就是时间维度上的pooling核大小选与空间上的一致是不可取的),因为这取决于帧率和图像大小之间的相对值
    • 因此本文在将Inceptin-V1扩充的时候,并不是简单的做对称维度,扩充后的Inception-V1模型结构如下所示:

可以看到原来的Inception-v1结构中的convolution以及pool全部都成了3D的;并且结构中大多数kernels和strides保持了对称的特征,例如第一个(7,7)变成(7,7,7),stride也由原来的(2,2)变成了(2,2,2)但是少数做了改变,比如前面的两个max-pool,并不是(2,2,2),而是(1,2,2)这样能够更好的保留时间信息;还有最后的这个avg-pool,并不是(7,7,7)而是(2,7,7)。



最后就是作者给出了一些实验细节,以及实验结果对比,感兴趣的话可以阅读原文。

参考文章:
https://blog.csdn.net/Gavinmiaoc/article/details/81208997
https://www.jianshu.com/p/196ff61d6631

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值