Object-Aware Instance Labeling for Weakly Supervised Object Detection
Kosugi
ICCV, 2019 (PDF) (Citations 26)
Abstract
focus on
为了提高迭代更新的效率,我们重点研究了实例标记问题,即根据最后的定位结果,每个区域应该标注哪些标签。
CAP Labeling
为了解决只覆盖部分对象的区域容易被标记为正的问题,我们针对上下文分类损失,寻找覆盖整个对象的区域。
SRN Labeling
考虑到图像中包含的其他物体可以被标记为负的情况,通过空间限制来防止同一图像中的其他相同对象被标记为负样本。
1. Introduction
图 1. (a) 基线实例标记和 (b) 我们的实例标记的比较。在定位结果中,仅显示得分最高的区域(红色框)。实例标记中的减少框表示标记为正/负的区域。我们的标记方法可以将覆盖整个对象的区域标记为正例,重点关注上下文分类损失,并避免将其他对象标记为负向,从而引入空间限制。本文的贡献如下:
- 我们从实例标记的角度改进了WSOD 方法。
- 我们提出了两种实例标记方法。第一种(
CAP
)旨在根据上下文分类损失找到覆盖整个对象的区域。第二种(SRN
)可以通过施加空间限制来避免将对象标记为负面。 - PASCAL VOC 2007 和 2012 数据集的实验表明,我们的方法可以实现比其他最先进的方法更好的性能。
2. Related works
WSOD is a task where a detector is trained with only image-level annotations. Methods for WSOD can be roughly divided into three approaches: the alternating approach
, end-to-end approach
, and transferring approach
.
3. Method
OICR
该论文以OICR作为基线方法,关于该论文的具体笔记可见 论文笔记 Multiple Instance Detection Network with Online Instance Classifier Refinement
Problem
OICR的标注方法有两个问题。首先,倾向于检测对象的最具辨别力的部分而不是整个对象。如果
r
j
c
r_{j_c}
rjc 没有高度重叠整个对象,则渐进式更新会陷入局部最优。其次,简单的实例标记没有考虑图像包含同一类的多个对象的情况。即使一个对象被正确标记为正面,其他对象也可能被错误地标记为背景。为了解决这些问题,我们提出了更有效的实例标记方法,称为 CAP 标记和 SRN 标记。
3.1. CAP Labeling
我们提出了 CAP 标记,以避免检测到对象最具辨别力的部分而不是整个对象的问题。我们引入了一个判断一个区域是否覆盖整个对象的网络,当我们生成实例标签时,从覆盖整个对象的区域中选择得分最高的区域。
在以前的一些方法[1, 12]中,使用屏蔽策略来查找整个对象。如果某个区域的遮罩图像降低了分类置信度,则可以认为该区域具有区分性。然而,我们通过实验发现,仅覆盖对象某些部分的区域屏蔽会降低分类置信度。这种屏蔽方法不适合发现覆盖整个对象的区域。
为了更准确地判断一个区域是否覆盖了整个对象,我们重点研究了 Tanaka
等人的研究 [19],他们处理带有噪声标签的分类问题,其中分类器使用带噪声的标签图像进行训练。在这里,有噪声的标记图像意味着错误标记的图像(例如,标记为猫的狗图像)。根据他们的说法,当分类器在有噪声的标记图像上进行训练时,训练损失会根据数据是有噪声的还是无噪声的而有所不同。对于无噪声的图像,损失趋于减少,而对于有噪声的标记图像则很难减少。
我们发现这个特征可以用来判断一个区域是否覆盖了整个物体。我们关注的不是区域内部,而是区域外部。我们将区域的外部称为该区域的上下文。以包含猫的图像为例;当一个区域覆盖整个猫时,该区域的上下文中不存在猫。另一方面,当一个区域没有覆盖整个猫时,猫的某些部分在上下文中。如果我们将所有区域的上下文标记为猫,这些都是有噪声的标记图像:当一个区域覆盖整只猫时,该区域的上下文是有噪声,否则是无噪声的。通过使用这些数据训练分类器,分类损失会根据区域是否覆盖整只猫而有所不同。
作为一种基于上下文训练分类器的简单方法,在图像输入到 CNN 之前,区域内部填充了平均像素值。但是,这种方法需要对每个区域进行 CNN 前向传播,并且非常耗时。为了实现低计算成本,我们对 CNN 特征执行屏蔽。对应区域内部的 CNN 特征用零值填充。然后将屏蔽后的特征与全局平均池(GAP)池化并输入到全连接(FC)层。
设具有 CNN 特征掩码输出的分类器的输出为
p
∈
R
C
×
J
p\in R^{C\times J}
p∈RC×J ,其中每个元素
p
c
j
p_{cj}
pcj 表示
r
j
r_j
rj 上下文中类别
c
c
c 的概率。这个分类器使用图像级标签
Y
\textbf{Y}
Y 训练,以最小化标准多类交叉熵损失,
L
context
=
−
1
J
∑
j
=
1
J
∑
c
=
1
C
{
y
c
log
p
c
j
+
(
1
−
y
c
)
log
(
1
−
p
c
j
)
}
L_{\text {context }}=-\frac{1}{J} \sum_{j=1}^{J} \sum_{c=1}^{C}\left\{y_{c} \log p_{c j}+\left(1-y_{c}\right) \log \left(1-p_{c j}\right)\right\}
Lcontext =−J1j=1∑Jc=1∑C{yclogpcj+(1−yc)log(1−pcj)}
如果一个区域覆盖了整个对象,训练后上下文的训练损失很高,因为该区域的上下文是有噪声。换言之,图像中包含类别
c
c
c 的类别概率
p
c
j
p_{cj}
pcj (
y
c
=
1
y_c = 1
yc=1) 较低。另一方面,如果一个区域没有覆盖整个对象,那么无噪声的上下文的分类概率就很高。
当我们进行实例标记时,得分最高的区域是从上下文类概率低的区域中选择的,
j
c
=
arg
max
j
x
c
j
k
−
1
s.t.
p
c
j
<
P
t
j_{c}=\arg \max _{j} x_{c j}^{k-1} \quad \text { s.t. } p_{c j}<P_{t}
jc=argjmaxxcjk−1 s.t. pcj<Pt
其中
P
t
P_t
Pt 是一个阈值。然后按照
O
I
C
R
OICR
OICR 方法,高度重叠的区域根据
y
c
j
k
=
{
1
if
IoU
(
r
j
,
r
j
c
)
>
I
t
0
otherwise
y_{c j}^{k}= \begin{cases}1 & \text { if } \operatorname{IoU}\left(r_{j}, r_{j_{c}}\right)>I_{t} \\ 0 & \text { otherwise }\end{cases}
ycjk={10 if IoU(rj,rjc)>It otherwise 标记为正标签。
即使一个区域覆盖了整个对象,在某些情况下上下文的训练损失也会减少;例如,当上下文与对象密切相关时(例如,飞机和天空),或者当图像中有两个或多个对象时。为了解决这个问题,我们引入了 Xiao
等人的 [25] 显著性图(saliency map)。继 Wei
等人之前的 WSOD 方法 [24],我们将显着性高于
0.06
0.06
0.06 的区域定义为前景,将其他区域定义为背景。当分类器基于
L
context
L_{\text {context }}
Lcontext 训练时,背景区域在输入分类器之前用平均像素值填充。当为
j
c
=
arg
max
j
x
c
j
k
−
1
j_{c}=\arg \max _{j} x_{c j}^{k-1}
jc=argmaxjxcjk−1 计算类概率时, 我们将前景段划分为每个独立的段,选择该段与框之间具有最高
IoU
\operatorname{IoU}
IoU 的前景段,并用平均像素值填充其他区域。因此,关注的框的对象是可见的,而其他对象是隐藏的。
3.2. SRN Labeling
在 CAP 标记中,我们将 r j c r_{j_c} rjc 高度重叠的区域标记为正例。如果一个区域没有被分配任何对象类,即对于所有 c ∈ { 1 , . . . , C } c\in \{1, ..., C\} c∈{1,...,C}, y c j k y^k_{cj} ycjk 为 0 0 0,则该区域被标记为背景, y ( C + 1 ) j k = 1 y^k_{(C+1)j} = 1 y(C+1)jk=1。这个标记有一个问题:当图像具有特定类别的多个对象时,即使一个对象被正确标记为正面,其他对象也被标记为背景。
为了解决这个问题,我们提出了 SRN 标签。这种方法的灵感来自于在远离对象的区域可能存在其他对象的事实。在 SRN 标记中,我们通过修改
w
j
k
=
x
c
j
c
k
−
1
w_{j}^{k}=x_{c j_{c}}^{k-1}
wjk=xcjck−1 中的权重对作为背景训练的区域进行空间限制,如下,
w
j
k
=
{
x
c
j
c
k
−
1
if
IoU
(
r
j
,
r
j
c
)
>
i
t
0
otherwise
w_{j}^{k}= \begin{cases}x_{c j_{c}}^{k-1} & \text { if } \operatorname{IoU} \left(r_{j}, r_{j_{c}}\right)>i_{t} \\ 0 & \text { otherwise }\end{cases}
wjk={xcjck−10 if IoU(rj,rjc)>it otherwise
其中,
i
t
i_t
it是一个低于
I
t
I_t
It的阈值。
在OICR
中,
w
j
k
w_{j}^{k}
wjk 旨在限制初期不可靠标签的贡献,例如在训练开始时生成的标签。SRN 标注是这个的空间版本:我们认为偏远地区的标注是不可靠的,直接将偏远地区的标签赋权为0,以防止偏远的正样本被标记为负。
3.3. Overall architecture
图 2. 方法概述。我们根据最后的定位结果将每个区域标记为正或负,并在这些实例标签上训练下一个实例分类器。为了将覆盖整个对象的区域标记为正,我们发现这些区域侧重于上下文分类损失。此外,我们采用空间限制来避免将其他对象标记为负面。尽管此图像仅显示了第一个实例分类器,但第二个和后续实例分类器的训练方式相同。整体架构如图 2 所示。训练时,我们首先根据
L
context
L_{\text {context }}
Lcontext 中的损失训练上下文分类器并计算上下文类概率
p
c
j
p_{cj}
pcj。然后我们训练 WSDDN 和多实例分类器以最小化以下损失,
L
O
I
C
R
=
L
b
+
∑
k
=
1
K
L
r
k
L_{O I C R}=L_{b}+\sum_{k=1}^{K} L_{r}^{k}
LOICR=Lb+k=1∑KLrk
在测试中,我们忽略上下文分类器和WSDDN,取多个实例分类器输出的平均值,得到最终的检测结果。
延申阅读
[1] OICR
Multiple Instance Detection Network with Online Instance Classifier Refinement
[2] WSDDN
Weakly Supervised Deep Detection Networks_CiLin-Yan的博客-CSDN博客
参考资料
[1] 论文笔记:Object-Aware Instance Labeling forWeakly Supervised Object Detection