Beyond Short-Term Snippet: Video Relation Detection with Spatio-Temporal Global Contex
超越短片段:基于时空上下文的视频关系检测
论文地址:https://ieeexplore.ieee.org/document/9157717/
主要贡献
- 提出了一个滑动窗口方案,同时预测短期和长期关系。在对象tracklet上运行具有不同内核大小的窗口来生成具有不同持续时间的子tracklet;
- 构建了一个时空图,并利用图卷积网络生成上下文,进行兼容性评估,只预测高度兼容的对的关系。
- 该方法在ImageNet-VidVRD和VidOR数据集上跨多个任务实现了最先进的性能。特别是对于ImageNet-VidVRD,在所有评估指标下,获得了平均3%的改进(R@50从8.07%到11.21%)。
研究背景
视频视觉关系检测(VidVRD)旨在描述视频中所有交互对象。与静态图像中的关系不同,视频包含一个额外的时间通道。
现有的大多数作品都是将视频划分为几个短片段,预测每个片段中的关系,然后合并它们。这种方法不能捕捉涉及长动作的关系。预测相邻视频段之间的相同关系也是低效的。
与已有方法对比
- Video visual relation detection 将目标视频分解成几个1秒的片段,从局部片段信息充分检测初始关系,使用贪婪的局部关联合并形成最终视频级的关系。
- Video relationship reasoning using gated spatio-temporal energy graph使用马尔可夫随机场MRF进行关系建议细化,然而这是一种全局方法的错觉,其增强了相邻段之间的平滑性,但是还是使用贪婪的算法来获取视频级别的结果,无法识别超过三个片段的长时间;
- Video relation detection with spatio-temporal graph中基于GCN的方法也用到类似的参数;
如下图所示,现有的典型的基于分段的视频视觉关系检测方法在每个短段中分别检测关系,然后合并。在贪婪关系关联阶段,黑条、红条和蓝条分别对应直接检测到的关系、合并后检测到的关系和缺失的关系(主要是由于持续时间长)。
根据VidVOR数据集中所有关系的平均持续时间,如下图所示,几乎所有的关系都持续超过一秒,跨越多个视频片段。单独预测每段中的关系并将其合并在一起,会在相似的外观下对同一关系进行冗余计算。
主要实现
- 对象Tracklets提案阶段
使用滑动窗口方法生成具有不同长度的对象轨迹建议。对于每个窗口,此时间间隔内的所有tracklet建议都将输入第二阶段进行兼容性评估;
需要确保在不同时间尺度上观察关系,来提高在连续帧中检测相同关系的效率; - 关系对提案阶段:
将空间和时间信息聚合为提案特征来装配兼容的主客体对。
需要构造时空图细化特征,并利用图卷积网络将上下文信息嵌入到特征中; - 关系分类阶段
提取出视觉特征、I3D特征和相对运动特征,结合起来预测关系;
由于不相关的对在阶段2中被过滤掉,阶段3中的所有计算将导致有效的关系。
具体实现
对象Tracklets提案
1. 视频对象检测
(1)使用具有Resnet101骨干的Faster-RCNN作为检测器,检测器对MS-COCO和ILSVRC2016-DET数据集的图像进行训练,共35类。
(2)对目标检测结果进行NMS,减少边界盒之间的重叠区域。
(3)目标跟踪时使用多对象跟踪MOT算法,选择深度排序作为跟踪器,从RoI池中获得的目标检测特征作为深度排序的视觉特征,深度排序可以整合视觉特征作为匹配描述符来提高跟踪性能。
(4)在检测部分执行NMS,而不是跟踪部分,可以防止不同类别的轨迹重叠而被错误删除的问题。
2. 采用滑动窗口方法来生成对象Tracklets提案
(1)考虑到真正的关系实例在其持续时间上通常会有很大的变化,需要在多个内核大小的情况下运行滑动窗口例程。
(2)假设轨迹帧长度为L,将最小窗口大小设置为30帧,最大窗口大小设置为L。采样所有小于L的最小窗口大小的倍数,将L作为滑动窗口的长度。采样的步幅设置为窗口大小的一半。
(3)优势在于:
- 可以观察到某些只存在于长视频中的关系;
- 不需要再相邻的段中合并相同的关系,可以避免合并的代价和冗余预测的代价。
关系对提案:过滤不相容的提议
- 构造了一个空间图和一个时间图来进行信息聚合。图中的每个节点代表一个对象tracklet提议,阶段1中的tracklet提议特征是每个节点的初始值。在两个图中,每个节点之间的边分别计算为空间IoU和时间IoU。
- 使用图卷积网络将空间和时间上下文信息分别嵌入到基于上述两个图的tracklet特征中。得到的两个特征向量连接起来,形成每个节点的最终特征,将空间和时间信息聚集在一个表示中。
- 然后,所有节点的嵌入被送入一对相关嵌入模块,为每个tracklet生成兼容性增强表示。这个模块确保兼容的tracklet允许特征向量之间的高余弦相似度。两个特征相似度较高的tracklet建议被判定为相关建议对,并发送到第三阶段。
具体步骤
- 将阶段1中获得的tracklet建议表示为 { P 1 , P 2 , … , P N } \{P_1,P_2,…,P_N\} { P1,P2,…,PN},其中 N N N是对象tracklet提议的数量。
- 为了把空间上下文信息编码到特征中,使用每两个对象tracklet之间的空间IoU构建一个空间图:假设在M帧中检测到了tracklet提议 P i P_i Pi,用 p i ˉ \bar{p_i} piˉ表示M帧中的边界框平均值; P i P_i Pi和 P j P_j Pj之间的sIoU为 p i ˉ \bar{p_i} piˉ和 p j ˉ \bar{p_j} pjˉ的交集;并使用softmax对每一行进行归一化处理,使 P i P_i Pi所有边值的和为1,这样就包含了上下文信息;空间图公式如下: G i j s p a = e x p ( s I o U ( P i , P j ) ) / ∑ j = 0 N − 1 ( e x p ( s I o U ( P i , P j ) ) ) G_{ij}^{spa}=exp(sIoU(P_i,P_j))/ \sum_{j=0}^{N-1}(exp(sIoU(P_i,P_j))) Gijspa=exp(sIoU(Pi,Pj))/j=0∑N−1(exp(sIoU(Pi,Pj)))
- 时间图同上,公式如下: G i j t e m = e x p ( t I o U ( P i , P j ) ) / ∑ j = 0 N − 1 ( e x p ( t I o U ( P i , P j ) ) ) G_{ij}^{tem}=exp(tIoU(P_i,P_j))/ \sum_{j=0}^{N-1}(exp(tIoU(P_i,P_j))) Gijtem=exp(tIoU(Pi,Pj))/j=0∑N−1(exp(tIoU(Pi,Pj)))
- 为了嵌入空间和时间上下文信息,使用了图卷积网络GCN,一个图卷积层的计算可以表示为 Z = G X W Z=GXW Z=GXW,其中 G G G表示 N × N N\times N N×N邻接图 ( G s p a , G t e m ) (G^{spa},G^{tem}) (Gspa,Gtem), X X X表示 N × d N\times d N×d维的输入; Z Z Z作为输出也同样是 N × d N\times d N×d维。
- 每一层图卷积后,在 Z Z Z被送入下一层之前,会执行层归一化和ReLU激活两个非线性函数: Z = n o r m ( σ ( G X W ) ) Z=norm(\sigma (GXW)) Z=norm(σ(GXW))
- 之后将所有特征连接起来,发送到另一个对关联嵌入模块进行对象兼容性评估;模块由两个使用ReLU的完全连接层实现;最终计算出输出节点特征的余弦相似度,选择相似度高的提议对,送入第三阶段进行关系分类。
关系分类
- 使用 < P s , P o > <P_s,P_o> <Ps,Po>表示提议对,其中 P s P_s Ps和 P o P_o Po都是包围框的一个序列;
- 通过学习用于对象和关系检测的单独模型,降低训练检测器的复杂性从 O ( C 2 R ) O(C^2R) O(C2R)到 O ( C + R ) O(C+R) O(C+R);
- 对于目标分类:假设提议 P i P_i Pi有M个目标,每个物体的类别在第一阶段被检测出来。在第三阶段发现这M个目标类目的模式是 C i C_i Ci,就用 C i C_i Ci作为这个tracklet提议的最终类目。
- 对于关系分类:首先需要为每一对提议提取一个关系特征向量。如图所示,关系分类模块包含两种不同类型的特征提取器:主体/客体特征提取器和相对运动提取器。
(1)在主体/客体特征提取器中,主干分别提取检测特征和I3D特征,每个主干后都跟随RoI池化层,得到2038维和832维的特征;
(2)在相对运动特征提取器中,计算 P s P_s Ps和 P o P_o Po之间的 Δ C \Delta C ΔC、 Δ S \Delta S ΔS和 Δ M \Delta M ΔM,分别表示主体 P s P_s Ps和客体 P o P_o Po之间的相对位置、相对大小和相对运动。这三个矢量连接成一个118维的相对运动特征。
(3) 在tracklet建议对之间关系预测的整体关系特征向量就是 P s P_s Ps和 P o P_o Po目标特征和相对运动特征的拼接。
实验结果
数据集
ImageNet-VidVRD和VidOR数据集。
评估标准
- 关系预测:是从给定的视频中生成一组带有tracklet建议的 < s u b j e c t 、 p r e d i c a t e 、 o b j e c t > <subject、predicate、object> <subject、predicate、object>关系三元组。如果在真实数据中有相同的关系三元组,且主体和客体轨迹都有足够的vIoU(体积IoU),则认为预测是正确的。vIoU的重叠阈值设置为0.5。并采用平均精度(mean Average Precision, mAP)和Recall@K来评价检测性能,K设置为50和100。
- 关系标记:只考虑预测的视频关系三元组的准确性,忽略目标定位结果。使用Precision@1、Precision@5和Precision@10来衡量标记结果的准确性。
消融实验
- 只使用空间GCN的情况下,分析层数对实验性能的影响:发现3层时效果最好,层数过多会出现过拟合;
- 只使用时间GCN的情况下,分析层数对实验性能的影响:发现2层时效果最好,层数过多会出现过拟合;
- 空间GCN和时间GCN的配合效果:结合使用时效果最好;
- 分析关系分类模块中检测特征、I3D特征和相对运动特征对性能的影响:结合使用的效果最好;
性能对比
- 关系对提议阶段PPN模块过滤了大多数不兼容的提议对,减少了第三阶段的计算浪费,使得分类网络更容易训练,且获得更好的召回率;
- 整体性能上,在ImageNet-VidVRD基准测试中,该方法比所有的比较方法都要好得多;
在VidVRD基准测试中,该方法在关系检测任务上取得了很大的改进,在关系标记任务上也取得了相当的效果;
性能对比上的主要优势
总结可知,该方法在性能对比上的优势原因在于:
- 使用多尺度滑动窗口生成对象轨迹建议,可以准确检测变化持续时间和预测时间边界;
- PPN模块过滤了许多不准确的提议对;
如上图所示,VidVRD数据集使用短视频检测时很难区分缓慢行走和站立;但该文提出的方法可以同时检测长期和短期关系,所以效果更好;
总结
- 该文提出了一种三阶段的方法来完成视频视觉关系检测和标记的任务:第一阶段生成目标轨迹建议;第二阶段细化提案特征,查找相关主客体提案;第三阶段主要是预测相关配对之间的关系。
- 该文的方法可以有效地观察不同长度的关系使用滑动窗口,而其他方法只能看到短视频片段的关系。
- 在第二阶段,该文还利用GCN构建了一个包含空间和时间信息的上下文嵌入,用于方案兼容性评估。
- 在ImageNet-ViVRD和VidOR两个数据集上的实验结果表明,该文提出的方法在视频关系检测和关系标记任务上都优于最先进的基线。