摘要
大多数的双流方法:一个流输入RGB 另一个流输入光流。虽然光流能够提高性能,但是光流计算耗时。所以双流的这种方式是很难去进行低延时的应用。在这篇paper中,作者引入了两种方式来专门操作RGB帧模仿运动流,训练一个标准的3DCNN。首先,与Flow流相比,通过最小化基于特征的损失,我们表明网络以高保真度重现运动流。其次,为了有效地利用外观和运动信息,我们使用基于特征的损失和用于动作识别的标准交叉熵损失的线性组合进行训练。我们将使用这种组合损失训练的流表示为MotionAugmented RGB流(MARS)。作为单个流,MARS比单独的RGB或Flow执行得更好与RGB和Flow流的72.0%和65.6%相比,Kinetics的准确性分别为72.7%和65.6%。
1.Introduction
基于双流RGB和Flow的结合3D-CNN产生最好的结果是有一定的缺点。首先,双流方法需要从RGB帧中提取显式和准确的光流,这是计算成本很高的,如图1中MiniKinetics数据集[44]上的精度与时间图所示。从图中我们可以观察到Flow和RGB+Flow明显比RGB慢。计算流的有效方法确实存在,但它们不是那么有效。其次,在计算网络的前向通过之前,需要估计光流。因此,双流方法不仅需要大量的计算资源,而且还导致在线场景中识别动作的高延迟。因此,即使在架构优化后,它们也不能应用于实际应用[44]。
在本文中,我们提出了两种新的学习策略,基于蒸馏[14]和特权信息下学习[39]的概念,以避免测试时的流计算,同时保持双流方法的性能。首先,我们训练一个标准的3D CNN,它以RGB作为输入,并从图像中产生特征流。更准确地说,我们将网络最后一个完全连接层之前的层的特征与来自运动流的同一层的特征之间的差异最小化(参见图2)。换句话说,我们的流在架构和输入方面类似于RGB流,但使用不同的损失函数进行训练。我们表明,通过使用这种方法,可以从RGB帧中获得光流特征,而无需在推理过程中进行显式的光流计算。为了便于标记,我们将此网络表示为运动模拟RGB流(MERS)。可以有效地将从光流获得的知识转移到基于3D卷积的RGB输入流中。
通过将标准RGB流与仅基于RGB输入的新流(MERS)相结合,我们获得了与双流方法(RGB+Flow)相当的精度,但计算成本显著降低。我们用MARS表示MotionAugmented RGB Stream网络。实验强调,使用我们的新方法训练的网络,比单独的RGB和Flow流表现更好,与双流组合(RGB+Flow)相当。这表明MARS有效地利用了外观和运动信息。具体而言,MARS在 Kinetics上获得了72.7%的精度,而RGB和Flow分别为72.0%和65.6%。类似地,在HMDB51 (split-1)上,MARS获得了80.1%的精度,而RGB和Flow分别为73.5%和75.9%.
2.Related work
Two-stream networks
Simonyan和Zisserman[32]提出了一种双流2D CNN架构,其中一个流在RGB帧上操作,另一个在光流上操作。对这两个流进行训练以估计动作类标签,并通过对两个流的得分进行平均来获得最终标签。Feichtenhofer等人[8]对这种双流网络进行了改进,采用了不同的策略来融合这两种流。这种双流范式的最初工作集中在2D卷积神经网络上,但由于3D卷积神经网络比其2D等效物更好地学习时空特征,因此向3D卷积神经网进行了过渡[37]。这种转变的原因是:(i)计算成本高,主要是由于需要优化大量参数[37,38,44],以及(ii)由于数据集小而导致的过拟合问题。为了解决过拟合问题,Carreira和Zisserman[2]引入了动力学数据集[18],该数据集足够大,可以成功训练3D卷积神经网络[11]。使用在动力学上预训练的RGB和Flow流,I3D[2]在HMDB51[20]和UCF101[33]数据集上达到了最先进的水平。[38,44]等方法用单独的空间和时间卷积取代了3D卷积,这显著减少了要学习的参数数量,以缓解计算成本问题。不管它们的差异如何,上面讨论的所有方法都使用手工制作的光流特征,如[1,45]用于运动流,这为快速和在线推理造成了瓶颈。当组合两个流时,这种改进表明,尽管存在时空卷积,但出现流未能完全捕获来自运动流的信息。
相比之下,我们的方法避免了测试时的流量计算,同时保持了双流框架的最先进性能。
Joint appearance and motion modeling
卷积神经网络也被用于直接从RGB帧估计光流[6,16,27],而不是依赖于手工制作的光流方法,通常具有编码器-解码器结构。这使得Flow流可以使用光流损失来引导流分量,即,从RGB帧学习光流,然后利用估计的光流识别动作,从而端到端地进行训练。这种损失的一种替代方案需要地面实况光流,即使用无监督损失在无法获得地面实况的行动数据集上进行训练[49]。其他方法,如[4,26],使用了脱壳光流方法([4]中的[1],EpicFlow[29]i n[26])作为伪地面真实流。
Fan等人[7]以可微分模块的形式将TV-L1流[45]集成到CNN中。他们没有从头开始学习流量模块,而是使用在光流基准上学习的模型对其进行初始化,并且只训练网络进行动作识别,而不会对流量造成任何损失。正如预期的那样,以这种方式学习的流量模块的输出不再对应于精确的光流。与这些工作相反,我们建议计算运动流中特征的损失,从而允许网络模拟或增强Flow流。
最近的工作试图将外观和运动建模为一个单一的流[21,35],其中的模块旨在更好地利用时间信息,从而产生复杂的架构,以获得适度的增益。我们表明,我们最小化基于特征的损失的策略提供了一种将时间信息集成到标准3D卷积架构中的有效方法。
Distillation
我们提出的学习方法与广义蒸馏[24]的概念有关,该概念结合了蒸馏[14]和特权信息[39]。蒸馏最初是为了将复杂模型的类概率用作较小模型的“软目标”,将复杂模型中的知识从复杂模型转移到简单模型[14]。
本着类似的精神,我们的目标是将知识从运动流转移到只有RGB输入的网络,而无需显式的流计算。特权信息下的学习范式提供了一个模型,该模型使用仅在训练阶段而非测试时可用的额外信息进行训练[39]。在我们的案例中,flow和RGB是可用于训练的特权信息,但在测试时只有RGB可用。
Garcia等人[9]开发了一种用于动作识别的提取框架,该框架通过四步过程从RGB帧中产生幻觉深度特征。他们通过logits提取深度特征,以及深度和RGB网络的匹配特征图。本着类似的精神,Hoffmann等人[15]通过将中级特征之间的不同损失与标准对象检测损失相结合,为对象检测器产生幻觉深度信息。另一种最近提出的图蒸馏方法[25]动态地利用不同模态之间的信息。我们的方法与这些工作的不同之处在于:(a)我们考虑RGB和Flow输入的情况,以及(b)通过匹配高级特征而不是匹配类概率(logits),将知识从Flow提取到RGB流。
3.Learning to Replace Flow
动作识别的最新技术同时利用了外观(RGB)和运动(Flow)流[2]。这些流具有3D卷积而不是2D卷积的标准图像架构,并以固定长度的片段作为输入。给定一个连续帧的动作y的视频剪辑,分别训练RGB和Flow流来对动作进行分类。让sRGB (resp。sFlow)表示由RGB (resp. sFlow)计算的分数。Flow)网络在softmax之前,yRGB (resp。yFlow)预测的类别,即得分最高的类别。测试时的预测通常是通过平均sRGB和sFlow得到的。
我们现在解决了在测试时避免流计算的挑战,同时实现与双流网络类似的性能。为此,我们提出了一种基于特权信息下学习[39]概念的解决方案。我们认为在流剪辑上运行的光流是一个教师网络,它拥有动作识别所需的重要信息。我们的目标是训练第二个网络(学生)使用RGB帧作为输入对动作进行分类,以及来自老师的特权信息,即只在训练时提供的光流。在下面,我们假设Flow流已经训练为动作识别,我们冻结它的权重。我们现在详细介绍我们的两个学习策略:(i)使用RGB帧模仿光流特征(第3.1节),(ii)利用外观和运动信息(第3.2节)。
3.1. MERS
我们的第一个训练策略被称为运动仿真RGB即光流。我们通过在特征级上施加损失函数来实现这一点。CNN的初始层表示低层次的局部特征,后一层表示高层次的全局特征[46],对相关任务具有高度的辨别能力[31]。因此,我们在MERS的最后一个全连接层之前使用该层的输出损失来模拟Flow流的损失。我们将这些来自MERS和Flow流的特征分别表示为f cMERS和f cFlow。图2说明了MERS的训练策略。MERS具有与3D卷积的标准RGB流类似的架构和输入,但其目标是降低均方这些特征之间的误差(MSE)损失:
在网络的倒数第二层应用这种损失会使MERS的最后一层得不到训练。我们遵循两步训练程序,首先训练MERS的所有层,除了最后一层,使用均方损失。该训练提供了一个模拟Flow流的特性的流。为了执行动作识别,我们只单独训练(图中步骤2)最后一个全连接层,即分类器,使用这些“模仿”特征进行交叉熵损失。
总之,我们首先训练Flow流来对动作进行分类,使用在真实类标签y和预测类标签yFlow之间具有交叉熵损失的光流剪辑。一旦Flow流得到训练,我们就冻结它的权重。然后,通过在n层网络的前n−1层中反向传播f cMERS和f cFlow之间的MSE损失,训练MERS模拟使用RGB帧的Flow流。最后,通过训练第n层MERS,将这些幻觉流特征用于动作分类,在真实类y和通过评分sMERS预测的类之间存在交叉熵损失。请注意,交叉熵损失仅通过MERS的最后一层反向传播。在测试时,MERS与Flow流无关,只需要输入RGB。
3.2. MARS
我们的第二个策略更进一步:我们训练一个网络,在测试时仅使用RGB输入,并且没有显式的流量估计,同时利用外观和运动信息。我们称之为运动增强RGB流(MARS)。回想一下,MERS使用MSE损失将运动信息提取到运行在RGB帧上的网络中。为了用外观信息加强这种训练,我们通过在整个网络中反向传播MSE和交叉熵损失的线性组合来训练网络。换句话说,我们使用以下损失函数来训练MARS:
其中α是一个标量权重调制运动特征的影响。较小的α值使MARS类似于标准RGB流,较大的α值使其更接近模拟Flow流的MERS。我们在第5.3节中研究了α的影响。使用这种组合损失可以确保模拟特征和流动特征之间的差异导致交叉熵的降低,即更高的分类精度。由于流是基于RGB数据的,这个特征的区别来自于外观。因此,MARS有效地结合运动信息从光流与补充的外观信息,以便更好地进行动作分类。
为了总结我们的策略MARS,我们首先用标准交叉熵损失训练Flow流。然后我们冻结它的重量并训练MARS;参见图3。
![在这里插入图片描述](https://img-blog.csdnimg.cn/b6c5009ef39e42ab8c8865a023df847a.png
5. Results and Discussion
5.1. Flow stream
我们首先在MiniKinetics上评估了三种光流方法的性能,即TV-L1、PWC-Net和MPEGFlow。
图4a显示了MiniKinetics验证集上每个视频的准确性与视频播放时间(平均每个视频250帧)。所有引用的时间都不包括数据访问时间,并且是在使用NVIDIA TitanX GPU的同一台机器上计算的。我们观察到,TVL1流(图中的橙色点)产生了最佳的精度,尽管每个视频的计算成本极高,超过30秒,这几乎占识别动作总时间的99%。如图4a所示,MPEGFlow是计算速度最快的,在很大程度上,每个视频需要不到一秒钟的时间,但其性能明显低于TV-L1和所有其他流方法[40]。PWC-Net的速度大约是TV-L1的三倍,但其性能比TV-L1低5%。这些观测结果促使我们努力在TV-L1等精确流量方法的帮助下模拟流量,并避免在测试时估计光流量。为了完成,我们说明了这三种流方法中每种方法的RGB两个流网络的性能,并观察到精度的提高,除了RGB+MPEGFlow(见图4a)。
MPEGFlow质量差,因此其精度比RGB低40%,这导致RGB+MPEGFlow的性能下降。
表1和表2分别显示了在具有16个和64个帧剪辑的双流框架中TV-L1光流[45]的影响。每个表中的前两行单独对应于RGB或Flow流。与这些相比,RGB+Flow双流变体在性能上有了显著的改进。例如,在64剪辑的情况下,我们观察到Kinetics400、UCF1011、HMDB51-1和SomethingSomethingv1的准确度分别比RGB提高了2.5%、2.3%、6.3%和5.1%。
5.2. Recognition accuracy
MERS。我们现在评估我们的训练策略MERS,其目标是模拟RGB输入的流,以避免在测试时进行流计算。从表1所示的结果中,我们观察到,在所有数据集上,MERS和Flow之间的平均准确度差异小于1%。这表明MERS是Flow流的一个很好的替代品。MERS+RGB和RGB+Flow之间的最小差异进一步支持了这一观察结果。此外,将Flow与MERS相结合,几乎不会导致性能改进。总之,MERS为Flow流提供了一种有效的替代方案。
MARS表1还说明了我们结合基于特征和交叉熵损失(MARS)的训练策略的性能。所有结果均对应于α=50设置。我们观察到,MARS在MiniKinetics、UCF101、HMDB51和SomethingSomethingv1上的表现明显优于单独的RGB和Flow流(在1%到9%之间),这表明MARS学会了有效地利用外观和运动信息。然而,在Kinetics400上,MARS的性能比RGB流差。这是由于该数据集上带有短片的Flow流的性能较差,与RGB相比有14%的差异。因为许多视频在短距离内大多是静态的。
Li等人[22]还发现Kinetics400偏向于静态信息。当使用64帧的较长剪辑时,请参见表2,RGB流和Flow流之间的差异显著较低(6.4%),并且MARS的性能优于RGB流和Flow流。在所有其他数据集上,MARS获得的精度明显高于RGB和Flow流,特别是在运动至关重要的数据集上(如SomethingSomethingv1或HMDB51)。在某些情况下,例如,在具有64fclips的HMDB51上,单独的MARS比双流RGB+Flow模型表现更好。MARS+Flow和MARS的性能相似,表明MARS成功地利用了运动信息,即添加Flow并不能进一步提高性能。
为了进一步了解MARS何时比RGB表现更好,我们比较了图5中MARS和RGB精度之间差异最大和最小的三个类的RGB、Flow和MARS的性能(如图中括号中的数字所示)。MARS对Flow表现良好的类具有最强的影响。另一方面,当Flow导致低性能时,与RGB相比,MARS的性能也相当差,但仍优于Flow。这再次表明MARS利用了来自外观和运动数据的信息。
5.3. Effect of α on accuracy
MARS是通过平衡两种损失来训练的:(a)logits和地面实况目标之间的交叉熵损失,以及(b)MARS和Flow的平均池化特征之间的MSE损失,见(2)。我们使用图4b中16f片段的α={5,50,100,200}的值报告了MiniKinetics上MARS的平均精度。我们还报告了RGB(即α=0)和Flow(右侧)的准确性。我们观察到,通过增加α值,我们达到了峰值精度(α=50),其中交叉熵损失和α×MSE损失的值大致相同,见图4c。这表明MARS不仅实现了RGB和Flow之间的权衡,而且有效地利用了运动和外观。α的值越高,MSE对交叉熵损失的影响就越大,从而导致MARS倾向于流精度,本质上是MERS。
我们还试验了在早期层或logits上应用基于特征的损失。我们发现,在早期层上应用这种损失会导致精度下降,因为从RGB输入中模拟较低级别的流特征更加困难。当这种基于特征的损失应用于logits时,我们在MiniKinetics上获得了类似的性能,就像将损失应用于高级特征时一样。然而,在Kinetics400上预训练的模型并不能很好地推广到其他数据集。
5.4. Impact of motion
为了进一步了解MARS和MERS学习的特征与RGB和Flow流学习的特征相比的差异,我们分析了它们在没有运动的情况下的性能。我们将MiniKinetics的实际测试片段替换为“静态”片段,这些片段是通过复制每个片段的中间帧创建的,从而删除运动信息。图6顶部报告的平均准确度是通过对由16帧组成的非重叠连续“静态”剪辑的平均分数来计算的。
图6还显示了每个流的类激活映射[48]。类激活映射有助于可视化每个动作类特有的判别区域。我们向网络提供“静态”16f剪辑,并观察到RGB的精度随着静态剪辑略有下降,并且类激活是相关的。这表明RGB主要关注外观,尽管存在3D卷积。由于缺乏运动信息,MARS显示出比RGB更大的下降,但可以正确定位相关区域。这表明MARS同时捕捉外观和运动。MERS和Flow在静态剪辑上的表现接近随机(分类准确率分别为0.5%和5.1%,以及随机可视化区域)。这是在没有运动的情况下预期的,并说明它们的行为相似。
5.5. Comparison with the state of the art
现在,我们在表3中对Kinetics400和表4中对UCF101、HMDB51和SomethingSomethingv1的MARS与现有技术方法的性能进行了比较。
在这两个表中,我们首先比较了在测试时仅使用RGB作为输入、没有显式流量计算的方法,然后比较了同时使用RGB和flow的方法。对于Kinetics400,当仅使用RGB帧作为输入时,MARS+RGB的性能优于除NL-I3D[42]之外的所有方法。请注意,NL-I3D是在ImageNet上使用大小为128×224×224的剪辑进行预训练的,即,比我们用于从头开始训练MARS的剪辑大小长2倍,分辨率高4倍。
这种方法基于新的非本地模块,用于捕获长程依赖,可以进一步集成到我们的体系结构中。在表4中,MARS+RGB优于所有仅使用RGB作为输入的方法。特别是,对于运动很重要的数据集,如HMDB51和SomethingSomethingv1,这一差距相当大,分别提高了3.6%和3.5%。这表明,我们模拟流动特征和动作识别的方法可以很好地推广到其他数据集。接下来,我们将MARS+RGB+Flow的精度与使用RGB和Flow作为输入的最先进方法进行比较。在Kinetics400上,将Flow添加到MARS+RGB只会产生轻微影响(增加0.1),因为运动并不重要。相比之下,在HMDB51和SomethingSomethingv1上,增益更大,约为1%,我们设置了最先进的新性能。
6. Conclusion
在本文中,我们介绍了MARS,这是一种学习流的策略,只以RGB帧作为输入,但同时利用它们的外观和运动信息。这是通过训练网络来实现的,以最小化其特征和Flow流之间的损失,以及用于识别的交叉熵损失。我们的广泛评估表明,我们的单流MARS框架在流行的基准测试上优于RGB和Flow流,如Kinetics400、UCF101、HMDB51和SomethingSomethingv1。
参考文章:
光流融合到RGB流的巨作:《MARS: Motion-Augmented RGB Stream for Action Recognition》