论文地址

简介

一般的视频动作识别都是将视频分为两个流,一个是空间流一个是时间流。空间流描述的是形状信息,时间流描述的是运动信息。网络需要把这两个流的信息进行融合。这篇论文有以下发现:
1. 不是在softmax layer对两个流进行合并,而是在卷积层就可以进行合并,没有损失精度,而且大大减少了参数量
2. 最好是在最后边的卷积层进行融合,而不是前边。并且发现在分类预测层进行额外的融合可以提高动作识别的精度。
3. 对融合层附近的卷积层进行池化也有利与提升模型精度。
基于上边的研究,这篇论文提出了一个新的卷积网路架构,用来对视频进行时空信息的融合。并且用这种架构的模型预测的performace也很好。

介绍

目前的动作识别是一个高度活跃的研究领域,并且现在模型精度还远远不如人类。目前和其他计算机视觉领域一样,大家都在用卷积神经网络来解决这个问题。
目前在视频动作识别领域卷积神经网络还不如向人脸识别,物体分类,动作识别领域那么表现优秀。
1. 一个原因是训练数据太少或者噪音太多。和图像分类相比,视频动作识别还受到运动和视角的影响。所以可能需要更多的训练样本。
2. 另一个原因是卷积神经网络架构目前还不能很好的对时间域的信息进行有效利用,目前作用还是集中在空间域,比如物体识别。

如上图所示,是两个流前三卷积层的输出。上边是时间域,下边是空间域。我们可以发现一些动作可以从一个静止的图片发现。比如上图的射箭。但是有一些情况,单图信息量不足以识别动作,就需要运动的信息。比如分辨跑步还是走路,打哈欠还是笑,自由泳还是蛙泳。

而two-stream的架构通过独立的训练两个卷积神经网络,一个空间域来识别静止图片中人的外形,一个用光流栈(stacks of optical flow)来训练.实际上,验证表明,只用光流这个卷积网络就可以识别大部分的动作。用的是UCF101数据。

然而,two-stream架构还有之前的网络在视频动作识别里都不能利用两个非常重要的线索:
1. 识别出什么东西在向哪里移动。外形识别不能不能和光流识别的信息对应起来。
2. 这些线索是如何随时间演变的。

这篇论文的目标就是设计一个架构来纠正这个问题,它可以在不同的feature抽象层次,结合时间和空间的线索。

相关研究

最近的一些应用卷积神经网络进行动作识别的方法,都是想着利用时间域的信息。一个自然的想法是在第一层把视频的帧图片按时间堆叠。这样就把一个2D的卷积神经网络扩展到了利用时间信息。所以第一层就学习到了空间和时间结合的信息。在对时间信息取样上,有几种方法,
1. 早期融合,(early fusion)让第一层的filters对视频的不同帧进行操作。
2. 慢融合,(slow fusion),随着网络层数的逐渐增加对时间域信息的加入。
3. 后期融合,把两个独立网络的全连接层进行合并,这两个独立网络处理的是有时间间隔的帧。

这些架构对时间模型都不是特别敏感,这些模型的表现和一个纯的只考虑空间域的网络差不多。这说明他们的模型并没有从时间域获取什么有用的信息。

C3D这个办法学习3D ConvNets,他是在一个16连续帧的视频上,用3x3x3的kernel的filter来进行学习。他们让所有filter都对时间和空间进行操作,据说得到了一个更好的表现。但是他们的网络更深。

实现

我们是根据原来的tow-stream架构来设计的,这个架构有两点不足:
1.不能基于像素的在时间和空间信息进行对应。因为时间和空间信息只是在分类预测时融合。
2.在时间的量度上不足,因为空间的卷积网络只实在单一的frame上进行。时间的卷积网络在一组L个时间临近的光流frame上进行(比如,L=10)

空间融合(Spatial fusion)

这一部分我们考虑不同的架构来融合两个网络。我们设想是可以在一个特定的层对时域和空域进行融合,并且他们时像素级对应的。比如你想识别刷牙还是梳头,如果手在周期性的在特定的空间运动,时域的网络就可以识别这个动作。空域的网络识别位置,头发还是牙齿。他们两个的结合识别整个动作。

当两个网络有着同样的分辨率的时候就很容易做到对应。只要简单的把一个网络的层堆叠到另一个网络上就好了。但是仍然有问题就是一个网络的channel和另一个网络哪个channel对应呢。

比如说在空域里不同的channel对应不同的脸部区域识别,嘴,头发等,而且时域里一个channel对应某个脸部部位的运动。因此,如果我们把时空域不同的channels堆叠在一起时,下游层的filter就需要在这些堆叠的层里找到它们对应的关系。我们下边就说一下如何具体的在两个网络里融合层。
f: x_{t}^{a},x_{t}^{b} ->y_{t} 表示将两个feature x_{t}^{a}\in \mathbb{R}^{H*W*D},x_{t}^{b}\in \mathbb{R}^{{H}'*{W}'*{D}'}在时间t进行融合,生成outputy_{t}\in \mathbb{R}^{{H}''*{W}''*{D}''}
启动H,W,D代表着高度,宽度和channel数。当应用在卷积网络的正向传播时,包含了卷积层,全连接层,池化层,以及非线性层。f可以应用在不同层,从而达到早期融合,晚期融合或者多层融合。我们研究了下边的这些,为了简单我们认为H={H}'={H}'',W={W}'={W}'',并且去掉了t下标。

Sum fusion
y^{sum}=f^{sum}(x^{a},x^{b})这个计算了两个网络的层在位置i,j和channel d的和。这样相加随意的定义了两个网络对应channel的和。虽然随意,不能保证不同网络的channel确实有意义对应,但是后边网络的filter也可以通过参数学到一些信息。

Max fusion
和上边sum fusion类似,但是取得连个网络同一channel里的最大值。

Concatenation fusion
串联层把两个网络的channel串联堆叠起来,信息都完整保留,让后边的层取学习。
y_{i,j,2d}^{cat}=x_{i,j,d}^{a}
y_{i,j,2d-1}^{cat}=x_{i,j,d}^{b}
y\in \mathbb{R}^{H*W*2D}

Conv fusion
Conv fusion是在对Concatenation fusion的基础上增加了卷积操作和biases。
y^{conv}=y^{cat}*f+b
其中f是filter,它的维度为f\in \mathbb{R}^{1*1*2D*D}
f通过自己的权重调节可以从两个融合的网络里学到对应关系,从而最小化融合的joint loss。而且它还有一个作用就是把Concatenation产生的2D个channel数降低到了D个。

Bilinear fusion
y^{bil}=f^{bil}(x^{a},x^{b})
它的优点是两个网络里的channel两两通过乘积有了联系,缺点是输出向量为原来channel数的平方。
y^{bil}=\sum_{i=1}^{H}\sum_{j=1}^{W}{x_{i,j}^{a}}^{T}x_{i,j}^{b}
y^{bil}\in \mathbb{R}^{D^2}

Fuse 的位置

根据之前所说,我们可以在任意位置对两个流进行融合,只要他们的维度相同,如果稍微不同,可以通过padding来解决。
以VGG-M 模型为例,我们在不同的位置进行融合,可以看到它们对模型参数的影响是差不多的。除了在全连接层进行融合,我们也可以在之前层进行融合:

左边的例子展示了在conv4之后的fusion。而右边的例子展示了两次融合。分别在conv5和fc8。
右边的例子最后在第一次融合后,仍然独立保持了两个网络,一个是时空混合的网络,一个是独立的空间的网络。

时间域的融合


我们现在需要考虑如何如何在时间t上把feature x进行combine。最终生成一个output y。其中一种处理时间域连续输入的办法是把网络对不同time的预测值进行平均。这种架构只是在2D上进行池化。比如上图a所示。

3D Pooling,用max-pooling对一个大小为 W'*H'*T' 的立方体进行3D pooling ,如上图b所示。需要注意的是这里没有跨channel的pooling。

3D Conv+Pooling: 首先用D'个filter对四维的input x 进行卷积,filter f\in \mathbb{R}^{H''*W''*T''*D*D'},再加上一个biases b\in \mathbb{R}^{D}
输出y = x_t*f+b
然后,再接一个上边说到的3D pooling,如上图c所示。fitler f的作用是对局部时空features的融合权重化。一般邻域选择为333

讨论

研究发现对时域卷积层进行max pooling效果最好。这里我们用3D max-pooling 带来了features 位置在时域上对小的变化的不变性。而且3D conv让时空与的filter可以通过训练来学习。

推荐架构

我们的时空融合的ConvNet 应用了双流结构,
一个流在一个小时间粒度(t\pm \frac{L}{2})上捕获了短期信息。
一个流在粗粒度的时间粒度(t+T_\tau )上捕获相邻时间域的input的信息。两个流用一个3D filter进行融合。这个3D filter可以学习到用蓝色表示的高度抽象的空域流的信息和用绿色表示的时域流的对应关系。以及局部关于x,y,t的组合的weight值。融合后的时空流和独立的时域流都在通过在时间和空间上的3D pooling去学习时空(左上)以及独立的时域(右上)features,然后用来识别输入的视频。

和其他网络的比较

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: