Temporal Relational Reasoning in Videos(视频中的时序推理)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Temporal Relational Reasoning in Videos(视频中的时序推理)相关的知识,希望对你有一定的参考价值。

参考技术A 本文的原作者为MIT的Bolei Zhou等人 原文地址
译文:lowkeybin

时序推理是智能物种的基本能力,即随着时间的推移将目标或实体有意义的转换联系起来的能力。在本文中,我们将介绍一种有效且能解释的网络模型--时序网络(the Temporal Relation Network(TRN)),该模型能学习并推断视频中多尺度上帧的时序依赖问题。我们在最近三个基本需要依赖时序推理的数据集Something-Something、Jester和Charades上作行为识别来评估TRN网络。我们的结果表面,提出的TRN网络使卷积神经网络具有了出色的发现视频中时序关系的能力。仅通过对视频帧稀疏采样,配备了TRN的网络在Something-Something数据集上能准确的预测人类与目标的交互并在Jester数据集上识别不同的人体姿态有着相当竞争力的表现。配备TRN的网络在Charades数据集上识别常规行为也优于双流网络和3D卷积网络。进一步分析表明,模型在视频中学习到了直观且可解释的通用的视觉感知知识。

推理随时间推移实体之间的关系的能力对于智能决策至关重要。时序推理使智能物种能够根据相对于过去的现在的情况来分析并推断出接下来接下来可能发生的事。比如(图1),给定一个时间的两个观察结果,人们能容易的识别出视觉世界中的两个状态之间的时序关系并推断出一个视频中两帧之间发什么了什么。
时序推理对行为识别至关重要,形成了一个时间步骤的组成部分。一个单一的行为可以包括多种时序关系包括长时间尺度和短时间尺度关系。例如短跑这个行为,包含在起跑架上蹲着、在跑道上奔驰和在终点线撞线这样的长时间尺度关系,也包含手脚周期性挥舞的这种短时间尺度关系。
视频中的行为识别是计算机视觉的核心主题之一。然而,由于适当的时间尺度[1]上描述的行为的模糊性,它仍然很难。很多视频数据集,比如UCF101[2]、Sport1M[3]和THUMOS[4],这些数据集中包含很多不需要对长期时间关系的推理也能被识别的行为:静止帧和光流法足以识别这些带有标签的行为。实际上,经典的双流卷积神经网络[5]和最近被提出的I3D网络[6]都是基于帧和光流法的,它们在这些数据集上的行为识别性能都很好。

然而,卷积神经网络在数据和观测结果都有限或者说根本的结构是以变换和时间关系为特征而不是以某个实体[7,8]的出现为特征的情况下会表现很差。卷积神经网络推理时序关系且预测观测结果发生了什么变化仍然是巨大的挑战。图1所示的这些例子。随着时间的推移,网络需要发掘通用的视觉感知知识,这超过了使用静态帧方法和流光法在目标的外观中所能发掘的。
在这项工作中,我们提出了一个简单且可解释的网络模型--时序网络(Temporal Relation Network(TRN)),它支持神经网络中的时序推理。该模型的灵感来自于[7]中提出的关系网络,但是TRN不是对空间进行建模,TRN的目标是描述视频中观测结果的时序关系。因此,TRN能学习和发发掘多时间尺度上的可能的时序关系。TRN是一个通用且可扩展的模型,它可以与现有的任何CNN架构一起以即插即用的方式使用。我们应用TRN装配的网络在最近的三个数据集上(Something-Something[9]、Jester[10]和Charades[11])来识别不同类型的行为,例如人与物体的交互和手势,但这些都是基于时序推理。装配TRN的网络对即使是离散的RGB帧也有很具有竞争力的预测结果,带来了超过基线的显著改进。因此,TRN为卷积神经网络提供的实用解决方案解决了实用时序推理的行为识别任务。

视频行为识别是计算机视觉的一个核心问题,随着对图像识别任务有着最优异性能的深度卷积神经网络(CNNs)的崛起,很多工作针对行为识别已经设计了有效的深度卷积神经网络[3,5,6,14,15,16]。例如,在Sport1M数据集[3]上探索了在时间维度上融合RGB帧的各种方法。提出了两个流的CNN,其中一个静态图像流和另一个光流被提出来融合物体外观和短期运动信息[5]。3D卷积神经网络[15]实用3D卷积核从稠密的RGB帧序列中提取特征。时间段网络在不同时间段上采样帧和光流以提取行为识别特征[16]。CNN+LSTM的模型实用CNN网络来提取帧的特征并实用LSTM网络来整合随时间推移的特征,也用于识别视频中的活动[14]。最近,I3D网络[6]在两个流的CNN网络并在稠密的RGB和光流序列上采用3D卷积,它在Kinetics数据集上有最优异的性能[17]。现有CNN网络用于行为识别存在几个重要的问题:1)依赖与光流的预先提取降低了识别系统的效率;2)鉴于连续帧中的冗余,密集帧的序列使用3D卷积在计算上使昂贵的;3)因为输入网络的序列帧通常限制为20到30帧之间,所以网络很难在这些帧中学习到长期的时序关系。为了解决这些问题,提出的时序网络稀疏的对帧进行采样,然后学习它们的因果关系,这比密集采样并对其进行卷积更有效。我们表明配备TRN的网络可以在多个时间尺度上有效的捕捉时序关系,并且对视频帧进行稀疏采样的方法由于密集采样的方法。

对于许多现存视频数据集的行为识别来说(如UCF01[2],Sport1M[3],THUMOS[4]和Kinetics[17]),静态帧的外观和短时间动作(如光流)是识别动作最重要的信息。因此,诸如双流网络[5]和I3D网络[6]的活动识别网络被定制以捕获密集帧的这些短期动态。因此,现有网络不需要建立时间关系推理能力。另一方面,最近通过众包收集了各种视频数据集,这些数据集侧重于顺序活动识别:Something-Something数据集[9]被收集用于通用人 - 对象交互。它有视频课程,如“将东西放入某物”,“推送某物”,甚至“假装打开某物而不实际打开它”。 Jester数据集[10]是另一个最近用于手势识别的视频数据集。视频由众包工作者录制,执行27种手势,如“向上翻阅”,“向左滑动”和“逆时针转动手”。 Charades数据集也是一个高级人类活动数据集,通过要求群众工作人员执行一系列家庭活动然后记录自己来收集视频[11]。为了识别这三个数据集中的复杂活动,将时间关系推理整合到网络中至关重要。此外,许多以前的作品使用词袋,运动原子或动作语法模拟视频的时间结构,以进行动作识别和检测[18,19,20,21,22]。我们不是手动设计时间结构,而是使用更通用的结构来学习端到端训练中的时间关系。关于在视频中建立因果关系的一项相关工作是[23]。 [23]使用双流暹罗网络来学习两帧之间的变换矩阵,然后使用强力搜索来推断动作类别。因此计算成本很高。我们的TRN更有效地集成了培训和测试中的多帧信息。

关系推理与直觉物理。最近,关系推理模块已被提出用于具有超人性能的视觉问答[7]。我们的工作受到这项工作的启发,但我们专注于对视频中的多尺度时间关系进行建模。在机器人自我监督学习领域,已经提出了许多模型来学习帧之间的直观物理学。给定初始状态和目标状态,使用具有强化学习的逆动力学模型来推断对象状态之间的转换[24]。物理相互作用和观察也用于训练深度神经网络[25]。时间对比网络用于从第三人视频观察中自我监督模仿对象操作[26]。我们的工作旨在通过监督学习环境学习视频中的各种时间关系。所提出的TRN可以扩展到用于机器人对象操纵的自我监督学习。

在本节中,我们将介绍时态关系网络的框架。 它很简单,可以很容易地插入到任何现有的卷积神经网络架构中,以实现时间关系推理。 在后面的实验中,我们展示了配备TRN的网络发现可解释的视觉常识知识,以识别视频中的活动。

受视觉问答[7]的关系推理模型的启发,我们将下面的复合函数定义为成对的时序关系:

其中,输入为视频V中被选取的有序视频帧记作V=f1,f2,f3,...,fn,其中fi代表视频中的第i帧的表示,比如说某个标准CNN的输出。函数h和g融合了不同有序帧的特征。这里我们简单地使用分别具有参数φ和θ的多层感知机(MLP)。为了高效的计算,我们没有添加所有组合对,而是统一对帧i和j进行采样并对每对进行排序。
我们进一步将2帧时间关系的复合函数扩展到更高的帧关系,例如下面的3帧关系函数:

其中帧数总和超过已经统一采样和排序的帧i,j,k的集合。

为了捕捉多时间尺度上的时序关系,我们使用下面的复合函数来累计不同尺度上的帧关系:

每个关系项Td捕获d个有序帧之间的时序关系。每个Td都有自己独立的函数h和g。请注意,对于每个Td的任何给定d帧样本,所有时序关系函数都是端到端的可区分的,因此它们都可以与用于提取每个视频帧特征的CNN一起训练。整个网络框架如图2所示。

当我们训练一个多尺度时序网络时,我们可以通过为视频的每个Td项选择不同的d帧来对总和进行采样。然而,我们使用了一种能显著减小计算量的采样方案。首先,我们从视频的N个片段中均匀的采样一组N帧,V N⊂V,并使用V N来计算TN(V)。然后,对于每个d<N,我们选择d帧的k个随机下采样V kd⊂V N。这些被用于计算每个Td(V)的d帧关系。这允许仅在N帧上运行CNN的同时对KN个时序关系进行采样,且所有部分时端到端一起训练的。
在测试时,我们可以将配备TRN的网络与队列相结合,以非常有效地处理流视频。队列用于缓存从视频采样的等长帧的提取的CNN特征,然后将这些特征进一步组合成不同的关系元组,其进一步相加以预测活动。 CNN特征仅从关键帧中提取一次然后排队,因此配备TRN的网络能够在桌面上实时运行以处理来自网络摄像头的流式视频。

我们在各种行为识别任务上评估配备TRN的网络。对于识别依赖于时间关系推理的行为,配备TRN的网络大幅度的优于没有配备TRN的基准网络。我们在用于人类交互识别的Something-Something数据集[9]和用于手势识别的Jester数据集上获得了极具竞争力的结果[10]。配备TRN的网络还在Charades数据集[11]中获得了活动分类的竞争结果,优于仅使用稀疏采样的RGB帧的Flow + RGB集合模型[27,11]。
三个数据集的统计:Something-Something数据集(Something-V1 [9]和Something-V2 [28]的统计数据,其中Something-V2是2018年7月初数据集的第二个版本)[9,28],Jester数据集[10]和Charades数据集[11]在表1中列出。所有三个数据集都是来自网络标注(crowd-sourced)的,其中通过要求来自网络标注(crowd-sourced)的工作者记录自己执行指示行为来收集视频。与UCF101和Kinetics中的Youtube-type视频不同,来自网络标注视频(crowd-sourced)中的每个行为通常都有明确的开始和结束,强调时间关系推理的重要性。

用于提取图像特征的网络在视觉识别任务中起着重要作用[29]。来自ResNet [30]等更深层网络的功能通常表现更好。我们的目标是评估TRN模块在视频中进行时间关系推理的有效性。因此,我们在所有实验中将基础网络架构固定为相同,并比较CNN模型在有和没有被提出的的TRN模块的情况下的性能。
我们采用了在[31]中使用的ImageNet上预先进行的批量标准化(BN-Inception)的初始化,因为它在准确性和效率之间取得了平衡。我们遵循部分BN的训练策略(冻结除第一个之外的所有批量标准化层)和在[16]中使用的全局池之后的退出。对于所有三个数据集上的训练模型,我们保持MultiScale TRN模块的网络架构和训练超参数相同。我们在实验中将k = 3设置为每个关系模块中累积关系三元组的数量。 gφ只是一个双层MLP,每层256个单位,而hφ是一个单层MLP,单位数与类号相匹配。给定帧的CNN特征是来自BN-Inception的全局平均合并层(在最终分类层之前)的激活。鉴于BN-Inception作为基础CNN,在单个Nvidia Titan Xp GPU上的100个训练时期内,训练可以在不到24小时内完成。在多尺度TRN中,我们包括从2帧TRN到8帧TRN的所有TRN模块(因此在方程式3中N = 8),因为包括更高帧的TRN带来了少量的改进并降低了效率。

Something-Something是最近用于人 - 对象交互识别的视频数据集。有174个类,一些模糊的活动类别具有挑战性,例如“把某个东西撕成两半”与“把某个东西撕一点”,“将某些内容颠倒过来”与“假装颠倒过来”。我们可以看到,对象的时间关系和变换而不是对象的外观表征了数据集中的活动。
表2a中列出了Something-V1和Something-V2数据集的验证集和测试集的结果。基线是在从每个视频中随机选择的单帧上训练的基础网络。具有TRN的网络大幅超越单帧基线。我们通过简单地对来自任何给定视频的两个流的预测概率进行平均来构建双流TRN。 双流TRN进一步将Something-v1和Something-v2的验证集的准确度分别提高到42.01%和55.52%。注意,我们发现TSN中使用的对帧进行平均池化的光流[16]获得了比提出的时间关系池化更好的得分,因此我们在光流量流上使用8帧TSN,得到31.63%和46.41%分别在Something-V1和Something-V2的验证集上。我们在测试集上进一步提交MultiScale TRN和2流TRN预测,结果如表2.a所示。
我们将TRN与TSN [16]进行比较,以验证时间顺序的重要性。 TSN不是连接时间帧的特征,而是简单地平均深度特征,以便模型仅捕获特征中的模式的共现而不是时间排序。我们保持所有训练条件相同,并改变两个模型使用的帧数。如表2b所示,我们的模型大大超过了TSN。该结果显示了帧顺序对时间关系推理的重要性。我们还看到该关系中包含的其他框架为TRN带来了进一步的显着改进。

我们进一步评估Jester数据集上配备TRN的网络,Jester是一个用于手势识别的具有27个类的视频数据集。表3a中列出了Jester数据集验证集的结果。 表3b中列出了测试集的结果以及与顶部方法的比较。 MultiScale TRN再次实现了竞争性能,Top1精度接近95%。

我们在最近的Charades数据集上评估MultiScale TRN以进行日常行为识别。结果列于表4.我们的方法优于各种方法,如双流网络和C3D [11],以及最近的异步时域(TempField)方法[27]。
三个数据集上的多尺度TRN的定性预测结果如图3所示。图3中的示例表明,TRN模型是因为有为了成功预测所必须的整体时序序列帧,才有正确的识别动作的能力。例如,逆时针转动类别在反向显示时将采用不同的类别标签。此外,成功预测个体假装执行动作的类别(例如,“假装将东西放入某物”,如第二行所示)表明网络可以捕捉多个尺度的时间关系,其中短段中包含的几个较低级别的动作传达了关于整个活动类的关键语义信息。
这一出色的表现证明了TRN对时间关系推理的有效性及其在不同数据集中的强大泛化能力。

与先前的视频分类网络(如C3D [15]和I3D [6])相比,所提出的TRN的一个独特属性是TRN具有更多可解释的结构。 在本节中,我们将通过解决这些时间推理任务来更深入地分析TRN所学习的视觉通用知识。 我们探讨以下四个部分:

直觉上,一个人类观察者能通过选取一小组视频代表帧来捕捉一个行为的本质。那么对于被训练用于识别行为的模型是否也适用呢?为了获得每个TRN的代表帧序列,我们首先从视频计算等距帧的特征,然后随机组合它们以生成不同的帧关系元组并将它们传递到TRN中。最后我们用不同TRN的响应对关系元组进行排名。图4显示了由不同TRN投票产生的顶级代表帧来识别同一视频中的一个行为。我们可以看到TRN学习了表征行为的时序关系。对于相对简单的操作,单帧足以在正确的操作中建立一定程度的置信度,但在存在转换时容易出错。 2帧TRN选取最能描述变换的两帧。同时,对于更加困难的活动类别,例如“假装戳东西”,两帧不足以让人类观察者区分。类似地,网络需要TRN中的附加帧以正确识别行为。
因此,代表帧的进展及其相应的类别预测告诉我们时间关系如何帮助模型推理更复杂的行为。一个特别的例子是图4中的最后一个视频:单个框架给出的动作上下文 - 一个靠近书的手 - 足以将顶部预测缩小到一个定性合理的动作,展开一些东西。类似的两帧关系略微增加了初始预测的概率,尽管这两个帧对于甚至人类观察者来说都不足以做出正确的预测。现在,三个相关关系开始突出显示Something-Somethings假装类别的模式特征:初始帧非常类似于某个动作,但后面的帧与该动作的完成不一致,就像它从未发生过一样。这种关系有助于模型将其预测调整到正确的类。最后,个人手在4帧关系的第三帧中的向上运动进一步增加了场景的预期和观察到的最终状态之间的不一致;类似于动作的动作似乎发生而对对象没有影响,因此,巩固了对正确的类预测的信心。

观察到TRN识别的代表帧在一个动作类别的不同实例之间是一致的,这表明TRN非常适合于需要时间上将视频彼此对齐的任务。在这里,我们希望通过建立帧序列之间的对应关系来同步多个视频中的动作。给定相同动作的几个视频实例,我们首先为每个视频选择最具代表性的帧,并使用它们的帧索引作为“地标”,时间锚点。然后,我们改变两个连续锚点之间的视频片段的帧速率,使得所有单个视频同时到达锚点。图5显示了对齐视频的样本。我们可以看到时间关系捕获了动作的不同阶段。时间对齐也是我们的TRN模型的独家应用,这是以前的视频网络3D卷积网络或双流网络无法完成的。

为了验证帧的时间顺序对于行为识别的重要性,我们进行了一个实验,以便在训练TRN时按时间顺序和随机顺序比较场景和输入帧,如图6a所示。为了训练混洗的TRN,我们随机地改变关系模块中的帧。 在Something-Something数据集的显着差异显示了时间顺序在行为识别中的重要性。更有趣的是,我们在UCF101数据集[2]上重复相同的实验,并观察到有序帧和混洗帧之间没有区别。这表明UCF101中Youtube类型视频的活动识别不一定需要时间推理能力,因为没有那么多偶然关系与已经在进行的活动相关联。
为了进一步研究时间排序如何影响TRN中的活动识别,我们检查并绘制了显示在Something-Something数据集中绘制的有序和混洗输入之间类别准确度差异最大的类别,如图6b所示。一般而言,具有强烈“方向性和大型单向运动的行为,例如”向下移动“,似乎从保留正确的时间顺序中获益最多。这一观察结果与连续运动的破坏和改变视频帧的潜在后果的观点一致,可能会使人类观察者感到困惑,因为这会违背我们直观的物理概念。
有趣的是,如果在某些情况下完全受到惩罚,那么对于相对静态动作的混乱帧的惩罚就不那么严重了,其中几个类别略微受益于改组输入,正如“推不能滚动到倾斜表面的东西”所观察到的那样留在原处。这里,简单地学习帧的重合而不是时间变换可能足以使模型区分相似的活动并进行正确的预测。特别是在具有挑战性的模糊情况下,例如“假装扔东西”,其中释放点部分或完全模糊不清,破坏强烈的“运动感”可能会使模型预测偏离可能的替代方案,“抛出某些东西”,经常但是由有序模型错误地选择,从而导致该动作的准确性的奇怪差异。

TSN和TRN之间的区别在于使用不同的帧特征池化策略,其中使用时间关系(TR)池化的TRN强调捕获帧的时间依赖性,而TSN仅使用平均池化来忽略时间顺序。我们详细评估了两个池化策略,如表5所示。使用平均池化和TR池化的性能差异实际上反映了视频数据集中时间顺序的重要性。测试数据集按视频源分类,前三个是Youtube视频,另外三个是来自AMT的网络标注视频。基础CNN是BNInception。两种模型都使用8帧。有趣的是,具有平均池化和TR池化的模型在Youtube视频上实现了类似的准确性,因此识别Youtube视频不需要太多的时间顺序推理,这可能是由于随机剪裁的Youtube视频中的活动通常没有明确的行动开始或结束。另一方面,网络标注视频只有一个具有明显开始和结束的行为,因此时间关系池化带来了显着的改善。

图7显示了用于嵌入来自单帧基线,3帧TRN和5帧TRN的高级特征对验证集中15个最频繁行为视频的t-SNE可视化。 我们可以看到,2帧和5帧TRN的特征可以更好地区分活动类别。 我们还观察了可视化图中类别之间的相似性。 例如,“将某些东西分成两部分”非常类似于“稍微撕掉一些东西”,类别“折叠某物”,“展开某物”,“拿着东西”,“拿东西超过某物”聚集在一起。

在行为发生或完全发生之前尽早识别行为或甚至预测和预测行为是行为识别中具有挑战性但未被探索的问题。在这里,我们评估我们的TRN模型在提前识别行为时,仅给出每个验证视频中的前25%和50%的帧。结果显示在表6中。为了比较,我们还包括单帧基线,其被训练在来自视频的随机采样的单个帧上。我们看到TRN可以使用学习到的时序关系来预测行为。随着接收到更多有序帧,性能会提高。图8显示了仅使用视频的前25%和50%帧预测活动的一些示例。对这些例子的定性评估表明,尽管给予即使对于人类观察者来说也具有高度不确定性的任务,仅对初始帧进行的模型预测确实可以作为非常合理的预测。

我们提出了一个简单且可解释的网络模型(名叫时序关系网络(TRN))能对视频使用神经网络进行时序关系推理。我们使用最近几个数据集来评估提出的TRN并公布了仅使用离散帧的完整结果。最后,我们展示了TRN模型发现的视频中的通用视觉感知知识。

java CREAR ARCHIVO TEMPORAL



//Crear archivo temporal
	                File temp = File.createTempFile("tempfile", ".xml");
	        	    //write it
	            	    BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
	            	    bw.write("This is the temporary file content");
	            	    bw.close();	            	    
	            	    System.out.println(temp.getAbsolutePath());	            		
	            	    System.out.println("Done");

以上是关于Temporal Relational Reasoning in Videos(视频中的时序推理)的主要内容,如果未能解决你的问题,请参考以下文章

Ch2 Relational model and Relational operation

SQL 精简版:无法找到依赖 EntityFramework.Relational

Hibernate @Temporal的使用

@Temporal 注解使用

python _check_relational_existence.py

关系代数(Relational Algebra)——极简教程