ICCV何恺明团队又一神作:Transformer仍有继续改善的空间
一个简单、渐进、但必须知道的基线:用于Vision Transformer的自监督学习。尽管标准卷积网络的训练方法已经非常成熟且鲁棒,然而ViT的训练方案仍有待于构建,特别是自监督场景下的训练极具挑战。
1
背景
什么是开放世界中的目标检测呢?
A model is tasked to:
在没有明确的监督下,能够将没有见过的目标识别为“未知”类;
对于这些认定为“未知”的类,当逐步获得对应的标签之后,能够渐进地学习它们,且不遗忘以前学过的那些类别。
这个与以前提出的Open Set和Open World image classification的最大不同在于:在目标检测器的训练过程中,将那些未知的目标当做背景。
深度学习加快了目标检测的研究进展,但目前现有方法都在一个强假设下进行:所有要被检测的种类都需要在训练阶段提供。当我们放宽这一假设,就会出现两个具有挑战性的问题:
测试图像可能包含未知类的目标,这些未知目标也需要被归类;
当被识别为未知类别的标签已经可用时,模型需要进一步学习新的类别。
2
检测框架
论文:https://arxiv.org/pdf/2103.02603.pdf
代码:https://github.com/JosephKJ/OWOD
第一行:在每个增量学习步骤中,模型识别未知对象(用“?”表示),这些对象被逐步标记(蓝色圆圈)并添加到现有知识库(绿色圆圈)中。
第二行:开放世界目标检测模型使用基于能量的分类头和未知感知RPN识别潜在的未知对象。此外,在特征空间中执行对比学习来学习判别集群,并且可以以连续的方式灵活地添加新类而不会忘记以前的类。
最后在常规损失函数上再叠加一个对比聚类损失来达到强制降低类内差,增大类间差的效果。原文中该部分的流程图如下,其中是不叠加对比聚类损失的轮数,用以初始化已知类别的特征向量,表示,在迭代轮数大于后,每轮都计算对比聚类的损失,并每轮进行一次特征向量更新(有点像混合高斯背景建模了):
如上所示,已知和未知数据点的能量值表现出明显的分离。研究者在每个样本上拟合Weibull分布,并使用这些分布来识别未知的已知和未知样本。
3
检测效果分析
仅在任务 1 上训练的ORE在上图(a)中成功地将风筝定位为未知对象,而在任务3中了解风筝后,它逐渐学习检测上图(b)中的风筝和飞机。
在任务1上训练后来自ORE的预测。“大象”、“苹果”、“香蕉”、“斑马”和“长颈鹿”尚未引入模型,因此成功归类为“未知”。该方法将其中一只“长颈鹿”错误分类为“马”,显示了ORE的局限性。
有关对比聚类的更多详细信息
使用对比聚类来确保潜在空间分离的动机有两个:1)它使模型能够将未知实例与已知实例分开,从而促进未知识别;2)它确保每个类的实例与其他类很好地分离,缓解遗忘问题。
对比损失被添加到Faster R-CNN 损失中,整个网络被端到端的训练。因此,在 Faster R-CNN管道中RoI Head中的残差块之前和包括网络的所有部分都将使用来自对比聚类损失的梯度进行更新。
在学习任务1后,桌子顶部笔记本电脑旁边的几个项目被识别为未知。笔记本电脑、书和鼠标作为任务4的一部分被引入。external-storage和walkman(两者都没有介绍过)最初被识别为未知,但学习任务4后没有被检测到,是ORE的失败案例之一。
最终在任务2中学习到被识别为未知的手提箱,以及对椅子的误报检测。
上图(a)是ORE学习Task 2后产生的结果。由于没有引入Task 3类,如apple和Orange,ORE识别出来并正确标注为unknown。在学习Task 3之后,这些实例在上图(b)中被正确标记。一个未识别的类实例仍然存在,ORE成功地将其检测为未知。
下期我们来好好说说何凯明他们团队又做出来重大贡献的思路,有兴趣的你请持续关注,谢谢!