双向卷积神经网络-凯发k8官方网
文章标题:a multi-stream bi-directional recurrent neural network for fine-grained action detection引用:singh b, marks t k, jones m, et al. a multi-stream bi-directional recurrent neural network for fine-grained action detection[c]//proceedings of the ieee conference on computer vision and pattern recognition. 2016: 1961-1970.
文章链接:https://openaccess.thecvf.com/content_cvpr_2016/papers/singh_a_multi-stream_bi-directional_cvpr_2016_paper.pdf
1 介绍
本文展示了一种检测视频中动作的方法。
定义:
1. 动作检测:是指在一个长视频中从时间和空间两个维度定位已知动作集里的每个动作的每一次出现。这和之前研究的视频动作分析主要集中在动作识别 (也称作动作分类)不同。
2. 动作识别:输入一个被剪辑的视频段,把它分类为n个已知动作中的一个。不需要在时间维度上定位。每个输入视频段被剪辑为精确的包含一个动作的持续时间。而且不需要考虑视频段可能不包含任何动作。
难点:总的来说,动作检测更难。然而,这些困难是值得被克服的,因为动作检测和真实世界的应用更相关。本文关注精细的动作检测,意味着被检测的动作类别之间的不同很小。例如厨房中的切和剥皮。
简要介绍本文网络:作者提出的了一个多路双向递归神经网络(msb-rnn)。我们称这个网络为多路是因为开始的卷积神经网络有4路:两路处理动作和外表信息,而每类信息又分别来自整个图片和以人为中心的剪辑图片。动作信息使用像素位移,或称作像素跟踪,而不是光流(optical flow)。输入视频被分割为一系列只有6帧的视频块。4路卷积的输出为双向lstm的输入。本文展示了在人周围使用跟踪边界框的重要性。
2 网络框架
我们的网络框架如图1和图2所示。我们使用vgg训练4个卷积神经网络。图1:框架。视频块输入到多路网络(msn)中生成特征表示。接下来这些特征输入双向lstm,用来预测动作标签。多路网络的细节在图2中。图2:多路网络(msn)。网络cnn-t计算像素跟踪(动作)特征。网络cnn计算rgb图像特征。
介绍网络:一个小的视频块包含6个连续的帧。在图2中,其中两个网络训练整帧的视频块(分别用于图像和动作)。另两个网络训练剪辑后的跟踪边界框。在4路网络的fc7输出层之后,学习一个fully-connected映射层整合这4个独立网络的输出。映射层的输出被输入到双向lstm。在lstm隐藏状态上应用一个fully connected层和softmax层,就可以得到对应每个动作的中间分数。双向lstm的forward和backward都对每个动作类给出了分数。最后,平均两个lstm的分数就可以得到每个动作的最后分数。在训练长序列时,back-propagation只能完成固定步数,所以我们保留前一个视频的最后一个隐藏状态作为下一个视频隐藏状态的初始值。
选择人体追踪的原因:我们需要获取空间和长时间的时序信息。人体追踪移除了位置方差,所以更容易学习。有些动作是依赖所处的位置的。对于静止相机的画面,这些动作永远发生在相同的图片位置。例如洗刷永远在水槽附近。正是由于这个原因,我们为像素跟踪和图像训练了两个独立的神经网络。像素跟踪中每一个像素点在视频块的几帧中都位于相同位置。这个排列使像素跟踪可以比堆叠光流获取更丰富的信息。
2.1 跟踪方法
任何好的人体跟踪算法都可以提供边界框。我们使用一个简单的基于状态的跟踪。保持边界框的大小不变,更新边界框的位置使边界框内的流强度保持最大。
2.2 训练光流网络
选择像素跟踪的原因:在堆叠光流中,画面上一个移动点的动作向量改变这个点在每帧中的位置。因此为了分类一个动作,卷积网络需要学习光流的空间移动,需要更多的参数和数据。一个表示视频帧移动的替代方法是计算从中间帧 t 到它前k帧和后k帧的光流。我们称这种表示为像素跟踪,如图3所示。图3:中间行的方块表示图像序列,箭头表示光流计算的一对图像。第一行计算像素跟踪中光流的y值;第三行计算堆叠光流的y值。在像素跟踪中,只有强度改变,图像的空间格局保持不变,因此一个时序上卷积层就足够用来学习动作特征。在堆叠光流中,剪影向左上方移动。
如何通过像素跟踪生成动作信息:在所有2k帧中,每个点到t帧上的对应点的光流值都位于t帧上点的位置。在图3第一行,只有光流图像的强度改变。因此,对比堆叠光流,网络更容易学习每个像素的时序滤波器。
为了学习每个像素的动作模式,使用一个1*2k的卷积核生成每个像素点移动的特征映射。而堆叠光流的网络不能在第一个卷积层学习那些在2k帧内移动超过3个像素的像素点的动作模式。
2.3 训练双向lstm网络
输入:
rnn隐藏状态:
输出:
通过下面递归方程迭代:
,
是激活函数(activation function)
是映射输入到隐藏状态的权值矩阵。
是相邻时间隐藏状态间的转换矩阵。
是映射隐藏状态到输出的矩阵。
和
是偏差项。
lstm的权值更新方程为:
这些参数的定义都和标准的lstm相同,
分别是input gate, forget gate, output gate, memory cell向量。
动作检测选择lstm的原因:
1. 在动作识别数据中,视频段被剪辑后只包含一个动作,通常很短(2-20秒)。因此,没有足够的上下文可以通过lstm学习。而长时间的上下文学习可以包含一些特性,比如动作持续时间,接下来是哪个动作等。所以lstm更适合我们现在的任务。
2. 动作识别只分配一个标签给一个视频,假设一个视频有100帧,就算只有50帧预测正确,这个视频也会得到正确的动作识别结果。而动作检测需要给每帧分配一个标签。如果50个预测正确的帧不连续,将产生很多动作段,而只有其中一段能被分配正确的标签,其他都是false positive。双向lstm更倾向于生成连续的动作段,因此,有较少的false positives。然而,lstm对动作识别没有任何帮助。
结尾:本文是2016年的cvpr,输出是对视频的每一帧都预测了动作标签,和我们定义的action segmentation相似。但是还是延续之前action recognition的做法对视频分块处理,感觉像是两者之间的过渡。随后几年的文章则是直接使用视频特征设计神经网络。继续阅读,期待下一篇。
欢迎关注,每天一起学习视频动作检测和动作分割的知识
总结
以上是凯发k8官方网为你收集整理的双向卷积神经网络_一个用于精细动作检测的多路双向递归神经网络的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: