导师说这个不适合我,以后读研究生的时候再回来看吧。
---------------------割------------------------
(我是个新手)毕业设计需要,想找一种动作识别的方法,看到了这篇,粗略翻译一下前面一部分。
附别人的阅读笔记点击打开链接
相关信息点击打开链接
--------------------割--------------------------
摘要:人类行为的视频分析包括视频帧中时序关系的理解。CNNs是现在视频中行为识别的一种先进的方法。然而,把CNN用于捕捉这些关系还比较困难。比较先进的行为识别方法是依赖于传统光流法给CNN提前计算动作信息。这样的两步需要高额的计算、储存空间,也不是端到端的。本文中,我们提出了一种新型的CNN结构可以在关联帧中暗中捕捉动作信息。然后把它插入到一个很好的行为识别框架(two-streamCNNs)中。我们把这个方法叫做hiddentwo-stream CNNs,因为它只输入了原始视频,无需准确地计算光流就可以直接预测动作类别。我们的端到端方法比上文那种快十倍还能保持相近的精度。基于数据集UCF101和HMDB51的实验结果表明我们的方法比之前最好的实时方法都好得多。
一.介绍
人类行为识别领域在最近几年发展地很快。从人为设计特征到学习卷积神经网络;从外表信息编码到动作信息编码;从学习局部特征到学习全局视频特征。随着我们在端到端的学习框架中融合更多步骤,它的表现会更好。不过目前先进的CNN框架在直接从视频帧中捕捉动作信息还有困难。而传统的光流估计法被用来给CNNs预计算动作信息。由于以下原因,这个two-stagepipeline不是最优的: 1.光流的预计算更消耗时间和存储空间。就算使用GPU,光流的计算也是目前这个方法主要的计算上的瓶颈...。2.传统光流估计法完全独立于高级别的最终任务,比如动作识别,因此不是最优的。因为它不是端到端的,我们不能提取最理想的动作信息。
因此我们主要的目标是通过合并光流估值到CNN框架中以得到端到端的学习。我们希望通过连续视频帧输入,我们的CNNs学习到像素间的时序关系然后用这个关系去预测动作类别。理论上,考虑到CNNs在处理图片任务上的强大,使用它执行一个低级任务比如光流估计也是合理的。但是,实际上我们仍然面对很多挑战。以下是主要的问题:1.我们需要训练无监督模型。监督训练需要的地面实况流一般是不可获得的除了有限的合成数据。我们可以使用来自传统方法的光流计算来实现弱监督。然而,这个学习模型的准确性受限于传统方法。2.我们需要训练我们的光流估计模型,这个从光流估计工作中习得的模型和从其他图像处理工作中习得的模型有很大的不同,因此我们不能利用其他像是theImageNet challenges这样的工作来预训练我们的模型。3.我们呢不能仅仅使用传统光流估计损失函数。我们主要关心如何学习为了视频动作识别的理想的动作表达。因此,我们主要的不仅仅是最小化终端误差。
为了应对这些挑战,我们首先基于从一系列连续帧中产生光流的目标训练了一个CNN。通过一些特别设计的操作和无监督损失函数,我们新的训练步骤可以产生和传统方法所产生的相近的光流。如图1所示,我们叫它MotionNet。我们把它和一个时序流CNN相结合来给目标动作标签产生估计的光流。然后以一种端到端的方式调整这个堆叠时序流CNN来实现给输入帧预测动作类别的目标。相对于传统的two-stage方法,我们的端到端堆叠时序流CNN有很多优点:
1. 它不需要任何额外的标签信息,因此没有upfront costs。
2. 它在计算上很高效。它比原来的方法快十倍。
3. 它在存储上很高效。因为光流预测的高速,我们不需要提前计算光流并把它存到磁盘。反之,我们可以动态预测它。
4. 它还有很多提升的空间。传统光流法已经被研究了几十年了,提升空间有限。而这个端到端、暗中光流估计和最终的工作有关所以是完全不同的。
我们称这个新的two-stream方法为hidden two-stream networks因为它暗中给动作识别产生了动作信息。区分这两种给编码CNNs引入动作信息的方法很重要。虽然光流目前被用于表现视频中的动作信息,但我们不知道它是不是最佳的表现方式。可能有潜在的动作表现方式比光流要好。因此,我们相信这个端到端训练是一种比two-stage方法更好的方案。在介绍我们新方法的细节之前,我们提供一些关于本文工作的背景。
(翻了半天才翻了个介绍,接下来我要删减着翻了)
二.相关工作
这段主要就是介绍一些别人的方法,然后说其他人提出的方法都有这样那样的问题,不好不好。最后说在这篇文章中,他们没有处理错误标签的问题,因为他们只使用了Wang的基础的two-stream方法。否则,所有用于解决错误标签问题的方法应该也可以进一步提高他们的方法。
三.隐藏的双流网络
在这部分,我们详细说这个网络。在A部分,我们介绍为了光流计算所用的无监督网络,它实际应用良好。我们叫它MotionNet。我们也做了一个CNN架构研究用来找能平衡精度和效率的最佳网络。在B部分,我们把时序流网络堆叠到MotionNet上来实现端到端训练。我们叫这个堆叠网络the stacked temporal stream CNN。也实验了在扩展时序流里进行多任务学习并比较这两种选择。最后,我们在C部分介绍了the hidden two-stream CNNs,它结合了stacked temporal stream和spatial stream。
A无监督光流学习
把光流估计看作图像重建问题。基本上,给一个frame pair,希望能产生可以使我们从一帧重建另一帧的光流。正式地说,把邻近的帧I1和I2作为输入,我们的CNN产生一个流动区域V。然后用预测的流动区域V和I2,希望得到重建帧I1’,用逆向映射,例如I1’ = T[I2,|V],T是逆向映射函数。我们的目标是最小化I1和I1’间的光度误差。直观上看如果估计的光流和下一帧可以用来完美地重建当前帧,那这个网络应该已经学会表达隐藏的动作。
MotionNet 是一个全卷积网络,由收缩的部分和扩展的部分组成。收缩的部分是堆叠的卷积层和解卷积层。如图1所示。这个网络的细节可以在表1中看到,上半部分是MotionNet,下半部分是传统的时序流CNN。
首先,我们设计了一个关注少量位移动作的网络。对于真实数据比如油管视频,我们经常遇到前景(人)动作小但是背景动作大(摄像机)的问题。因此,我们用3*3的核通过这个网络去检测局部小动作。另外,为了保留这些小动作,我们应该保留高频图像细节直到下一步。如表1所示,我们前两层没有用striding。这是为了让我们的深度网络应用于低分辨率图像。我们用跨步卷积而不是池化来给图像减少采样,因为池化不利于密集逐像素预测工作。
其次,MotionNet在多尺度计算多次损失。因为在收缩和扩展部分的跳跃连接,中间损失可以互相调整并指导前面的层去更快地汇聚最终目标。我们实验了三个损失函数来帮助我们产生更好的光流。这些损失函数是:1. A standard pixelwise reconstruction error function 2. Asmoothness loss 3. A structural similarity (SSIM) loss function MotionNet总共的损失是上面三个的加权和。在IV-B中会讲怎么确定权重。
第三,无监督的光流学习引入了同质区域的人工操作,因为亮度假设被破坏了。我们在解卷积层间插入额外的卷积层。
在V-A,我们展示了每个策略的贡献。虽然我们的网络像一个并行的工作,但是MotionNet和FlowNet2从根本上是不同的。首先,我们对光流预测是无监督学习,它让我们能避免合成数据和真实数据间主要的差距。其次,可以很好地平衡精度和效率。
CNN 结构研究 我们工作的主要目的之一是更快更好地预测光流。CNN的结构很重要,因此我们探索了三种额外的结构用三种深度和宽度。有Tiny-MotionNet,VGG16-MotionNet and ResNet50-MotionNet.最后我们会在V-B展示基本的MotionNet,还是它最好,接下来都说它。
-------------------割-----------------