文章目录
- 一、背景
- 二、方法
- 2.1 UniDetector 框架结构
- 2.2 Heterogeneous Label Space Training
- 2.3 open-world inference
- 三、效果
- 3.1 数据集
- 3.2 Object Detection in the Open World
- 3.3 Object Detection in the Closed World
- 3.4 Object Detection in the Wild
- 3.5 Comparison with Open-vocabulary Methods
- 3.6 消融实验
论文:Detecting Everything in the Open World: Towards Universal Object Detection
代码:https://github.com/zhenyuw16/UniDetector
出处:CVPR2023
贡献:
- 提出了一个任意场景任意类别的目标检测器 UniDetector,使用来自不同源和多样标注空间的数据来训练,将 image 和 text space 进行对齐,也是目前首个实现通用目标检测的结构,即使用了 500 类别训练,实现了 7000 个类别的识别
- 能够很方便的泛化到开放世界和新类别上,提出了解耦 proposal 生成和 RoI 分类的过程,能更好的实现与类别无关的特性
- 提出了解耦的训练方式和概率矫正,能够平衡预测类别的分布,且能促进其扩展到新类别上
效果:
- 能检测大概 7k 类别,是目前为例最大的可衡量类别数量,而训练类别只有大概 500 类
- 有很强的 zero-shot 能力,超过当前的最强结果 4%
- 在 COCO 上实现 49.3%AP,是目前使用 CNN 模型最高的
- 在 13 个公开检测数据集上达到了 SOTA 的效果
一、背景
Universal object detection(通用目标检测器)的目标就是检测任意场景中的所有目标,需要有如下两个特点:
- 要使用多种数据源和不同的标注标签空间来进行训练
- 要能够泛化到开放世界,即无需训练也可以识别新类别
但众所周知,只使用视觉信息无法实现这样的效果
本文提出了 UniDetector,一个通用的目标检测框架,来克服上述两个问题
- 首先,从语言空间来入手,作者发现多阶段训练的方式能够促进特征共享,且避免特征冲突
- 接着,为了探索 region proposal 阶段泛化到新类上的能力,作者将 proposal generation 阶段和 RoI classification 阶段进行了解耦
- 然后,基于解耦的方式,作者进一步提出了 class-agnostic localization network(CLN)来生成更有泛化性的 region proposals
- 最后,作者还提出了 probability calibration 来消除预测结果对新类别和基础类别的偏见
二、方法
- 给定输入图像 I,目标检测的目标是输出其类别和位置,传统目标检测只能适应于 closed world,训练和测试的类别是一致的,都是预定义好的类别空间
- 本文中,作者提出的通用目标检测,聚焦于检测通用的物体,训练时,使用从多种源头拿来的数据,其标注空间都是不同的,推理时,预测使用者给定的类别空间中的类别
- 一般来说,传统的目标检测难以直接适用于通用目标检测任务,主要因为推理的时候有新的类别,是训练的时候没见过的类别,模型无法识别
- 所以,通用目标检测的关键就在于如何使用多个类别空间的数据,和如何扩展到新类别上
2.1 UniDetector 框架结构
UniDetector 框架结构如图 2 所示:
- 第一步:多尺度 image-text aligned pre-training:传统全监督的学习方式是基于人工标注的,这就会限制通用性。而要扩展泛化性,就需要借用语言特征的泛化性,所以,作者引入了语言编码来辅助检测。和之前的很多工作一样,作者使用预训练的 image-text model 来实现。而且,作者是使用了 RegionCLIP 的预训练参数来用于实验。
- 第二步:多样性 label space training:传统的目标检测的标签是收缩在一个固定的范围内的,本文作者从不同的数据源中收集了多样的标注空间来训练检测器,标注的多样性和图像的多样性决定了检测器的通用性。注意,这里作者也使用的是解耦的训练方法,来分别训练 RPN 和 RoI(见2.2)
- 第三步:Open-world inference:完成训练后,就可以在开放时间直接推理了,且不需要 fine-tuning。因为新类别没有出现在训练中,检测器容易产生低置信的预测,所以作者提出了 probability calibration 来实现在推理过程中新类和基础类的平衡
2.2 Heterogeneous Label Space Training
使用多样的标注空间的标注有助于提升模型的信息多样性
作者在图 3 中展示了 3 种可能的模型结构:
- 第一种:使用隔离的标注空间来训练,如图 3a 所示,作者在每个数据集中训练模型,在推理时,将每个独立的推理结果结合起来来得到最终的检测框
- 第二种:将所有标签放到同一个标签空间中训练,如图 3b 所示,由于所有的图像都被当做来源于同一个标签空间,故就可以使用 Mosaic 或 Mixup 等数据增强的方法来提升信息丰富程度
- 第三种:所有数据源都共享特征抽取器,然后又有各自的分类层,在推理时,可以直接使用 test label 的 class embedding 来避免标签冲突
数据采样和 loss 函数:
- 当数据量变大时,不可避免的问题就是数据长尾分布,class-aware sampler (CAS) [38]、 repeat factor sampler (RFS) [17] 在 closed world 中都是较为好用的方法,但是在 open world 中不太有用,主要原因就是有新类。而且,在有了 language embedding 辅助的情况下,长尾问题可以忽略不计,使用随机采样即可
- loss 函数:sigmoid-based loss 更适合,因为基础类别的分类和新类别的分类在 sigmoid 函数的作用下不会互相影响。且为了避免类别增加导致 sigmoid-based classification loss 产生极值,作者会随机采样特定数量的类别作为负的
解耦 proposal generation 和 RoI classification:
双阶段的目标检测器包括:
- visual backbone
- RPN:RPN 是与类别无关的,所以可以扩展到新类上,本文中使用 Image-Net 预训练参数来初始化,并且是以 class-agnostic 的方式来训练的,训练完成后,其能够生成一系列的 region proposals
- RoI classification:与类别有关的,所以不能很好的作用于新类。所以在本文 RPN 生成 RoI 后,使用 Fast RCNN 的方式来训练该分类器,这里使用预训练的 image-text 参数来初始化。
由于 RPN 和 RoI 分类器的不同性质,导致它们不能联合训练,因为灵敏的分类能力会影响 RPN 对新类别的提取,所以,作者将这两个阶段进行了解耦,避免其互相影响。
Class-agnostic 定位网络:与类别无关的定位网络 CLN
为了处理前面生成的 proposals,作者提出了一个 classagnostic localization network (CLN),如图 4 所示,CLN 包含 RPN 和 RoI head,来为通用目标检测器生成 proposals
对于第 i 个 proposal,从 RPN 得到的定位置信度为 s i r 1 s_i^{r_1} sir1,从 RoI 得到的定位置信度为 s i r 2 s_i^{r_2} sir2,分类得分为 s i c s_i^c sic
则 CLN 的最终得分为 :
2.3 open-world inference
由于基础类别会在训练时候出现,所以难以避免训练得到的 detector 会更偏向于基础类别,基础类别的检测结果和得分都比新类别更高,会主导推理过程
所以,作者提出了一种后处理的方法:probability calibration(校准)
-
校准的目标是降低基础类别的置信得分,提高新类别的置信得分,用于平衡最终的预测结果
-
校准方式如下:
-
主要思想是使用先验概率 π j \pi_j πj 来花粉类别 j j j 的初始概率
-
π j \pi_j πj 记录了网络对类别 j j j 的倾向程度,大的值表示模型更倾向于该类,在校准之后,模型原本倾向的类别的概率就会减小
-
γ \gamma γ 是预定义的超参数
-
π j \pi_j πj 如何获得:可以首先在 test 数据集上进行推理,然后使用结果中出现的类别来获得 π j \pi_j πj ,如果测试图像很少,难以获得准确了概率,则可以使用训练图像来计算 π j \pi_j πj
-
p i j p_{ij} pij :反映了第 i 个 region proposal 的 class-specific prediction。会将 p i j p_{ij} pij 乘到 objectness score η i \eta_i ηi 上来作为最终的检测得分
-
最终的检测得分为
三、效果
3.1 数据集
作者使用了 3 个不同的数据来模拟不同的数据源和标注空间:
- COCO:包含 80 个类别,是密集场景的高质量人工标注结果
- Object365:包含 365 个类别
- OpenImages:包含 500 个类别,很多标注都是稀疏的且不准确的
- 作者从这 3 个数据集中分别随机采样了 35k、60k、78k 的图像来训练
测试数据:
- LVIS
- ImageNetBoxes:包含 3000 个类别,作者随机采样了 20000 图像作为测试,
- VisualGenoe:包含 7605 个类别,但由于很多标注都是来自于机器,标注结果不太准确且有很多噪声,作者选择了 5000 个没有出现在训练数据中的图像来测试
测评:
- 基本上都是使用 AP 来测评
- LVIS:使用 APr、APc、APf 分别测评 rare、common、frequent 类别
- ImageNetBoxes:使用 AP、AP50、top-1 localization accuracy 来测评
- VisualGenome:考虑到噪声和不准确的标注,使用 Average Recall(AR) 来测评
细节:
- 基于 mmdetection 实现
- 框架:Faster RCNN 、ResNet50-C4、使用 RegionCLIP 参数来初始化
- 训练 12 个 epochs
3.2 Object Detection in the Open World
3.3 Object Detection in the Closed World
3.4 Object Detection in the Wild
3.5 Comparison with Open-vocabulary Methods
3.6 消融实验
Decoupling proposal generation and RoI classification:
Probability calibration: