目标检测技术虽然已经发展得较为成熟,但是如果要说让计算机能够像人眼一样进行识别,有个特征一直没有被解锁——识别现实世界中的所有物体,并且能够逐渐学习认知新的未知物体。
来自澳大利亚国立大学和瑞典林雪平⼤大学的学者发现并解决了这个问题。他们提出了一种新颖的方案:Open World Object Detector,简称ORE,即开放世界的目标检测。目前,作者已经将这项技术进行了开源。
ORE主要包含两个任务:
- Open Set Learning,即在没有明确监督的情况下,将尚未引入的目标识别为“未知”;
- Incremental Learning,即让网络进行N+1式增量学习,接收相应标签以学习其识别到的未知类别,同时不会忘记之前已经学到的类别。
检测效果如下所示:
上图(左)是ORE在学习后产生的结果。由于尚未引入“苹果“、”橘子“这些种类,ORE将其识别并正确标记为“未知“。而上图(右)是学习了新的种类的ORE,它成功的识别了新的目标种类,并将仍未引入的种类标记为“未知”。
在上图中,ORE再次展示了它作为开放世界检测器的真正特征: ORE在经过训练后成功识别左图的未知目标,即在右图中识别了牙刷和书籍等新引入的类别,同时没有忘记如何识别已知的目标。
下面,我们将更详细的介绍这篇论文。
提出背景
深度学习加快了目标检测的研究进展,但目前现有方法都在一个强假设下进行:所有要被检测的种类都需要在训练阶段提供。那么当我们放宽这一假设时,就会出现两个具有挑战性的问题:(1)测试图像可能包含未知类的目标,这些未知目标也需要被归类;(2)当被识别为未知类别的标签已经可用时,模型需要进一步学习新的类别。而与开放世界存在的无数类别相比,在Pascal VOC和MS-COCO等标准视觉数据集中标注的类数非常少。因此,将未知目标识别为未知类别需要强大的概括性。从下图可以看出,开放世界的目标检测尚未得到解决。
论文方法
开放世界的目标检测
首先对“开放世界的目标检测”进行定义。在任何时间 ttt ,我们都将已知的目标类别集合视为 Kt={1,2,..,C}⊂N+\mathcal{K}^{t}=\{1,2, . ., \mathrm{C}\} \subset \mathbb{N}^{+}Kt={1,2,..,C}⊂N+ ,其中 N+\mathbb{N}^{+}N+ 表示正整数集合。
为了更真实的模拟现实世界,作者假设存在一组未知类别 U={C+1,…}\mathcal{U}=\{\mathbf{C}+1, \ldots\}U={C+1,…} 。
假定已知目标类别 Kt\mathcal{K}_{t}Kt 在数据集 Dt={Xt,Yt}\mathcal{D}^{t}=\left\{\mathbf{X}^{t}, \mathbf{Y}^{t}\right\}Dt={Xt,Yt} 中被标记,其中 X\mathbf{X}X 和 Y\mathbf{Y}Y 分别表示输入图像和标签。
输入图像集包括 MMM 个训练图像 Xt={I1,…,IM}\mathbf{X}^{t}=\left\{\boldsymbol{I}_{1}, \ldots, \boldsymbol{I}_{M}\right\}Xt={I1,…,IM} ,每个图像的相关对象标签形成标签集 Yt={Y1,…,YM}\mathbf{Y}^{t}=\left\{\boldsymbol{Y}_{1}, \ldots, \boldsymbol{Y}_{M}\right\}Yt={Y1,…,YM} 。
每个 Yi={y1,y2,..,yK}\boldsymbol{Y}_{i}=\left\{\boldsymbol{y}_{1}, \boldsymbol{y}_{2}, . ., \boldsymbol{y}_{K}\right\}Yi={y1,y2,..,yK} 编码一组带有其类别标签和位置的 KKK 个对象实例,即 yk=[lk,xk,yk,wk,hk]\boldsymbol{y}_{k}=\left[l_{k}, x_{k}, y_{k}, w_{k}, h_{k}\right]yk=[lk,xk,yk,wk,hk], lk∈Ktl_{k} \in \mathcal{K}^{t}lk∈Kt ,其中 xk,yk,wk,hkx_{k}, y_{k}, w_{k}, h_{k}xk,yk,wk,hk 和 xk,yk,wk,hkx_k , y_k , w_k , h_kxk,yk,wk,hk 分别表示边界框的中心坐标,宽度和高度。
开放世界的目标检测设置考虑了目标检测模型 MC\mathcal{M}_{\mathrm{C}}MC ,该模型经过训练可以检测所有先前遇到的 C\mathrm{C}C 对象类。重要的是,模型 MC\mathcal{M}_{\mathrm{C}}MC 能识别属于任意已知 CCC 类的测试实例,并能通过将其分类为未知类来识别新的或不可见的类别实例。未知的实例集 Ut\mathbf{U}^{t}Ut 将反馈给可以定义 nnn 个新类别的使用者,并为此提供训练实例。因而逐渐添加 nnn 个新类别并进行迭代,以生成新模型 MC+n\mathcal{M}_{\mathrm{C}+n}MC+n 。
ORE:Open World Object Detecor
成功的开放世界目标检测方法应能够在没有明确监督的情况下进行未知实例的识别,并能将识别出的新实例标签提供给模型进行知识升级,同时不会忘记之前的实例,且无需从头开始重新训练。本文提出的ORE便能一并应对这两个挑战。
对于每个已知类 i∈Kti \in \mathcal{K}^{t}i∈Kt ,保留原型向量 pi\boldsymbol{p}_{i}pi. 。令 fc∈Rd\boldsymbol{f}_{c} \in \mathbb{R}^{d}fc∈Rd 是由目标检测器中间层对 ccc 类对象生成的特征向量。我们将对比损失定义如下:
Lcont (fc)=∑i=0Cℓ(fc,pi), where
\mathcal{L}_{\text {cont }}\left(\boldsymbol{f}_{c}\right)=\sum_{i=0}^{\mathrm{C}} \ell\left(\boldsymbol{f}_{c}, \boldsymbol{p}_{i}\right), \text { where }
Lcont (fc)=i=0∑Cℓ(fc,pi), where
ℓ(fc,pi)={D(fc,pi)i=cmax{0,Δ−D(fc,pi)} otherwise
\ell\left(\boldsymbol{f}_{c}, \boldsymbol{p}_{i}\right)=\left\{\begin{array}{ll}
\mathcal{D}\left(\boldsymbol{f}_{c}, \boldsymbol{p}_{i}\right) & i=c \\
\max \left\{0, \Delta-\mathcal{D}\left(\boldsymbol{f}_{c}, \boldsymbol{p}_{i}\right)\right\} & \text { otherwise }
\end{array}\right.
ℓ(fc,pi)={D(fc,pi)max{0,Δ−D(fc,pi)}i=c otherwise
在用上述等式计算聚类损失时,我们将输入特征向量 fc\boldsymbol{f}_{c}fc 与原型向量进行对比。这需要用未知的地面真实等级标记未知的对象实例,而在已标注的大规模数据集中重新标注每个图像的所有实例显然是不切实际的。作为替代,作者建议自动将图像中的一些对象标记为潜在的未知对象。为此,作者基于RPN(区域候选网络)与类无关的事实,将那些具有较高客观性评分但不与ground-truth对象重叠的propasal标记为潜在的未知对象。
给定潜在空间 FFF 中的特征 (f∈F)(f \in F)(f∈F) 及其对应的标签 l∈L,l \in L,l∈L, ,我们试图学习一个能量函数 E(F,L)E(F, L)E(F,L) 。使用亥姆霍兹自由能公式将 LLL 中所有值的能量组合在一起:
E(f)=−Tlog∫l′exp(−E(f,l′)T)
E(\boldsymbol{f})=-T \log \int_{l^{\prime}} \exp \left(-\frac{E\left(\boldsymbol{f}, l^{\prime}\right)}{T}\right)
E(f)=−Tlog∫l′exp(−TE(f,l′))
其中T是温度参数。 在softmax层之后的输出与类特定能量值的吉布斯分布之间存在简单关联:
p(l∣f)=exp(gl(f)T)∑i=1Cexp(gi(f)T)=exp(−E(f,l)T)exp(−E(f)T) p(l \mid \boldsymbol{f})=\frac{\exp \left(\frac{g_{l}(\boldsymbol{f})}{T}\right)}{\sum_{i=1}^{\mathrm{C}} \exp \left(\frac{g_{i}(\boldsymbol{f})}{T}\right)}=\frac{\exp \left(-\frac{E(\boldsymbol{f}, l)}{T}\right)}{\exp \left(-\frac{E(\boldsymbol{f})}{T}\right)} p(l∣f)=∑i=1Cexp(Tgi(f))exp(Tgl(f))=exp(−TE(f))exp(−TE(f,l))
利用这种对应关系,将分类模型的自由能定义如下:
E(f;g)=−Tlog∑i=1Cexp(gi(f)T) E(\boldsymbol{f} ; g)=-T \log \sum_{i=1}^{\mathrm{C}} \exp \left(\frac{g_{i}(\boldsymbol{f})}{T}\right) E(f;g)=−Tlogi=1∑Cexp(Tgi(f))
实验与结果
作者提出了一项全面的评估标准来探讨开放世界的目标检测器的性能,包含对未知对象的识别,检测已知类别,以及对未知物提供以标签时逐渐学习新类别。下表显示了开放世界评估标准中的任务组成:
下表展示了ORE在开放世界目标检测中的表现。 WI和A-OSE量化评估了ORE如何处理未知类(灰色背景),而mAP衡量了它如何很好地检测已知类(白色背景)。可以看到在所有指标上,ORE都始终优于基于Faster R-CNN的baseline。
同时,作者在三种不同的设置下将ORE与最新的增量式目标检测器进行了比较。 如下表所示,ORE在所有设置中都表现十分出色。
论文传递门
论文链接:
https://arxiv.org/abs/2103.02603
代码:
https://github.com/JosephKJ/OWOD