ICMLW2019. Neural Message Passing for Visual Relationship Detection

ICMLW2019. Neural Message Passing for Visual Relationship Detection

论文地址

代码地址

arXiv

1
2
3
4
5
6
@article{hu2022neural,
title={Neural message passing for visual relationship detection},
author={Hu, Yue and Chen, Siheng and Chen, Xu and Zhang, Ya and Gu, Xiao},
journal={arXiv preprint arXiv:2208.04165},
year={2022}
}

文章旨在解决一张图片中的物体关系检测问题,物体和关系的随机组合会导致过多可能性。由于和相同物体关联的关系是具有依赖性的,因此文章借助这种依赖关系来减少搜索空间。通过利用交互图精确地建模物体和关系,然后提出信息传播算法来传递情景信息。提出了NMP方法,进一步集成语言先验和空间线索来剔除不真实的关系。

主要问题

视觉关系检测属于低级图像识别(分类、检测)和高级图像理解(image captioning、visual question answering)的中间层级,将主客体和之间的关系表示为三元组的形式(subject-predicate-object)。假设有NN个物体和KK个动词,可能会导致N2KN^2K种关系,大量地增加搜索空间。Lu等人提出分离的机制,独立地推断物体和动词,将复杂度减少为O(N+K)\mathcal O(N+K),但为丧失物体和动词之间的情景信息。此外以前工作没有考虑到关系三元组之间也会存在相互依赖性,例如给定“bus in the front of car”和“car park on road”的情况下,“bus”和“road”的关系更可能是“park on”而不是“drive on”。

文章贡献/创新点

文章构建了交互图,表示物体和边之间的关系,如下图所示,既考虑了物体嵌入,又考虑了边嵌入。此外使用了物体语义先验和空间位置,剔除不合理的关系以及捕获空间交互关系。

NMP物体和关系交互图

  • 提出了基于图的方法,精确建模图片中物体之间的关系,使用信息传递算法捕获高级交互关系。
  • 引入物体的词嵌入和成对物体之间的相对空间位置关系,作为视觉表观特征的补充。
  • 所提方法在两个广泛使用的数据集上超越了以往的最新方法。

文章方法

所提方法结构如下图所示,包括特征提取器、图构建和信息传递、边分类等几部分,可用于动词检测和视觉关系检测任务,两者区别在于:动词检测的目标候选框为预先给出,仅对物体关系进行检测;视觉关系检测需要同时给出物体检测结果和关系检测结果

NMP网络结构

特征提取

假设第ii个物体和bounding boxbi=xi;yi;wi;sib_i={x_i;y_i;w_i;s_i}和类别cic_i关联,分别由人工标定(动词检测任务)或目标检测网络网络(视觉关系检测任务)给出,文章利用VGG16提取物体的深度视觉特征信息,首先将原图片输入网络,将最后一层卷积的输出应用RoI Align来裁剪对齐物体候选框,进一步喂给最后一层全连接,得到的结果是视觉嵌入ai\boldsymbol a_i,为了弥补视觉特征,文章再次利用word2vector将物体类别cic_i映射到词嵌入sis_i,得到物体嵌入表示oi=[ai;si]\boldsymbol o_i=[\boldsymbol a_i;\boldsymbol s_i]。文章再次利用距离、IoU等结果来表示物体的空间嵌入关系lij=[Δ(bi,bj);Δ(bi,bij);Δ(bi,bij);iou(bi,bj);dis(bi,bj)]\boldsymbol l_ij=[\boldsymbol\Delta(b_i,b_j);\boldsymbol\Delta(b_i,b_{ij});\boldsymbol\Delta(b_i,b_ij);iou(b_i,b_j);dis(b_i,b_j)]

这里的意思是,使用RoI Align根据给定或目标检测的候选框,将物体在图片中的特征裁剪出来。所以在视觉关系检测任务中,RoI Align分别在目标检测和这里裁剪特征被使用。

构建图

交互图包括点集V\boldsymbol V和边集E\boldsymbol E,关系三元组(vieijvj)(v_i-e_{ij}-v_j)(vjejivi)(v_j-e_{ji}-v_i)是两种不同的实例,因此得到的图是有向图。动词检测任务中,图根据给定的物体对构建得到;关系检测任务中,作者假定物体之间的交互是近距离的,因此物体的交互关系根据点之间的距离和iou来计算,设置了两个阈值t1t_1t2t_2来剔除不合理的关系。

exist(eij)={1,   dis(bi,bj)<t1  or  iou(bi,bj)>t20,   otherwiseexist(e_{ij})=\left\{\begin{aligned} 1,&~~~dis(b_i,b_j)<t_1~~or~~iou(b_i,b_j)>t_2\\ 0,&~~~otherwise \end{aligned}\right.

神经信息传递

神经信息传递用于聚集全局情景信息来提升交互嵌入,相比直接利用图卷积网络,文章构建了节点-边和边-节点的信息传递机制:

oi1=femb(oi)ve:eij1=fe1([oi1;oj1])ev:oi2=fv1([1diinejiEeji1;1diouteijEeij1])ve:eij2=fe2([oi2;oj2])eij=ffusion([eij1;eij2])\begin{aligned} &\boldsymbol o_i^1=f_\text{emb}(\boldsymbol o_i)\\ v\rightarrow e:&\boldsymbol e_{ij}^1=f_e^1([\boldsymbol o_i^1;\boldsymbol o_j^1])\\ e\rightarrow v:&\boldsymbol o_i^2=f_v^1\left(\left[\frac1{d_i^{in}}\sum_{e_{ji}\in\boldsymbol E}\mathbf e_{ji}^1;\frac1{d_i^{out}}\sum_{e_{ij}\in\mathbf E\boldsymbol e_{ij}^1}\right]\right)\\ v\rightarrow e:&\boldsymbol e_{ij}^2=f_e^2([\boldsymbol o_i^2;\boldsymbol o_j^2])\\ &\boldsymbol e_{ij}=f_\text{fusion}([\boldsymbol e_{ij}^1;\boldsymbol e_{ij}^2]) \end{aligned}

其中fe1f_e^1fv1f_v^1fe2f_e^2均为使用ELU激活函数的两层全连接神经网络。

边分类

交互嵌入为边嵌入和空间位置嵌入的拼接:xi,j=[eij;lij]\boldsymbol x_{i,j}=[\boldsymbol e_{ij};\boldsymbol l_{ij}],然后送入分类器得到分类结果:yij=softmax(Wxi,j)y_{ij}=\mathrm{softmax}(\mathbf W\boldsymbol x_{i,j}),使用交叉熵损失函数。

仿真实验

数据集:使用视觉关系检测(VRD)和视觉基因组(VG)两个数据集。VRD包括5000张图片、100个物体类别和70种动词种类,有1877种关系三元组仅存在测试集中,用于另样本评估。VG包括99658张图片、200个物体类别和100种动作关系。

评估指标:采用Recall@50和Recall@100作为评估指标,Recall@n计算了在前n个有把握的预测结果中,真正例关系预测结果在总的标注关系中的占比。让kk表示每个物体相关的动作数量,文章报告了多种kk值下的Recall@n。

NMP检测结果对比

下面消融实验展示了信息传递、视觉嵌入、词嵌入和空间位置关系对于检测结果的提升,其中空间位置和词嵌入分别为动词检测提升了1%和3%的精度,信息传递则分别为动词检测和关系检测提升了3%和2%的精度。总体来看,视觉关系检测的提升小于动词检测,可能是因为物体检测错误或漏标。

NMP消融实验