Intention Oriented Image Captions with Guiding Objects
时间:2019 CVPR
Intro
image caption的过程缺少可控性,一张图片中可以包括很多个目标,但是一个描述只能包括其中一小部分
尽管我们能找到并分类出所有目标,但是我们不能强制语言模型描述我们关心的目标
本文提出了image captions with guiding objects(CGO)模型,CGO模型可以保证用户选择的目标包含在一个caption中,它可以是任何从图片中检测到的目标,即便在训练集中没有遇到过
Approach
给定一张图片,CGO能够将选择的目标融合到生成的句子中,这个过程中,两个LSTM生成目标两侧的文本,一个记为LSTM-L,另一个记为LSTM-R
Problem Formulation
给定图片
I
I
I,我们想要生成序列
y
=
(
y
1
,
y
2
,
.
.
.
,
y
T
)
y=(y_1,y_2,...,y_T)
y=(y1,y2,...,yT),词汇表的长度为
V
V
V,记
θ
\theta
θ是encoder-decoder的参数,我们的目标是找到最佳的参数,使得
且
其中
f
t
f_t
ft是图片的特征,在不同模型中的使用方法不同,比如在NIC中,图片特征图
f
f
f仅仅在time step = 0的时候提供,而使用attention机制的模型会在每一步attend image feature
如果我们想要生成包括某个词的序列,则目标序列变成
y
=
(
y
1
,
.
.
.
,
y
k
,
.
.
.
,
y
T
)
y=(y1,...,y_k,...,y_T)
y=(y1,...,yk,...,yT),其中
y
k
y_k
yk就是想要包括的词,此时的目标为
LSTM-L
给定图片
I
I
I和词
y
k
y_k
yk,LSTM-L生成左边的序列
然而这里存在一个问题,因为目标可以在序列的任何位置,比如’there is a banana and an apple on the table’以及’there is an apple and a banana on the table‘,且LSTM-L无法得知右边的序列,如图所示
目标在被描述之前就已经被决定了,就像人类在描述物体前已经得到了物体的大部分信息,因此,我们首先假设有一个集合的目标会出现在描述中,然后设定这些目标的顺序是安排好的,然后我们就可以得到一系列应当出现在右侧序列的目标标签,我们记目标标签为
S
=
{
o
b
j
e
c
t
1
,
.
.
.
,
o
b
j
e
c
t
m
}
S=\{object_1,...,object_m\}
S={object1,...,objectm},
S
S
S中的目标不会出现在LSTM-L生成的序列中,但会影响生成的内容,如上图(b)所示,序列S也作为LSTM-L的输入,现在LSTM-L以图片
I
I
I,序列
S
S
S和
y
k
y_k
yk作为输入
当生成<END>的时候,序列生成结束,句子到达句首,计算损失为
LSTM-R
当左边的序列生成完成后,LSTM-R以LSTM-L的生成结果作为输入,然后完成另一部分的生成,现在模型训练目标为
实践中,我们没有将右边的序列当作部分序列来训练,而是使用通常的LSTM误差,两者的区别在于
全序列的误差,可以看作为左边序列长度为0的情况
Novel Word Embedding
CGO中,当一个novel object 被选择为guiding object的时候,我们可以使用另一个见过的与这个object相似的object,可以通过WordNet或者word2vec中word embeeding的距离来选择,传统的image caption中,使用相似的embedding并不能生成novel word,而CGO中的novel word因为不是通过decoder生成的是直接写入句子的,所以能够生成(copy)novel word
Model details
实验中LSTM-R LSTM-L都使用up-down模型
Result
Conclusion
本文提出了CGO来进行object guided image caption,以图片和期望的object词作为输入,模型可以生成包括object的caption,这个过程是由LSTM-L和LSTM-R分别从Object词两边生成句子完成的
问题
本文的生成效果很好,只是反向地生成句子,围绕着词的两侧生成句子是反直觉的