论文: Debiased Novel Category Discovering and Localization
Introduction
现有的对象检测方法是在固定类别的封闭数据集上进行训练的和评估的,而在现实场景中,对象检测器需要面对已知对象和潜在未知对象。在训练后,模型就不会识别出训练期间没有看到的任何物体,要么将未知对象视为背景,要么将其错误分类为已知类别。相比之下,人类有感知、发现和识别未知新物体的能力。因此,新类别发现(Novel Category Discovery
,NCD
)问题引起了人们的广泛关注,在检测已知对象的同时还要无监督地发现新类别。
大多数NCD
方法都先对标记数据集进行预训练步骤,然后对未标记数据进行处理。虽然有效,但大多数方法仅利用已知的对象和类别进行预训练和定位,这会引入两种偏差。首先是使用封闭集训练的检测头引入的有偏差的特征表达,其次是仅在标记的封闭集上训练RPN
导致的定位偏差。
为了解决上述问题,论文提出了去偏差NCD
方法来减轻特征表达和对象定位中的偏差:
- 引入半监督对比学习方法使模型能够学习相似实例的相似特征,在将未知类对象与已知类对象区分开。
- 提出双
RPN
策略来同时检测图像中的目标对象。一个RPN
具有类感知能力,旨在获取已知类的准确定位信息。另一个RPN
则与类别无关,旨在定位未标记的目标对象。
论文的贡献可以总结如下:
- 重新审视开放世界中新类别发现的问题,研究现有方法中的偏差问题。
- 使用双对象检测器来获得良好的区域提案,可以有效地找到图像中的所有目标对象并更好地定位。
- 设计一种半监督实例级对比学习方法以获得比以前更好的特征表达,使模型依赖于无标记的图像信息来学习图像特征。
- 通过大量的实验的结果,表明论文的方法优于其他基线方法。
Framework Details
Overview
整体结构如图 2 所示:
- 通过半监督对比学习优化特征提取器,学习更通用的特征表达。
- 通过双
RPN
模块生成不同的框,再使用ROI pooling
来池化特征用作最终提案输入。 - 通过聚类将具有相似特征的实例被分在一起,从而可以发现不同的未知类别。
Debiased Region Mining
在实际任务中,论文观察到RPN
的两种场景:
- 当遇到未注释的图像时,模型倾向于将它们分类为背景而不定位任何对象。
- 当模型识别未知物体时,它会错误地将其分类为高置信度的已知物体。
在Faster R-CNN
中,目标定位器为上游任务的分类头,提取模型感兴趣的已知类。这导致偏向于识别已知目标,严重影响模型的通用性。
在图 3 中,展示了三种不同的RPN
的定位表现:
- 第一种为类感知
RPN
:此类提案对VOC
中的已知对象表现出更高的置信度,从而提高了提案质量。然而,置信度一般的提案往往是聚拢的,通常只包含目标对象的一部分。因此,检测到的对象的泛化能力有限。 - 第二种为类不可知
RPN
:通过删除分类头并仅在网络学习objectness
来生成提案。尽管与基线相比,提案泛化有所增强,但定位VOC
类别的准确性仍未达到最佳水平,并且许多提案仍然表现出聚拢现象。 - 第三种为论文提出的合并方法:通过从两个框中选择可靠的框,对每个框的置信度进行缩放后通过
NMS
统一提案。该方法显着提高了提案的质量,能够在不影响已知VOC
类别准确性的情况下提取更多目标对象。此外,它有效地解决了提案聚拢问题。
论文认为,现实场景中的NCDL
问题应该与开放世界中的对象检测场景更加一致,对象提取器不应受到分类头的限制。因此,论文在Faster-RCNN
中额外引入类无关的RPN
,可以生成更通用的对象分数并检索更多对象。该RPN
将与类相关的损失替换为与类无关的损失,仅通过以下方式估计提案的objectness
:
- 在
RPN
中使用centerness
回归而不是分类损失。 - 在
ROI
头中使用IoU
回归而不是的分类损失。
对不同RPN
获得的两组框进行可靠性分析,发现两组框在置信区间上的分布不同,表明各有不同优缺点。因此,论文提出了Debiased Region Mining
(DRM
)的方法,通过类感知RPN
和类无关RPN
获得两组不同的框。类感知RPN
获得的框在已知类上具有较高的准确率,但泛化性较差,在未知类上表现不佳。另一方面,由类无关的RPN
获得的框在已知类上的表现可能不如前者,但对未知类有更强的泛化能力。将这两组框结合起来,就能得到一套结合了两者优点的新框合集。
假设两组框及其置信度分数表示为 \(\lambda_{1}\) 和 $\lambda_{2} $,分别服从两个不同的分布 \(\Phi_{1}\) 和 \(\Phi_{2}\),需要将这两个分布映射到统一的 \({\Phi}\) 以去除不同框生成方法之间的差距。为了保留置信度较高的框并过滤掉置信度非常低的框,设置阈值 \(\alpha\_i,\beta\_i(i=1,2)\) 来过滤置信度。过滤后合并两组框,使用NMS
合并冗余框以获得融合后的结果。
Semi-supervised Contrastive Finetuning
在得到框后,采用实例级半监督对比学习方法来提取更通用和更具表现力的特征。
首先,根据GT
框将VOC
数据集中的图像裁剪成图像块,构成标记集 \(B_{\mathcal{L}}\)。随后,在__COCO
__验证集上生成提案并裁剪出图像块,构成未标记集 \(B_{\mathcal{U}}\)。之后,通过随机增强给每个图像块 \(\mathbf{x}\) 生成两个不同的视图 \(\mathbf{x}^{\prime}\),无监督对比损失计算为:
其中 \(\mathbf{z},\mathbf{z}^{\prime}\) 是对应的特征,\(\tau\) 是温度超参数。
对于有标签的图像块,可以利用标签来形成有监督对比损失:
其中 \(\mathcal{N}(i)\) 表示与 \(\mathbf{x}\_{i}\) 具有相同标签的索引。
最后,总损失构造如下:
该损失将用于监督特征提取器的训练。
Clustering
在完成对未知类别对象的对比学习后,模型对获得的信息进行聚类分析,将具有相似特征的未知图像聚合成簇。
使用类似于K-means
的方法进行聚类,进行了两个修改:
- 采用
over-clustering
策略,通过强制生成另一个更细粒度的未标记数据分区并增加K
(估计的聚类数)来提高聚类纯度和特征质量。over-clustering
有利于减少监督的介入,允许神经网络决定如何划分数据。在存在噪声数据或中间类被随机分配给相邻类别时,这种切分是有效的。 - 在新类别发现任务中使用
K-means
非常耗时,采用Mini-batch K-means
(大规模数据中K-means
的优化算法)代替。在训练过程中随机采样数据子集来减少训练计算耗时,同时优化目标函数。
聚类算法的主要步骤如下:
- 提取训练数据的子集,并使用
K-means
构建K
个聚类中心。 - 从训练集中提取样本数据并添加到模型中,将其分配给最近的聚类中心。
- 更新每个簇的簇中心。
- 重复步骤2和3,直到聚类中心稳定或达到最大迭代次数。