AAAI 2018
视觉检测任务都是按照<subject, predicate, object>来进行建模的。
主要两类挑战:
一是数据不足,没办法对所有的关系进行数据标注,并且上一篇论文中所说的分类器数量庞大,并且因为数据分布不均导致的长尾问题,都是需要面临的挑战。
二是数据集的关系标注不完整。只标注了一部分对象对之间的关系,或者是标注的对象对的关系不全,可能有多种关系都在发生。
关于视觉关系检测,和上一篇类似,就是检测图像中的objects,然后输出每一组object之间的predicate。
文章中的表示:
P ( s , o ) P_{(s,o)} P(s,o)表示对于这一组(s,o)的所有视觉关系的集合(predicate的集合)
R = ( s , p , o ) ∣ ( s , o ) ∈ P , p ∈ P ( s , o ) R=(s,p,o)|(s,o)\in P , p \in P_{(s,o)} R=(s,p,o)∣(s,o)∈P,p∈P(s,o)表示一张图中所有视觉关系的集合。
训练阶段,同样是监督学习,bbox信息和label信息都是已知的。
模型:
主要从视觉外观特征、空间位置特征、语义特征几个部分进行特征的融合,
visual appearance cue
基于两个已经定位好的对象的视觉特征,人们可以很容易的得到他们之间可能的关系,predicate,并且能够对着两个对象进行分类,并他们周围的上下文信息给出整体的解释。
如此可以说明,视觉特征是非常关键的。
b s = ( x s , y s , w s , h s ) b_s=(x_s,y_s,w_s,h_s) bs=(xs,ys,ws,hs)表示subject的bbox的坐标;
b o = ( x o , y o , w o , h o ) b_o=(x_o,y_o,w_o,h_o) bo=(xo,yo,wo,ho)表示object的bbox的坐标;
b p b_p bp表示两个区域的并集union的区域表示,代表了两个对象之间predicate的区域。
使用CNN(VGG16)将图片变为特征图,然后根据bbox的位置,截取ROI,如此能够减少计算量。
对于一个relationship 的实例,(s,p,o),分别截取各自的视觉特征,p的部分截取后与subject和object分别相结合。
spatial location cue
空间位置信息与视觉外观信息是互补的。因为许多谓词,比如上,下这种反映两个对象之间空间或者介词关系的,仅从视觉特征中是学习不到的。
这里作者给出两种方式来利用空间信息:
①相对位置特征
4维的向量表示 ( l x , l y , l w , l h ) (l_x,l_y,l_w,l_h) (lx,ly,lw,lh).
对于subject,相对位置表示为:
②spatial masks 掩膜
将输入图片逐像素点的进行处理,在bbox内的区域像素点的值不变,其余位置是0,如此得到一个二维矩阵。然后下采样,尺寸变为32×32。subject和object的掩膜连接作为空间神经网络的输入,该神经网络是通过三个卷积层将空间掩膜变为低维向量。
semantic embedding cue
语义表示特征
因为同一个谓语可以用来描述不同类别的对象对,这样仅基于视觉外观特征进行谓语识别就比较困难。
为了利用不同对象类别的视觉表现,引入了语义嵌入层来整合subject和object的类别信息。
具体是通过语义嵌入层将对象的类别映射到一个特征向量,然后连接subject和object的嵌入向量,通过全连接层学习对象对的联合表示。学习的联合表示能够进一步将视觉特征与空间特征融合。
word2vec的方式进行词嵌入,嵌入的是object和subject的类别。
对于一个输入的图片x,对于图像中的关系实例 r=(s,p,o),首先提取视觉特征,空间位置特征,然后进行词嵌入,得到语义嵌入特征。
将三种特征连接一起,得到两个实体各自的特征向量 f s , f o f_s,f_o fs,fo。然后将这两个实体连接在一起,并输入到一个全连接层,得到该三元组的联合特征向量 f ( x , s , o ) f(x,s,o) f(x,s,o)。
LOSS
关于输入图像x和关系实例r的一个通用函数为:
函数f(·)代表进行上面的操作。
wp表示要为第p个谓词学习的参数。
该函数也是得分函数,得分越高,三元组成立的概率越高。
在视觉关系检测中,并不是所有的关系都被标注出来。但是标注出来的关系一定是要比没标注的关系更突出的。
给出这样的loss function:
其中,
R
′
=
{
(
s
′
,
p
′
,
o
′
)
∣
(
s
′
,
o
′
)
∈
P
,
p
′
∉
P
s
′
,
o
′
}
R'=\{ (s',p',o')|(s',o') \in P , p' \notin P_{s',o'}\}
R′={(s′,p′,o′)∣(s′,o′)∈P,p′∈/Ps′,o′}表示所有没有被认为标注出来的关系实例。
[
⋅
]
+
=
m
a
x
(
0
,
⋅
)
[·]_+ =max(0,·)
[⋅]+=max(0,⋅)。
Δ ( ⋅ , ⋅ ) \Delta(·,·) Δ(⋅,⋅)的含义是为了解决标注不完整的问题。引入subject和object对的先验概率,概率越高,表明这种关系被漏标注的可能就越大。
定义如下:
cs和co是类别标签。
表示cs和co有关系p的概率。
在这种方式下,没被标注的关系,并且有着较大的先验概率的关系,就会较少惩罚。
在预测阶段:
使用RCNN对象检测来定位图像中所有的objects,并且得到它们的类别以及置信分数。然后使用非最大抑制NMS来处理每一个对象的类别。
用B表示所有的候选object,用P*表示所有的候选对象对
然后得到一个通用的分数来表示对象对和它们之间的谓语p:
分数越高,表示对象对之间发生关系p的概率越大。
除此之外,还结合目标检测所给出的置信分数来进行调整
然后将这个概率和上面的分数函数得到的结果融合,最后组成的分数用来对关系进行排名。
实验结果:
在VRD上的与一些方法的比较,上一篇将的方法是VR-V和VR-LP。
这是文章中的模型中一些不同组合的实验:
总结:
deep structural ranking的方法,能够处理多视觉关系的检测,相对于之前的方法,能够更好的处理同时发生的关系,并且结合条件概率减轻训练集标注不完整的问题。
但是处理只是使用了关于对象的检测,忽略了对象的全局上下文关系,而上下文信息可以减少关系的模糊性,增强判断,并且可以基于上下文信息更好的概括新关系。
去除了对象之间至多存在一种关系的限制,变为多关系检测,提高实验效果。