22-CVPR-SGTR End-to-end Scene Graph Generation with Transformer 学习笔记
Abstract
当前现有的技术多采用自上而下的两阶段或基于点的一阶段方案,在这种情况下往往会带来较高的计算复杂度。鉴于此本研究提出了一种全新的场景图解决方案以应对上述问题。针对这一问题我们构建了一个基于Transformer架构的整体框架用于生成实体与谓词的一系列建议随后识别有向边并构造三元组关系以形成三元组关联体。具体而言我们开发了一种用于构建二元场景图连通性的模型从而能够通过端到端的方式生成完整的场景图结构。
Introduction
前人所采用的方法通常基于两类设计框架:bottom-up two-stage 和 point-based one-stage
第一类方法往往首先生成NN个实体的proposals,并随后推断predicate的类别。然而这类方法必须面对O(N²)规模的建议区域同时面临较高的计算复杂度。
第二种方法则会分别从图像中提取实体与关系, 其主要目标是减少建议集合的规模. 然而, 它们基于对相互作用区域非重叠特性的假设, 这严重制约了它们在复杂场景中的应用范围.

如图一所示,在分析场景图生成问题时, 我们将其转化为一个二分图构建问题, 其中每个三元组都可以以两种类型的节点形式进行表征. 这种方法不仅能够同时产生实体及关系的候选区域, 还能揭示其潜在关联, 从而构建了一个广泛假设空间用于推断视觉关系. 此外, 我们提出了一种新的基于相关实体建议信息整合到 predicate 表示方法, 这一改进增强了实体表征能力, 并为构建高质量 predicate 候选区域奠定了基础.
我们的模型具体由三个模块构成:实体节点生成器、谓词节点生成器以及图组装模块。
本工作的主要贡献包括:
- 开发了一个整合二元图构造的创新性全景图生成方法。
- 构建了一个实体感知结构以有效利用视觉关系特性。
Preliminary
场景图对象 Gscene = {V_e, E_r} 每个实体 v_i ∈ V_e 都具备边界框和分类标签。节点对之间的谓词也具有谓词标签
整个模型主要组成部分可以划分为两个主要模块:第一部分是node(实体与谓词)生成过程,第二部分是directed edge连接机制。在第一个阶段中,我们通过三个并行的子解码器利用实体信息来提高谓词预测能力。在第二个阶段中,我们开发了一个图形组装模块用于生成二元场景图。
Approach

本研究提出了一种由四个关键组件构成的系统架构:第一部分为主干网络模块(Main Body Module),该模块负责提取场景的关键特征表示;第二部分是基于transformer架构的设计单元(Transformer Design Unit),该单元旨在高效地处理实体相关的推理过程;第三部分为一种结构化的方法来生成predicates节点(Predicate Node Generation Module),其主要任务是构建谓词节点;最后是二元图组合子网络(Binary Graph Composer Subnet),该子网络通过巧妙融合各模块输出以实现最终目标。
Backbone and Entity Node Generator
以ResNet为核心网络构建了本研究的基础架构,并通过多层Transformer编码器进一步增强卷积特征提取能力。
由上述过程生成的基于CNN与transformer结合的特征向量Z∈R^{w×h×d}被表征为一个三维矩阵形式的空间信息表征器(Feature Representation Vector),其中该矩阵中的各个维度参数具体对应于图像的空间维度(width, height)以及通道数量(depth)。
我们将entity generator 定义为一个映射函数Fe\mathcal{F_e}
输入包括基于节点的初始查询(进行了100次随机初始化)Qe∈R^{N_e×d}以及特征矩阵ZZ
输出包括实体位置表示Be ∈ R^{\mathcal{N}_{e}\times 4}以及类别得分P_{e}\in R^{\mathcal{N}_{e}\times (C_{e}+1)}。此外还包括与之相关的特征向量H_{e}\in R^{\mathcal{N}_{e}\times d}。
具体来说,
B_e = \{x_c,y_c,w_b,h_b\},
其中,
x_c和y_c分别表示实例图像坐标的归一化中心坐标,
而w_b和h_b分别表示实体框的归一化宽度与高度。
Predicate Node Generator
本文引入了predication node generator旨在实现一种新型的知识图谱构建方法。该方法可整合每条实体间的实体关联信息到其对应的predication节点中从而生成实体感知性谓词表示。该方法可构建其subject和object之间的潜在关系如图2所示predication node generator主要由三部分构成第一部分是基于关系查询初始化模块完成初始谓词表征第二部分是基于图像特征提取模块完成图像特征与谓词语义之间的映射第三部分是基于结构化关系解码器模块完成最终谓词表示的空间重建。
Predicate Encoder
与Transformer架构中的编码器组件相似,在encoder部分同样采用了multi-layer multi-head自注意力模块进行构建。经过自注意力机制处理后得到的谓词预测特征输出结果为Z^p \in \mathbb{R}^{w \times h \times d}。
Predicate Query Initialization
该方法通过将predicate查询与entity进行解耦实现了一种组合式查询表示。其中实体指示符Qis,Qio∈RNr×d用于标识实体间的关系,并且基于此构建了谓词表示空间Qp∈RNr×d以区分不同类型的谓词关系。具体而言,在这种模型架构中,Qpee∈R{N_r×3d}被定义为一个三维空间中的点集{Qio;Qis;Qp}用于表征实体间的多维度关联关系
为了实现这一目标, 我们构建了具备几何感知能力的实体表示模型. 随后初始化了键值对(key-value), 其中键和值分别属于R^{N_e \times d}空间. 具体而言, 初始化过程定义为K_{init}=V_{init}=(H_e + G_e), 其中G_e = ReLU(B_e W_g), 而W_g则用于将bbox区域转换为嵌入形式. 此外, 在(entity location)部分, 我们引入了Be ∈ R^{N_e \times 4}来进行位置编码. 在这一过程中, G_e被定义为一种可学习的基于实体建议的嵌入表示.
此处分歧于传统的transformer架构,在目标上旨在实现论文所提及的entity-aware机制。
存在一个问题在于NrN_r的具体取值方式是什么?
然后会使用multi-head cross-attention的方法来处理初始向量。A(q,k,v)=FFN(MHA(q,k,v))A(q,k,v)=FFN(MHA(q,k,v)),因此最终的共公式为Qpe=A(Qinit,Kinit,Vinit)WeQ^e_p=A(Q_{init},K_{init},V_{init})W_e,其中We∈Rd×3dW_e\in R^{d\times 3d}。子查询Qis,QioQ_{is} , Q_{io}被称为entity indicator,因为它们将被用来捕捉下面的predicate—entity关联。
这个问题值得商榷。
在本问题中涉及的初始状态向量Q_inital、K_inital以及V_inital之间存在维度不匹配的情况。
其根本原因是交叉注意力机制的应用。
相当于评估一个物体对另一个物体的影响程度。
因此不同类型的物体会有各自的数量维度。
Structural Predicate Node Decoder
该Decoder可以被分为三个子模块
Predicate Sub-decoder
该模块基于融合空间背景信息的图像特征图ZpZ^p来进行 predicate 的重新定义。同时, 该模块采用了 cross-attention 机制 Q_p = A(q = Q_p, k = Z^p, v = Z^p),其中 Q_p 是经过更新后的 predicate 表示形式
Entity Indicator Sub-Decoders
我们设计了一个基于交叉注意力机制,在实体指示器Qis、Qio以及实体提案特征HeH_e之间构建了模型。

Predicate-Indicator Fusion
开发了一种整合方法用于校准predicate query以及entity indicator等关键指标,并保证其中的权重矩阵Wi,Wp属于空间R^{d×d}

Q_{is}^{l+1} = \widetilde{Q}_{is}^{l}, Q_{io}^{l+1} = \widetilde{Q}_{io}^{l}
基于我们之前获得的 predicate queries, 我们能够推导出 predicate 的几何语义预测及其相关 entity indicator 的位置与类别信息。其中, \mathbf{P}_p 用于表示 predicate 的类别预测结果, 而 \mathbf{B}_p 则用于表示对应 subject 和 object 的 box 中心坐标。

从整体来看,在每个predicate decoder layer中能够生成所有predicate query的位置信息及其分类信息,并且借助多层结构逐步提升谓词的识别质量。具体而言,在实体指示器部分采用相同的机制生成对应的类别预测概率矩阵P_s,P_o∈R{N_r×(C_e+1)}以及其位置编码矩阵B_s,B_o∈R{N_r×4}。
Bipartite Graph Assembling
为了整合NeN_e个实体节点和NrN_r个谓词节点之间的关联关系,并构建了一个对应的矩阵M∈R^{N_r×Ne}
具体而言,在得到predicate decoder产生的实体位置预测值以及entity generator生成的实体节点位置后,我们通过计算两者之间的L1距离来构建对应关系矩阵;同时,在得到predicate decoder提供的实体分类得分与entity generator生成的实体节点分类得分的基础上,我们采用余弦相似度作为辅助指标来进一步优化对应关系矩阵的构建过程。
以subject为例,其中dlocd_{loc}表示L1 distance,dclsd_{cls}表示余弦距离。

同时,在实体对象中也存在一个对应的相似矩阵M^o ∈ R^{N_r × N_e}。接着我们选取具有最高得分的top-K条link进行筛选。

最后就可以构造出场景图需要的三元组了。
Learning and Inference

我们使用\mathcal{L}^{enc}来标记 entity generator 的损失函数,并使用 \mathcal{L}^{pre}来标记 predicate generator 的损失函数。其中 \mathcal{L}^{pre}_i 和 \mathcal{L}^{pre}_p 分别代表两个子编码器各自的损失函数。
