Knowledge-Embedded Routing Network for Scene Graph Generation
时间:2019年
Intro
为了理解图片,除了能够定位和识别外,还需要理解图片中目标之间的关系,然后现实世界中关系的分布是不均衡的,现有方法在频率小的关系上表现很差
我们的模型先用Faster RCNN生成一系列object regions,然后根据统计目标的co-occurrence信息,用一张图来将这些区域关联起来,然后用一个图网络来传播图上结点的特征,以得到更contextualized的特征,从而预测class label。然后对于每对待标签的目标,我们建立一张图,其中的结点表示目标和关系,边表示在两个目标上统计的co-occurrence relationship概率,然后用另一个网络来探索relationship和object之间的影响,来预测它们的关系,这个过程在每对object上进行,最后一张scene graph就生成了
Approach
A scene graph is a structured representation of content in an image. 它包括class label、目标位置和目标之间的关系,可以用三元组表示 G = { B , O , R } \mathcal{G}=\{B,O,R\} G={B,O,R}表示,
- B = b 1 , b 2 , . . . , b n B={b_1,b_2,...,b_n} B=b1,b2,...,bn是region candidate, b i ∈ R 4 b_i\in R^4 bi∈R4表示第 i i i个bounding box
- O = o 1 , o 2 , . . . , o n O={o_1,o_2,...,o_n} O=o1,o2,...,on,是目标集合, o i o_i oi是 b i b_i bi中目标的标签
- R = r 1 → 2 , r 1 → 3 , . . . , r n → n − 1 , R={r_{1\rightarrow 2},r_{1\rightarrow 3},...,r_{n\rightarrow n-1},} R=r1→2,r1→3,...,rn→n−1,,是关系三元组, ( b i , o i ) , ( b j , o j ) , x i → j ∈ R (b_i,o_i),(b_j,o_j),x_{i\rightarrow j}\in \mathcal{R} (bi,oi),(bj,oj),xi→j∈R
R \mathcal{R} R是所有关系的集合,包括no-relationship
给定一张图片
I
\mathcal{I}
I,scene graph的分布可以分解为
bounding box component
p
(
B
∣
I
)
p(B|I)
p(B∣I)生成的候选区域,本文用Faster RCNN实现,object component
p
(
O
∣
B
,
I
)
p(O|B,I)
p(O∣B,I)然后候选区域的标签,这里,我们通过统计目标 co-occurrence的信息来建立图,如图所示
利用co-occurrence的信息,使用图卷积网络来为每个区域学习到contextualized representation并实现更好的预测效果,基于预测的label,relationship component
p
(
R
∣
O
,
B
,
I
)
p(R|O,B,I)
p(R∣O,B,I)推断出目标两两之间的关系,最终生成全部的scene graph。我们对每两个目标建立一张图,其中结点表示目标和关系,边表示统计的所有关系的statistical co-occurrences,如上图b所示,同样的,另一幅图网络用来学习关系和目标之间的相互影响,全部的pipline如图所示
Bounding box localization
直接使用Faster RCNN来得到 B B B,对于每个区域 b i b_i bi,同时获取ROI pooling layer的特征向量 f i f_i fi
Knowledge-embedded routing network
Object这一步利用统计信息来建立一张图以联系检测出的区域之间的关系,并且使用一个图网络来学习到contextualized 的representation。
为此,先计算目标co-occurrence的概率,对于两个类别 c c c和 c ′ c' c′,我们先计算出概率 m c c ′ m_{cc'} mcc′,当 c c c出现时 c ′ c' c′出现的概率,然后得到 M c ∈ R C × C M_c\in R^{C\times C} Mc∈RC×C,给定两个区域 b i b_i bi和 b j b_j bj,我们将 b i b_i bi复制 C C C次,来得到 C C C个结点 { b i 1 , b i 2 , . . . , b i C } \{b_{i1},b_{i2},...,b_{iC}\} {bi1,bi2,...,biC},其中 b i c b_{ic} bic表示 b i b_i bi和 c c c的相互关系,在 b j b_j bj上执行同样的操作。直观上看, m c c ′ m_{cc'} mcc′可以被用来关联结点 b j c ′ b_{jc'} bjc′到 b i c b_{ic} bic,因此 M c M_c Mc可以用来关联区域 b i b_i bi的结点和区域 b j b_j bj的结点,这样我们就可以是所有区域关联起来,然后建立图
我们使用gated recurrent update机制来迭代地传送信息,特别的,在时间
t
t
t,每个结点
b
i
c
b_{ic}
bic有一个隐藏状态
h
i
c
t
\mathbf{h}^t_{ic}
hict,因为每个结点关联某个区域,因此使用这个区域的特征向量来初始化隐层状态
其中
φ
o
\varphi_o
φo将
f
i
\mathbf{f}_i
fi映射到低维,通过一个全连接层实现。
在每个timestep
t
t
t上,每个结点根据图结构融合它邻居的信息
然后模型以
a
i
c
t
a^t_{ic}
aict和前一个隐层状态为输入,来更新隐层状态,
这样每个结点可以获取邻居的信息并传递信息给邻居,实现了结点间的关联,
T
o
T_o
To步之后,结点信息在图上充分传播,然后我们得到每个region的隐层状态
{
h
i
1
T
o
,
h
i
2
T
o
,
.
.
.
,
h
i
C
T
o
}
\{h^{To}_{i1},h^{To}_{i2},...,h^{T_o}_{iC}\}
{hi1To,hi2To,...,hiCTo},然后使用一个输出网络以初始隐层和最终隐层为输入,输出每个结点的特征
其中
o
o
o_o
oo是全连接层,最后对于每个区域,融合所有关联输出特征向量来得到它最终的class label
输出的类别标签
o
i
=
a
r
g
m
a
x
(
o
i
)
o_i=argmax(\mathbf{o_i})
oi=argmax(oi)用来做关系推断
Relationship,给定一对目标和它们的类别,它们关系的概率分布是高度歪斜的,比如,给一个人和一匹马,它们的关系极有可能是骑,这里我们将目标对的关联在一幅图中表达,再使用另一个图网络来探索这两个部分的相互影响,最终进行relationship infer。
同样,我们计算co-occurrence,给定一个主体 c c c和一个客体 c ′ c' c′,我们计算所有关系的分布为 { m c c ′ 1 , m c c ′ 2 , . . . , m c c ′ K } \{m_{cc'1},m_{cc'2},...,m_{cc'K}\} {mcc′1,mcc′2,...,mcc′K},其中 K K K是关系数,对于 o i o_i oi和 o j o_j oj,我们计算一个图,上面有subject node,object node和K个关系结点,我们使用 m o i o j k m_{o_i o_j k} moiojk来记作 o i , o j o_i,o_j oi,oj和关系结点k之间的关联。这样graph with statistic co-occurrences embedded就建立完成了
为了探索结点的关联,我们使用了identical graph gated recurrent update mechanism,每个结点
v
∈
{
o
i
,
o
j
,
1
,
2
,
.
.
.
,
K
}
v\in\{o_i,o_j,1,2,...,K\}
v∈{oi,oj,1,2,...,K}有一个隐层状态
h
v
t
h^t_v
hvt,在第
t
t
t部的时候,我们用目标结点对应区域的特征向量初始化目标结点,用两个目标并集区域的特征向量以及两个目标的空间关系来初始化关系结点
其中
φ
o
′
,
φ
r
\varphi_o',\varphi_r
φo′,φr都是全连接层,
f
i
j
\mathbf{f_{ij}}
fij是一个特征向量,它编码了两个目标并集区域的特征以及空间位置信息,在每个时间
t
t
t,关系结点综合位置结点的信息,位置结点综合关系结点的信息
然后模型结合这些融合的特征以及上一步的隐层装来来更新隐层状态,更新的方法和之前一样,然后生成最后每个结点的隐层状态
{
h
i
1
T
r
,
h
i
2
T
r
,
.
.
.
,
h
i
C
T
r
}
\{h^{Tr}_{i1},h^{Tr}_{i2},...,h^{T_r}_{iC}\}
{hi1Tr,hi2Tr,...,hiCTr},然后用一个输出子全连接网层来计算node-level的特征,;并融合这些特征来推断relationship
ϕ
r
\phi_r
ϕr是全连接层实现的
结论
本文通过统计co-occurrence的方法将信息融合到了特征中来帮助scene graph的生成过程。