论文:Zero-Annotation Object Detection with Web Knowledge Transfer
一、简介
这是ECCV2018上面的一篇论文。通过 web 知识迁移实现零标注的对象检测问题,作者提出一种对象检测方法,通过获取web图片,在目标任务上不需要任何的人为标注。为了进行有效的从web图片上的知识迁移,作者提出一个多实例多标签的域适应学习框架。
整个多实例多标签域适应框架如上图所示,首先基于给定数据类别集, 通过自动检索方法去获取web图片[6,9,35,26]。整个框架可以分为以下三个主要部分:
- 使用web图片训练一个a weakly supervised detection(WSD) detection 模型。
- 使用instance-level domain adaptation (DA) 流去最小化instance-level特征差异。
- 通过迁移 WSD 得到的detection 模型,来使用 simultaneous transfer (ST) 流去判别无监督目标样本。
直接用web图片训练得到的WSD detection 是一个最简单的baseline 模型,如果把它直接应用在目标任务中,会得到非常差的结果。主要是因为没有考虑到web图片与目标任务的域差异问题,为了解决这一问题,作者提出使用对抗网络来解决instance-level domain adaptation (DA) 问题,主要包含两个组件,一个是域判别器,用来判别对象特征来自web图片还是目标域。另一个是特征生成器使得源域和目标域特征对齐,以至于域判别器无法分清特征来着哪个域。除此之外,作者还提出了一个创造性的组件:前景目标注意力机制(attention on foreground objects),该机制强调目标区域的迁移,抑制背景区域的迁移。然而Instance-level domain adaption 却带来一个新的问题,因为没有具体类别的约束,特征生成器生成的特征忽略了不同目标类别的语义信息。什么意思呢?就是它不仅将来自不同领域的特征一起带到同一个区域,而且还混合了来自不同类别的子流形,比如 web 图片的中的“牛”与目标域中的“羊”特征混淆在了一起。所以为了解决这个问题,作者提出了同时学习具体类别的假标签去保存类别的语义结构(simultaneous transfer, ST)。
二、方法
这一部分我将仔细介绍作者提出的几个重要的组件。首先看看在特征学习之后,网络分成三个分支流,分别对应WSD(in blue)、DA(in yellow)、ST(in purple)。
值得注意的是,学习到的特征会根据region proposal 取不同的特征,通过spp layer得到一个统一的维度 d, 然后将 R 个region特征连接在一起,才得到上图最左边的proposal feature learning
特征,最后得到的特征维度为 R*d。
2.1 Weakly supervised detection(WSD) trained on web images
使用 web 图片去进行WSD,作者使用了 WSDDN 方法,对应的论文笔记:论文笔记:Weakly Supervised Deep Detection Networks(WSSDN)
蓝色部分,学习到的特征经过两个全连接层,分别得到两个分数矩阵 S c l s 、 S l o c ∈ R m × C S^{cls} 、S ^ { l o c } \in \mathbb { R } ^ { m \times C } Scls、Sloc∈Rm×C, 然后再进行softmax操作:
p i , c c l s = e s i , c c l s ∑ k = 1 C e s i , k c l s , p i , c l o c = e s i , c l o c ∑ k = 1 m e s k , c l o c p _ { i , c } ^ { c l s } = \frac { e ^ { s _ { i , c } ^ { c l s } } } { \sum _ { k = 1 } ^ { C } e ^ { s _ { i , k } ^ { c l s } } } , \quad p _ { i , c } ^ { l o c } = \frac { e ^ { s _ { i , c } ^ { l o c } } } { \sum _ { k = 1 } ^ { m } e ^ { s _ { k , c } ^ { l o c } } } pi,ccls=∑k=1Cesi,kclsesi,ccls,pi,cloc=∑k=1mesk,clocesi,cloc
使用element-wise相乘的方式和并两个分支:
p i , c = p i , c c l s ⋅ p i , c l o c p _ { i , c } = p _ { i , c } ^ { c l s } \cdot p _ { i , c } ^ { l o c } pi,c=pi,ccls⋅pi,cloc
然后通过求和得到image-level的类别预测概率:
p c = ∑ i = 1 m p i , c p _ { c } = \sum _ { i = 1 } ^ { m } p _ { i , c } pc=i=1∑mpi,c
最终使用多类交叉熵为 loss :
L W S D = − ∑ c = 1 C [ y ( c ) log ( p c ) + ( 1 − y ( c ) ) log ( 1 − p c ) ] L _ { W S D } = - \sum _ { c = 1 } ^ { C } \left[ y ( c ) \log \left( p _ { c } \right) + ( 1 - y ( c ) ) \log \left( 1 - p _ { c } \right) \right] LWSD=−c=1∑C[y(c)log(pc)+(1−y(c))log(1−pc)]
y ( c ) ∈ { 0 , 1 } y(c) \in \{0, 1\} y(c)∈{0,1} 表示图像中类别 c 的标签。
因为在目标域没有任何的标签,所以loss的optimize 仅在 web 图片上训练。
具体每一步的作用和原因,请看:我的论文笔记:论文笔记:Weakly Supervised Deep Detection Networks(WSSDN)
2.2 Instance-level adversarial domain adaptation
使用全连接层 f c d fc_d fcd去分类特征 x i x_i xi(第 i 行)来自哪一个类, 得到 y i t ∈ { 0 , 1 } y_i^t \in \{0, 1\} yit∈{0,1},如果 y i t = 0 y_i^t = 0 yit=0,说明特征来自web图片,否则来自目标域。
对应的对抗 loss 可以写为:
min ϕ f w max ϕ f c d E x ∼ D t [ log ( p t ) ] + E x ∼ D w [ log ( 1 − p t ) ] \min _ { \phi _ { f } ^ { w } } \max _ { \phi _ { f c _ { d } } } \mathbb { E } _ { x \sim D ^ { t } } \left[ \log \left( p ^ { t } \right) \right] + \mathbb { E } _ { x \sim D ^ { w } } \left[ \log \left( 1 - p ^ { t } \right) \right] ϕfwminϕfcdmaxEx∼Dt[log(pt)]+Ex∼Dw[log(1−pt)]
E x ∼ D t [ log ( p t ) ] = ∑ i 1 [ y i t = 1 ] log ( p i t ) \mathbb { E } _ { x \sim D ^ { t } } \left[ \log \left( p ^ { t } \right) \right] = \sum _ { i } \mathbb { 1 } \left[ y _ { i } ^ { t } = 1 \right] \log \left( p _ { i } ^ { t } \right) Ex∼Dt[log(pt)]=i∑1[yit=1]log(pit)
E x ∼ D w [ log ( 1 − p t ) ] = ∑ i 1 [ y i t = 0 ] log ( 1 − p i t ) \mathbb { E } _ { x \sim D ^ { w } } \left[ \log \left( 1 - p ^ { t } \right) \right] = \sum _ { i } \mathbb { 1 } \left[ y _ { i } ^ { t } = 0 \right] \log \left( 1 - p _ { i } ^ { t } \right) Ex∼Dw[log(1−pt)]=i∑1[yit=0]log(1−pit)
其中 ϕ f w \phi _ { f } ^ { w } ϕfw 代表特征学习器的参数, ϕ f c d \phi_{f c _ { d }} ϕfcd 代表判别器 f c d fc_d fcd 判别器的参数。
这个minmax域对抗loss是用交替迭代的方式来优化的,主要分为两个步骤:
- 最大化loss,更新参数 ϕ f c d \phi_{f c _ { d }} ϕfcd 以至于判别器可以分清特征来自哪个域
- 固定 ϕ f c d \phi_{f c _ { d }} ϕfcd ,最小化loss,更新参数 ϕ f w \phi _ { f } ^ { w } ϕfw 来混淆特征。
不像已经在图像分类领域的域适应方法,仅仅对齐image-level的特征,而本文对齐instance-level的特征,所以作者提出前景目标注意力机制。如图三所示前景目标注意力机制使用来自WSD流的检测分数,计算前景目标概率 p i f p_i^f pif ( ∑ c = 1 ∞ p i , c \sum _ { c = 1 } ^ { \infty } p _ { i , c } ∑c=1∞pi,c, 区域 i 的所有类别分数和),然后再经过一个softmax层。目的是为了发现最有可能存在目标的区域,将 p f p^f pf 与 minimax loss结合得到:
min ϕ f w max ϕ f c d E x ∼ D t [ p f ⋅ log ( p t ) ] + E x ∼ D w [ p f ⋅ log ( 1 − p t ) ] \min _ { \phi _ { f } ^ { w } } \max _ { \phi _ { f c _ { d } } } \mathbb { E } _ { x \sim D ^ { t } } \left[ p ^ { f } \cdot \log \left( p ^ { t } \right) \right] + \mathbb { E } _ { x \sim D ^ { w } } \left[ p ^ { f } \cdot \log \left( 1 - p ^ { t } \right) \right] ϕfwminϕfcdmaxEx∼Dt[pf⋅log(pt)]+Ex∼Dw[pf⋅log(1−pt)]
2.3 Simultaneous transfer(ST) by pseudo supervision
前面有说到,域适应减小了目标域和源域整体的特征差异,得到域不变的特征表示。所以DA流最终可能会使得特征无法判别,因此作者保存了不同类别的语义结构信息。
作者使用来自WSD得到的 伪标签 作为监督学习来保存类结构信息,甚至加强特征的判别能力。
从WSD流得到检测分数 p i , c p_{i, c} pi,c,选择每个目标类的最高分数区域,标记为: i c = argmax i p i , c i _ { c } = \operatorname { argmax } _ { i } p _ { i , c } ic=argmaxipi,c。设置一个阈值 t 来决定一个图片中一个类是否出现,如果 p i , c > t p_{i, c} > t pi,c>t 代表对应的区域 i c i_c ic 被选为伪ground truth boxes,随机选择一些背景样本作为其他的bounding boxes。
loss 为:
L S T = − ∑ i ∈ P ∑ c = 0 C 1 [ y i S T = c ] log ( p i , c S T ) L _ { S T } = - \sum _ { i \in P } \sum _ { c = 0 } ^ { C } \mathbb { 1 } \left[ y _ { i } ^ { S T } = c \right] \log \left( p _ { i , c } ^ { S T } \right) LST=−i∈P∑c=0∑C1[yiST=c]log(pi,cST)
这里 y S T ∈ { 0 , 1 , 2 , . . . C } y^{ST} \in \{0, 1, 2, ...C\} yST∈{0,1,2,...C}, 0代表背景标签,P 是选择区域的集合。 p i , c S T p_{i, c}^{ST} pi,cST 是来自全连接层 f c t fc_t fct 之后的 softmax 类别概率输出。
三、实验
数据集:
- 源数据:web 图片
- 目标数据:PASCAL VOC 2007 and 2012
Baseline and upper-bound
使用了两个网络VGG_M 和 VGG_16,使用web图片进行WSD,得到 baseline ,使用VOC数据集的image-level标签作为上限。
结果分析
结果中可以看到“WSD+DA”反而使性能有轻微的下降,这个在前面DA实现有讨论过。作者说DA有可能将具有相似外貌的目标类混淆,比如vehicle 和 animal ?,而如完全不同的类 TV monitor 可以看出DA的贡献。
从Table2和Table3也可以看出,ST流对性能有着显著的提高,注意到这里用了多个ST流,灵感来自与 Multiple instance detection network with online instance classifier refinement ,使用多个ST流,生成多次伪标签来refinement 保存的类别语义信息。
作者进行了Ablation experiments,都能看出DA、ST、前景注意力机制FA的作用。同时还与传统的WSD方法进行比较,证明了该方法在目标数据没有标签的情况下,也能达到WSD的效果。