论文地址:https://openaccess.thecvf.com/content/CVPR2021/html/Yuan_Multiple_Instance_Active_Learning_for_Object_Detection_CVPR_2021_paper.html 代码:https://github.com/yuantn/MI-AOD 发表于:CVPR 21 作者官方解析:https://zhuanlan.zhihu.com/p/362764637
Abstract
尽管主动学习在图像识别方面取得了很大的进展,但仍然缺乏一种专门用于目标检测的实例级主动学习方法。在本文中,我们提出了多实例主动目标检测(MI-AOD),通过观察实例级的不确定性来选择信息量最大的图像进行检测器训练。MI-AOD定义了一个实例不确定性学习模块,该模块利用在已标注集上训练的两个对抗性实例分类器的差异来预测未注记集的实例不确定性。MI-AOD将未标记的图像视为实例包,将图像中的feature anchor视为实例,并通过以多实例学习(MIL)的方式对实例重新加权来估计图像的不确定性。迭代的实例不确定性学习和重新加权有助于抑制噪声实例,从而缩小实例不确定性和图像级不确定性之间的差距。实验证明,MI-AOD为实例级主动学习设定了一个坚实的基线。在常用的目标检测数据集上,MI-AOD以明显的优势胜过最先进的方法,特别是在标注集较小的时候。
I. Introduction
本文是少数在顶会上进行将主动学习与目标检测结合起来的工作。用文中的话讲,本文是第一篇(不过也有一篇同期工作发表在了ICCV 21)。对于之前的工作,都是将用于分类任务的主动学习算法进行简单修改然后应用与目标检测的benchmark中,没有考虑目标检测的任务特性,因此性能肯定是次优的。本文主要从以下几个角度去解决问题:
首先是评估每个bounding box的不确定性。这里采取了比较传统的思路,设计了两个不同的分类头,通过比较这两个分类头预测结果之间的差异来评估不确定性。至于这个分类头是怎么弄成"不一样"的,具体做法是采用对抗训练的方式,思路将在后文的Maximizing Instance Uncertainty部分介绍。
另外一个问题是已标注集分布与未标注集分布的对齐问题。如果这两者之间本身的差异过大,那么拿用已标注集训练的模型去判断未标注集的不确定性是没有意义的。为此,本文提出对这两者进行对齐,思路将在本文的Minimizing Instance Uncertainty部分进行介绍。
最后,为了减少噪声样本的干扰,本文还提出了Instance Uncertainty Re-weighting来进行加权处理。
II. Maximizing Instance Uncertainty
这一步对应的是主动学习的必备过程,如何去评估一个样本的不确定性。为此,本文选取了基于Prediction Discrepancy的思路。那么现在的问题就是怎么让同一输入产生不同的输出,本文的方法是多装了一个instance classifier(下图中的
f
1
,
f
2
f_1,f_2
f1?,f2?): 现在,只要让
f
1
,
f
2
f_1,f_2
f1?,f2?的参数不同就行了。具体的做法是,在正常训练完毕后,固定
g
g
g的参数,使用以下对抗损失函数对
f
1
,
f
2
f_1,f_2
f1?,f2?进行微调,使这两者参数差异尽量大的同时维持检测器的性能:
argmin
?
Θ
\
θ
g
L
max
?
=
∑
x
∈
X
L
l
d
e
t
(
x
)
?
∑
x
∈
X
U
λ
?
l
d
i
s
(
x
)
\underset{\Theta \backslash \theta_{g}}{\operatorname{argmin}} \mathcal{L}_{\max }=\sum_{x \in \mathcal{X}_{L}} l_{d e t}(x)-\sum_{x \in \mathcal{X}_{U}} \lambda \cdot l_{d i s}(x)
Θ\θg?argmin?Lmax?=x∈XL?∑?ldet?(x)?x∈XU?∑?λ?ldis?(x)
l
d
i
s
(
x
)
=
∑
i
∣
y
^
i
f
1
?
y
^
i
f
2
∣
l_{d i s}(x)=\sum_{i}\left|\hat{y}_{i}^{f_{1}}-\hat{y}_{i}^{f_{2}}\right|
ldis?(x)=i∑?∣∣∣?y^?if1???y^?if2??∣∣∣?
III. Minimizing Instance Uncertainty
在对instance classifier进行微调,使其能够评估实例的不确定性后,接下来进行的操作是进行分布对齐,如下图所示: 在这一阶段,由于特征分布信息主要与backbone
g
g
g相关,因此固定预测头
f
r
,
f
1
,
f
2
f_r,f_1,f_2
fr?,f1?,f2?,对
g
g
g进行微调:
argmin
?
θ
g
L
min?
=
∑
x
∈
X
L
l
d
e
t
(
x
)
+
∑
x
∈
X
U
λ
?
l
d
i
s
(
x
)
\underset{\theta_{g}}{\operatorname{argmin}} \mathcal{L}_{\text {min }}=\sum_{x \in \mathcal{X}_{L}} l_{d e t}(x)+\sum_{x \in \mathcal{X}_{U}} \lambda \cdot l_{d i s}(x)
θg?argmin?Lmin??=x∈XL?∑?ldet?(x)+x∈XU?∑?λ?ldis?(x) 在保证检测性能的情况下尽量使分布差异变小。
IV. Instance Uncertainty Re-weighting
对于目标检测而言,detector会给出非常多的instance,但这些实例并不都是有用的。比方说,有的instance其实只是误检测的背景,那么这种instance本身的不确定性高不高我们也不关心,最终算不确定性还需要经过一步加权的过程。具体过程如下:
借助Multi-Instance Learning的思想,将每张图像视为一个实例包。然后,构造一个实例分类器
f
m
i
l
f_{mil}
fmil?来对一个包中每个实例分别进行打分: 这一步涉及到很多公式。简单总结的话,这个打分有点类似于常见的uncertainty。比如对应背景instance,其分类为背景的confidence本身是较低的;而对于前景instance,则confidence较高,据此便可以进行区分。
|