Exploring Visual Relationship for Image Captioning
论文地址:论文地址
1. Abstract & Introduction:
本文的主要贡献在于在进行图像摘要生成的过程中,利用GCN+LSTM捕捉图像物体之间的位置关系(spatial) 与语义关系(semantic)。
位置关系:上下左右等等;语义关系:subject-predicate-object(主谓宾),包括动作,状态等等,例如 man-eating-sandwich ,dog-inside-car。
与先前方法的对比如下:
(a)表示直接利用CNN提取图像信息,出入LSTM进行摘要生成。
(b)表示先用R-CNN进行目标检测,检测出的object经过attention/Meanpooling,再输入LSTM进行摘要生成。
(c)是作者提出的方法,经过GCN进行位置关系(spatial) 与语义关系(semantic)的捕捉!
但是,这种关系是很难建立的。作者的大体做法是:
2.Image Captioning by Exploring Visual Relationship:
作者给出的模型图:
2.1 问题公式化
符号定义:
- 图像: I I I
- 图像的摘要: S S S, S = { w 1 , w 2 , ⋯ , w N s } S=\{w_1,w_2,\cdots,w_{N_s}\} S={w1,w2,⋯,wNs},包含 N s N_s Ns个单词,且 w t ∈ R D s w_t \in \mathbb{R}^{D_s} wt∈RDs
- Faster R-CNN 检测到的object集合: V = { v i } i = 1 K V=\{ v_i\}_{i=1}^K V={vi}i=1K,表示图像 I I I 中有K个object区域, 并且 v i ∈ R D v v_i \in \mathbb{R}^{D_v} vi∈RDv
- 将object区域 v i v_i vi作为图的顶点,建立语义图 G s e m = ( V , ε s e m ) G_{sem}=(V, \varepsilon_{sem}) Gsem=(V,εsem),空间图: G s p a = ( V , ε s p a ) G_{spa}=(V, \varepsilon_{spa}) Gspa=(V,εspa)
- 摘要生成公式化为最小化损失函数: E ( V , G , S ) = − log P r ( S ∣ V , G ) E(V,G,S)=-\log P_r(S|V,G) E(V,G,S)=−logPr(S∣V,G) (正确句子概率的负对数),其中 G = { G s e m , G s p a } G={\{ G_{sem}, G_{spa}\}} G={Gsem,Gspa}。
2.2 图像中物体之间的视觉关系(semantic & spatial)
2.2.1 Semantic Object Relationship
语义关系的挖掘被定义为一个分类任务,即学习一个视觉关系基准(e.g., Visual Genome)上的语义关系分类器。 语义关系的基本形式就是<主语—谓语—宾语>。
对于图像
I
I
I 上检测到的两个物体:
v
i
,
v
j
v_i, v_j
vi,vj,作者设计了一个深度分类模型,这个模型依赖于
v
i
,
v
j
v_i, v_j
vi,vj的union bounding box(就是同时包含这两个物体的矩形框)。
看一下模型图:
解释:red: 主语名词的区域, blue: 宾语名词的区域, yellow: 同时包含主语、宾语的区域。
具体来说,首先通过嵌入层将输入的两个区域级特征
v
i
v_i
vi和
v
j
v_j
vj分开转换,再将其与同时包含
v
i
v_i
vi和
v
j
v_j
vj的union bounding box 中转换的区域级特征
v
i
j
v_{ij}
vij连接起来。
之后将得到的特征输入到分类器中,输出每类语义关系经过softmax之后的概率(
N
s
e
m
N_{sem}
Nsem类语义关系 + 1个non-relation class)。
这里的区域级别的特征来自Fater-RCNN。
有了语义关系分类器后,利用其来建立语义图 G s e m = ( V , ε s e m ) G_{sem}=(V, \varepsilon_{sem}) Gsem=(V,εsem):
- 将图像 I I I 中检测到的 K 个物体建立 K × ( K − 1 ) K\times(K-1) K×(K−1)的物体对(object pairs),两个相同的区域不会被分组。
- 利用语义关系分类器计算每个目标对(两个不同区域之间)的所有 N s e m + 1 N_{sem}+1 Nsem+1类关系的可概率分布。
- 如果 non-relation 类的概率小于0.5,则建立从主语名词区域顶点到宾语名词区域顶点的有向边,概率最大的语义关系类作为边的标签。
2.2.2 Spatial Object Relationship
作者将两个物体之间的空间定义为:< o b j e c t i − o b j e c t j object_i - object_j objecti−objectj >,表示后者 o b j e c t j object_j objectj相对于前者 o b j e c t i object_i objecti的空间位置。空间图 G s p a = ( V , ε s p a ) G_{spa}=(V, \varepsilon_{spa}) Gspa=(V,εspa)中每两个对象顶点的边和相应的位置类标签由以下决定:Intersection over Union (IoU)、 相对距离、角度:
计算方法:对于给定的两个object区域
v
i
,
v
j
v_i,v_j
vi,vj,分别计算边界框的形心的归一化坐标
(
x
i
,
y
i
)
,
(
x
j
,
y
j
)
(x_i,y_i),(x_j,y_j)
(xi,yi),(xj,yj),这样我的就能计算
v
i
,
v
j
v_i,v_j
vi,vj之间的IoU,相对距离
d
i
j
=
(
x
i
−
x
j
)
2
+
(
y
i
−
y
j
)
2
d_{ij}=\sqrt{(x_i-x_j)^2 + (y_i-y_j)^2}
dij=(xi−xj)2+(yi−yj)2,以及相对角度
θ
i
j
\theta_{ij}
θij (形心之间向量的角度)。
利用这些信息标注边:
- 如果 v j v_j vj被 v i v_i vi覆盖,或者覆盖 v i v_i vi,则为 “Inside”、“Cover”。
对于不是"Inside"、"Cover"的情况:
- 如果 v i , v j v_i,v_j vi,vj之间的IoU>0.5,则把 v i , v j v_i,v_j vi,vj之间的边标为“overlap”;
- 否则,相对距离
d
i
j
d_{ij}
dij 与 整幅图像的对角线长度 之比为
ϕ
i
j
\phi_{ij}
ϕij<0.5,则仅根据相对角度
θ
i
j
\theta_{ij}
θij 把边标记为:
⌈
θ
i
j
/
4
5
∘
⌉
+
3
\lceil \theta_{ij} / 45^{\circ} \rceil + 3
⌈θij/45∘⌉+3
-如果IoU<0.5 并且 ϕ i j \phi_{ij} ϕij>0.5, 说明 v i , v j v_i,v_j vi,vj之间的空间关系很弱,它们之间不建立边。
2.3 利用视觉关系生成图像摘要
这一部分主要对应先前流程图的最后两步,即:利用GCN将所有具有语义或空间图结构的图像区域上下文 编码为关联感知表示;并将关联感知表示输入带注意力的LSTM生成摘要。
2.3.1 GCN-based Image Encoder
这里使用图卷积的作用,简单的地说,类似普通的在图像上的卷积,无非是为了聚合上下文信息,使节点的信息更加丰富,表达能力更强。这样经过图卷积后,图中每个节点对应的物体实际上就聚合了与邻域物体之间的位置与语义信息,能帮助生成更好的图像摘要。
传统的图卷积通常作用在无向图上,其将每个顶点
v
i
v_i
vi 的邻域结点编码为实值向量:
v
i
(
1
)
=
ρ
(
∑
v
j
∈
N
(
v
i
)
W
v
j
+
b
)
v_i^{(1)} = \rho(\sum\limits_{v_j\in N(v_i)}Wv_j+b)
vi(1)=ρ(vj∈N(vi)∑Wvj+b)
其中 W ∈ R D v × D v W\in \mathbb{R}^{D_v\times D_v} W∈RDv×Dv,为变换矩阵;b为偏置向量, ρ \rho ρ为激活函数(例如ReLU)。 N ( v i ) N(v_i) N(vi) 表示 v i v_i vi 的邻域结点集合**(包括 v i v_i vi自己)**,代表着这些结点与 v i v_i vi 有视觉联系(语义、空间)。
虽然这种原始的作用在无向图上的GCN充分考虑了 v i v_i vi的邻域信息,但却没有考虑的视觉关系的方向性与边的标签信息,因此作者对其进行了改进:
对于建立的图
G
=
(
V
,
ε
)
∈
{
G
s
e
m
,
G
s
p
a
}
G=(V, \varepsilon)\in{\{ G_{sem}, G_{spa}\}}
G=(V,ε)∈{Gsem,Gspa},作者的作法是:对于有不同方向、不同标签的边,使用独立的变换矩阵W和偏置向量b,来使GCN对方向与标签敏感。这里作者给了三个公式:(粘图,懒得敲了)
分别解释一下:
- 第一个公式就是对于不同方向、不同标签边,的使用独立的变换矩阵W和偏置向量b, d i r ( v i , v j ) dir(v_i,v_j) dir(vi,vj) 用来选择每条边方向性的变换矩阵, l a b ( v i , v j ) lab(v_i,v_j) lab(vi,vj) 代表每条边的标签
- 第二个公式是在第一个的基础上加了edge-wise gate unit g v i , v j g_{v_i,v_j} gvi,vj,它的作用是使GCN能自动的关注更重要的边,而不是统一地累积所有邻域顶点的信息(类似于注意力机制)。
- 第三个公式是edge-wise gate unit g v i , v j g_{v_i,v_j} gvi,vj 的计算公式 W ~ d i r ( v i , v j ) ∈ R 1 × D v \widetilde {W}_{dir(v_i,v_j)} \in \mathbb{R}^{1\times D_v} W dir(vi,vj)∈R1×Dv, R ~ l a b ( v i , v j ) ∈ R \widetilde {R}_{lab(v_i,v_j)} \in \mathbb{R} R lab(vi,vj)∈R, σ \sigma σ是sigmoid 函数。
2.3.2 Attention LSTM Sentence Decoder
作者在此处提到一篇很受启发的论文(论文地址),这篇论文提出了一种自下而上与自上而下相结合的注意力机制来做图像摘要生成与视觉问答问题。
根据这个想法,作者设计了一种带注意力的双层LSTM模型,以通过图卷积后得到的特征
{
v
i
(
1
)
}
i
=
1
K
\{ v_i^{(1)}\}_{i=1}^K
{vi(1)}i=1K 作为输入。模型图就是完整图的右侧部分:
LSTM解码器首先通过连接输入单词
w
t
w_t
wt 、第二层LSTM单元的上一个输出
h
t
−
1
2
h_{t−1}^2
ht−12 以及平均池化的图像特征
v
ˉ
=
1
K
∑
i
=
1
K
v
i
(
1
)
\bar{v}=\frac{1}{K}\sum\limits_{i=1}^K v_i^{(1)}
vˉ=K1i=1∑Kvi(1) 这三者来收集最大上下文信息,然后将其作为第一层LSTM单元的输入,输出的计算公式为:
h
t
1
=
f
1
(
[
h
t
−
1
2
,
W
s
w
t
,
v
ˉ
]
)
h_t^1=f_1([h_{t−1}^2, W_sw_t, \bar{v}])
ht1=f1([ht−12,Wswt,vˉ])
W
s
∈
R
D
s
1
×
D
s
W_s\in \mathbb{R}^{D_s^1\times D_s}
Ws∈RDs1×Ds是输入单词的转换矩阵;
h
t
1
∈
R
D
h
h_t^1\in \mathbb{R}^{D_h}
ht1∈RDh 是第一层LSTM单元的输出。
依据第一层LSTM单元的输出
h
t
1
h_t^1
ht1,在关系感知的区域级特征上计算注意分布:
这里,
a
t
,
i
a_{t,i}
at,i 是
a
t
a_t
at 的第
i
i
i个元素(总共K个元素,K是视觉区域的个数),所有的
W
W
W都是转换矩阵。
λ
t
∈
R
K
\lambda_t \in \mathbb{R}^K
λt∈RK,其第
i
i
i个元素
λ
t
,
i
\lambda_{t,i}
λt,i 表示对
v
i
(
1
)
v_i^{(1)}
vi(1) (经过图卷积后的视觉特征向量)的注意力权重。
基于得到的注意力权重,计算 attended image feature
v
^
t
=
∑
i
=
1
K
λ
t
,
i
v
i
(
1
)
\hat{v}_t=\sum\limits_{i=1}^K \lambda_{t,i} v_i^{(1)}
v^t=i=1∑Kλt,ivi(1)。
进一步连接
v
^
t
\hat{v}_t
v^t 与
h
t
1
h_t^1
ht1,经过第二层LSTM的单元,得到输出:
h
t
2
=
f
2
(
[
v
^
t
,
h
t
1
]
)
h_t^2 = f_2([\hat{v}_t,h_t^1])
ht2=f2([v^t,ht1])
f
2
f_2
f2是第二层LSTM单元内的更新函数。之后利用
h
t
2
h_t^2
ht2,通过softmax层来预测下一个单词
w
t
+
1
w_{t+1}
wt+1。
2.4 训练与推理
- 对于模型的训练,在建立完初始的语义图与空间图后,每个图分别被用来训练一个独立的基于GCN的编码器 和 Attention + LSTM的解码器。
- 在推理时,我们采用了一种后期融合方案来连接GCN-LSTM体系中的两个可视化图。具体地说,我们在每个时间步对来自两个解码器的预测词分布进行线性融合,并在下一个时间步将具有最大概率的词作为输入词输入到两个解码器。计算每个单词 w i w_i wi的融合概率为:其中, α \alpha α是一个权重参数, P r s e m ( w t = w i ) Pr_{sem}(w_t=w_i) Prsem(wt=wi)、 P r s p a ( w t = w i ) Pr_{spa}(w_t=w_i) Prspa(wt=wi)分别表示用语义图和空间图训练的解码器对每个单词 w i w_i wi 的预测概率。
在后文中,作者提出,在GCN-LSTM中融合空间图和语义图的不同方案有:(a)注意力模块前的早期融合;(b)注意力模块后的早期融合;©后期融合:
实验结论:采用的晚期融合方案(c)优于其他两种早期融合方案(a,b)。
3. 数据集与实验
关于作者用到的数据集,有COCO,Visual Genome,不再赘述,可参考论文的描述。
关于特征与参数的设置:见论文。。
实验对比:见论文。。。