0%

论文阅读-visual relationship detection-Hierarchical Graph Attention Network for Visual Relationship Detection

动机

  • 视觉关系检测(VRD)是通过提供一个主语-谓语-宾语的结构三元组来描述两个对象之间的关系,现有的基于图的方法主要通过对象级图来表示关系,忽略了对于三元组依赖关系的建模;

  • 先前使用图网络的方法是基于对象的空间相关性来构建的,仅基于空间相关性构造图会带来一些不合适的边,如冗余边或缺失边,而先验知识有助于图的构建过程,并直接参与关系推理。

贡献

  • 提出了一个层次图注意力网络(HGAT)去探索object-leveltriplet-level的三元关系,通过显式地建模三元组之间的依赖关系,可以在关系推理中加入更多的上下文信息;

  • 在图中引入先验知识和注意力机制,以减轻初始化图时不准确带来的不利影响,在注意力机制下,节点可以根据视觉或语义特征的相关性,通过给这些节点分配可学习的权重,来关注邻节点的空间和语义特征。

本文的方法

问题定义:

对于一个给定图像 I ,视觉关系检测的目的是提供几个关系三元组,如主语-谓语-宾语,定义 O P 为对象集合和谓词集合,则关系集合可以被定义为 R=\{r(s,p,o)|s,o\in O,p\in P\} ,则视觉关系检测的概率模型可以被定义为:

P(r)=P(p|s,o)P(s|b_s)P(o|b_o)

其中 b_s b_o subjectobjectbounding box,而 P(s|b_s) P(o|b_o) 是对应的bounding box的得分。

框架:

如上图所示,本文框架可分为三个子模块:特征表示模块、层次图注意力网络和谓词预测模块。在特征表示模块中,目标检测器生成带有边框和标签的目标区域候选,然后给出每个目标的视觉、空间和语义线索以及成对目标对应的相对特征;接下来,层次图注意力网络采用层次图结构进行 object-leveltriplet-level的推理,对于每个节点,注意力机制为其相邻节点分配合适的权值,并得到最终的节点表示;而谓词预测模块则负责由已有的图预测关系。

特征表示

特征表示模块以图像为输入,输出为具有视觉特征、空间特征和语义特征的边框。

候选区域生成

采用Faster R-CNN,首先对RPN产生的候选区域进行采样,其中 IoU>0.7 ,再对其执行 IoU>0.4 NMS,保留置信度大于 0.05 的候选区域作为检测到的目标,并收集得到所有的对象位置和标签。

特征提取

在特征提取中,考虑了视觉表征、空间特征和语义嵌入。

  • 视觉特征

    对于一个关系实例 (s,p,o) b_s,b_{so},b_o 表示其对应的主语、谓语、宾语的bounding box,其中 b_{so} 指的是 b_s b_o 的并集,它用以捕获周围的上下文,本文采用VGG-16,并对RoI Pooling的特征作为 b_s,b_{so},b_o ,视觉特征被表示为 v

  • 空间特征

    为了得到bounding box的相对空间特征,采用box regression的思想,假设 \Delta(b_i,b_j) b_i b_j box delta dis(b_i,b_j) iou(b_i,b_j) 分别表示 b_i b_j 之间的归一化距离和iou,且 b_i b_j 的并集记为 b_{ij} ,则主语和宾语的相对空间位置定义为:

    \begin{array}{r} l_{i j}=\left[\Delta\left(b_{i}, b_{j}\right) ; \Delta\left(b_{i}, b_{i j}\right) ; \Delta\left(b_{j}, b_{i j}\right)\right. \\ \left.\quad \operatorname{iou}\left(b_{i}, b_{j}\right) ; \operatorname{dis}\left(b_{i}, b_{j}\right)\right] \end{array}
  • 语义特征

    同一对对象之间可能存在不同的关系,相同的谓词也可能用来描述不同类型的对象对。文章采用语义嵌入层将对象类别 C 映射为词嵌入 S ,然后将主语和宾语的嵌入向量连接起来并通过一个全连接层学习对象对表示,语义特征用 s 表示。

先验知识蒸馏

为了表示语义一致性,故利用先验知识数据中每对概念的共现累积数,假设先验知识数据中有 N 个实例,设 n(c_i,c_j) 表示概念 c_i c_j 共现的频率, n(c_i) 表示概念 c_i 出现的频率,基于点互信息定义语义一致性,即当 c_i c_j 独立出现或者共现的频率比它们独立出现的频率低时,这个值为0,否则为正,如果共现的可能性大于单独出现的可能性,这个值会变大:

S_{c_{i}, c_{j}}=\max \left(\log \frac{n\left(c_{i}, c_{j}\right) N}{n\left(c_{i}\right) n\left(c_{j}\right)}, 0\right)

三元组的语义一致性 S_{r_k,r_l} 计算方式相同,实验中的先验知识来自关系检测数据集。

层次图注意力网络

为了在图像中对object-leveltriplet-level的依赖进行建模,需要考虑两种类型的图。一种是对象级图,它对对象之间的交互进行建模并进行对象级推理。另一种是基于三联体之间的交互构造的三联体图,进行三联体推理。

对象级推理

  • 对象级图构建

    对象级图 \mathcal{G}_{o}=\left\{\mathcal{V}_{o}, \mathcal{E}_{o}\right\} 包含一个节点集 \mathcal{V}_{o} 和一个边集 \mathcal{E}_o ,每个节点 n_i\in \mathcal{V}_o 表示一个对象,由一个边界框 b_i 和对应的嵌入属性组成,每条边 e_{ij}^o\in \mathcal{E}_o 表示 n_i n_j 之间的谓词,其中关系三元组 (n_i,e_{ij}^o,n_j) (n_j,e_{ji}^o,n_i) 是不同的实例,故为有向图。

    利用 dis(b_i,b_j) iou(b_i,b_j) 来估计两个目标候选的空间相关性,空间图被定义为:

    e_{i j}^{s p}=\left\{\begin{array}{ll} 1, & \operatorname{dis}\left(b_{i}, b_{j}\right)<t_{1} \text { or iou }\left(b_{i}, b_{j}\right)>t_{2} \\ 0, & \text { otherwise } \end{array}\right.

    此外,利用语义一致性定义语义相关性:

    e_{i j}^{s e}=\left\{\begin{array}{ll} 1, & S_{c_{i}, c_{j}}>t_{3} \\ 0, & \text { otherwise } \end{array}\right.

    所以,对象级图为 e_{ij}^o=e_{i j}^{s p} \oplus e_{i j}^{s e} \oplus 为或操作。

  • 对象级注意力

    将视觉和语义的联合特征作为节点的属性,则属性向量 \boldsymbol{m}_{i} 可以表示为 \boldsymbol{m}_{i}=concat(v_i, s_i) ,图注意力机制可表示为:

    \boldsymbol{m}_{i}^{\star}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} \cdot\left(\mathbf{W}_{d i r(i, j)}^{o} \boldsymbol{m}_{j}+\boldsymbol{b}\right)\right)

    其中 \boldsymbol{m}_{i}^{\star} 表示生成的隐藏层特征,注意力系数 \alpha_{ij} 的定义为:

    \alpha_{i j}=\frac{\exp \left(\left(\mathbf{U}^{o} \boldsymbol{m}_{i}\right)^{\top} \cdot \mathbf{V}_{\operatorname{dir}(i, j)}^{o} \boldsymbol{m}_{j}+\boldsymbol{c}\right)}{\sum_{j=1}^{K} \exp \left(\left(\mathbf{U}^{o} \boldsymbol{m}_{i}\right)^{\top} \cdot \mathbf{V}_{\operatorname{dir}(i, j)}^{o} \boldsymbol{m}_{j}+\boldsymbol{c}\right)}

    其中, U^o, V^o 为投影矩阵, b, c 为偏置项, dir(i, j) 是根据每条边的方向选择的变换矩阵。

三元组级推理

  • 三元组级图构建

    某些关系更有可能同时发生,如person-ride-bike更可能与car-on-street而不是elephant-on-grass共同出现,三元组级图是用来捕获关系实例之间的依赖关系的。假设节点集 \mathcal{V}_t 表示可能的三元组关系,边集 \mathcal{E}_t 表示三元组之间的相互作用,则三元组级图是一个无向图,被定义为:

    e_{k l}^t=\left\{\begin{array}{ll} 1, & S_{r_{k}, r_{l}}>t_{4} \\ 0, & \text { otherwise } \end{array}\right.
  • 三元组级注意力

    节点 k 的属性特征为三元组 k 的视觉特征,记为 \boldsymbol{h}_k ,生成的隐藏层特征表示为:

    \boldsymbol{h}_{k}^{\star}=\sigma\left(\sum_{l \in \mathcal{N}_{k}} \alpha_{k l} \cdot\left(\mathbf{W}^{t} \boldsymbol{h}_{l}\right)\right) \alpha_{k l}=\frac{\exp \left(\left(\mathbf{U}^{t} \boldsymbol{h}_{k}\right)^{\top} \cdot \mathbf{V}^{t} \boldsymbol{h}_{l}\right)}{\sum_{l \in \mathcal{N}_{k}} \exp \left(\left(\mathbf{U}^{t} \boldsymbol{h}_{k}\right)^{\top} \cdot \mathbf{V}^{t} \boldsymbol{h}_{l}\right)}

    其中, U^t, V^t 为投影矩阵。

谓词预测

谓词预测模块的输入是来自对象级推理和三元组级推理的特征,输出是几个关系三元组,第 i 个对象和第 j 个对象之间交互的最终表示是上述特征的串联: x_{ij} = [v_i;s_i;m_i^{\star};v_j;s_j;m_j^{\star};h_{ij}^{\star};l_{ij}] ,那么第 i 个和第 j 个对象之间的谓词类别置信度为 y_{ij} = softmax (\mathbf{W}^fx_{ij}) ,其中 \mathbf{W}^f 为映射交互嵌入以匹配谓词类别的嵌入矩阵,实验中使用了多类别交叉熵损失。

部分实验结果

数据集:Visual Relationship Detection (VRD),visual Genome(VG)VRD数据集包含5000个图像,100个对象类别和70个谓词类别;VG采用简化版本,包含99658张图像,200个对象类别和100个谓词类别。

评价指标:Predicate Detection (Predicate Det):给定一个ground truth对象的位置和类别,网络预测对象之间的关系;Relationship Detection (Relationship Det):网络同时预测对象的位置(边框)、类别及对象之间的关系。两者均采用 R@n 作为评测指标,表示计算前 n 个预测中真实正预测占注释关系总数的比例,实验中 k 为与每个对象关联的谓词的数量。

消融实验:

VRD数据集上的定量实验:

VG数据集上的定量实验:

定性结果,绿色、黄色和红色分别表示正确的三元组、正确但没有注释的三元组和错误的三元组: