Slip the surly bonds of earth, to touch the face of God

[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions

论文地址:http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Mao_Generation_and_Comprehension_CVPR_2016_paper.pdf

这篇文章介绍了一个既能生成图像中某个区域对应的描述,又能通过描述推断出其对应的图像区域的模型。相比于整幅图像生成概括性描述,这个模型相应地更有针对性一些。

《[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions》

模型的两个功能示意,左边的方框代表通过整张图像和选定的图像区域,生成区域的描述。右边的方框代表通过整张图像和候选区域,以及具体的区域描述,推断出描述的是那个区域。

这两年图像描述领域生成一下子出现了很多相关研究论文,相比于那篇开山般的论文——Show and Tell-A Neural Image Caption Generator,这篇明显是讲图像描述细化到区域了,按照文中的说法,生成的描述被称作referring expressions。除了开创性地提出了Unambiguous Object Descriptions的生成方法,作者还创建了一个区域描述的dataset,基于MSCOCO的。

数据集

《[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions》

UNC-Ref-COCO是Tamara Berg(非本文作者)友情提供给他们使用的,Google Refexp则是他们自己建立的dataset。两者都是ReferIT game方法应用到MSCOCO上建立的数据集,只不过侧重点不同,左侧的侧重尽可能简洁地描述出区域信息,而右侧的则侧重详细描述区域信息。研究中作者两个数据集都使用了。

任务目标

既然说了模型有两个功能,那么显然就有两个任务目标

引用(区域)描述生成

不知道如何翻译referring expression,下文中我就统一称为区域描述了。
这部分还是挺像最基本的图像描述生成的,除了输入从整张图像变成了区域图像。计算最可能词序列时也使用了Beam Search,beam大小为3。这篇文章有说beam大小的问题,可以参考PAMI-Show and Tell- Lessons learned from the 2015 MSCOCO Image Captioning Challenge

《[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions》

非常基本的模型,句子添加了标志符。

区域描述理解

读到这里之前,我还在想她们建立了一个怎样复杂的模型才能通过描述找出对应的图像位置啊,应该是很神奇的方法。然而,直到我看到他们是如何做的,会心一笑?

作者也说,理解区域描述其中一个方法就是,训练一个直接从描述预测图像区域的模型。然而,他们并没有这么做,而是用一个简单巧妙的做法,就是利用贝叶斯公式:

$$
p(R|S,I)=\frac{p(S|R,I)p(R|I)}{\sum_{R’\in C} p(R’|I)}
$$
里面R就是区域,S是描述,I是图像。既然上一步已经有了$p(S|R,I)$的模型了,那么把所有可能的区域都计算一遍,然后求得哪个区域更可能生成参考的描述不就行了。好吧,这很tricky ??

模型方法

《[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions》

典型的CNN接LSTM的框架,将前面的CNN换成了Region CNN。不过据我理解这个Region CNN应该和RCNN不一样,里面的region可能是人工标注的,但是文章中没有具体说明。

CNN是用的在ImageNet上预训练过的VGGNet,文中说同时训练了整张图像和区域的特征,都是取的VGGNet的最后一层1000维特征,应该是直接连接在一起,一共是2000维。其中对于region wrapping,首先保持长宽比不变,然后扩展到224*224的方形图像,空白边框取像素均值。训练的时候,VGGNet的参数都是固定的,除了最后一层,均没有在训练中调整。好像这种CNN+RNN的模型训练一开始都不训练CNN参数,只训RNN参数,有些在第二阶段的训练才有选择性的训练CNN参数,有些则干脆一直保持fixed。原因的话应该是防止训练一开始RNN部分的参数调整影响到CNN吧,毕竟大部分模型里CNN都是在ImageNet预训练过。

特征向量中还加上了区域位置特征,是一个5维向量:

$$
[\frac{x_{tl}}{W}, \frac{y_{tl}}{H}, \frac{x_{br}}{W}, \frac{y_{br}}{H}, \frac{S_{bbox}}{S_{image}}]
$$
前四项分子分别是区域左上角和右下角的坐标,分母分别是整张图像的宽度和高度。第五项是区域面积和整张图像面积之比。这样的5维位置特征加上上面的2000维区域图像特征,组成2005维向量输入LSTM。

LSTM使用了1024维的词向量空间,1024维的隐藏层。这样的话,取不同的Rigion都会计算出一个对应的p(S|R, I)。不同的Rigion他们模型参数都是共享的。

目标函数显而易见,最小化负log函数,也就是最大化对应区域生成对应描述的概率:

$$
J(\theta)=-\sum^N_{n=1} \log p(S_n|R_n, I_n, \theta)
$$
N表示一次训练的N张图像。

细节上使用随机梯度下降,batch大小是16,初始学习率0.01,每50000次迭代减半。为防止过拟合,在LSTM的词嵌入和输出层使用0.5的dropout。

MMI训练

看到这里,你也许会问,这不就是把整张图像换成区域图像吗,模型图上还要R’有什么用?别急,作者这一节修改了目标函数的形式,将原目标函数做如下改动:

$$
\log p(R_n|S_n,I_n, \theta) = \log \frac{p(S_n|R_n, I_n, \theta)}{\sum_{R’\in C(I_n)}p(S_n|R’,I_n,\theta)}
$$

正好用上了非描述区域R’,就是最大化目标区域生成目标描述的概率,最小化非目标区域生成目标描述的概率。MMI(Maximum Mutual Information)就是最大化互相关,因为互相关就是:

$$
MI(S,R)=\log \frac{p(S,R)}{p(R)p(S)}=\log \frac{p(S|R}{p(S)}
$$

为了计算方便,使用这样的目标函数:

$$
J”(\theta)=-\sum^N_{n=1} \{\log p(S_n|R_n,I_n,\theta)-\lambda\max (0, M-\log p(S_n|R_n,I_n)+\log p(S_n|R’_n,I_n,\theta)) \}
$$

看起来很专业,其实原理还是很简单的。

这样的话,模型似乎向着生成unambiguous的区域描述迈进了。

这里作者还说了他们的模型是可以区分比较相似的区域的,在选择图像的候选区域时,一种方法时把所有区域都考虑进来,而另一个思路是将同目标区域相同类型的区域考虑进来。比如图像中有两个人,那么就只考虑两个人的区域,至于旁边的树、河、桌子就不管了,因为他们很好区分,而两个人不好区分。后面的实验也同时测试了这两种区域选取方法。

半监督学习

生成对应区域的描述这件工作很艰巨,不可能做一个非常大的数据集。因此作者想了一个方法,做半监督学习

《[论文解读] CVPR2016 Generation and Comprehension of Unambiguous Object Descriptions》

首先用监督训练训练Model G,然后使用这个model生成无描述只有区域标志的数据集的描述,经由Verification取出可信的描述,然后再去调整Model G的训练。这个Verification是由Model C控制的,Model C是一个在Supervised images上训练出的模型集合,只有generated descriptions经由所有Model C集合里的model都能判断出正确的区域时,这个Dbb+auto才被视为可信的。只是不知道这个Model C集合是怎样训练的,也许是调整Model G的参数设置为不同值训练出的不同模型吧,也许就是相同参数训练多个模型,文章中没有具体说明。

实验

略,有兴趣自己看原文吧

点赞

发表评论

电子邮件地址不会被公开。