原文地址:https://arxiv.org/abs/2001.05086
文章目录
1 Backgroud and Motivation
如上图d所示,半监督的目标检测是一部分数据具有和全监督一样的标注信息(包括目标框和对应的分类),剩下部分的数据完全没有标注信息。而弱监督则是标注信息是粗粒度的,信息不够全面。在本文中用公式表达数据:表示有完整信息的那部分,无标签信息的数据。
半监督方法要解决的问题就是缓解对数据标注的依赖,这是半监督领域老生常谈的动机了。因为对图像的标注耗时耗力,如果能尽量利用无标注的图像来提升性能当然是很香的。
关于半监督的目标检测的工作较少,一般多是去半监督分类任务。可能也是因为目标检测这一任务较难,同时很多优秀的半监督分类算法太依赖数据增强方法,而很多分类任务使用的数据增强算法不适用在目标检测任务上。
2 Method
2.1 overview
文章的总体框架如上图所示,可以看出这一个两阶段的半监督目标检测框架,蓝线是faster rcnn的基本框架,黄线则是这篇文章的贡献。方法的主要内容分为两个部分,一个是自监督的部分,一个是一致性正则的部分。
2.2 self-supervised
这部分对应上图中的。这部分的动机(1) 一个具有上下文信息的特征可以提升目标检测能力 (2)一个好的特征应该希望是对噪声具有鲁棒性。自监督的一个主要任务就是去学的一个“好”的特征,所以作者这里通过定义不同的借口任务来让模型学会生成一个具有上下文信息,对噪声鲁棒的特征。
上式的借口任务是希望SSPL Network去预测出proposal的原图的位置。实际上就是预测RPN网络的输出。通过这种方式迫使网络去感知全局信息,达到具有上下文信息的目的。在输入R-CNN之前会对其进行K次扰动,总共K+1个特征图,会把每一个特征图作为输入去预测proposal的位置。
上式的借口任务是instance discrimination,这也是在自监督领域使用较广泛的一种。 首先会将每个特征图嵌入为向量,然后计算当前新生成的特征图对应的向量与所有的proposal对应的向量之间的点积,归一化,求和。直觉上就是表示特征图之间的关系,希望来自同一个proposal的值大,来自不同proposal的值小,来达到对噪声不敏感的目的。
将这两部分合起来就是SSPL Network的损失函数,对应整体框架中的如下式所示。
2.3 consistency
一致性应该算是半监督算法的灵魂了。与分类任务类似的是,目标检测也需要分类,这部分与半监督的分类任务是类似的,如下式所示。
与分类任务不同的是目标检测还需要对边框预测。与分类任务类似,希望有噪声的特征图预测出的边框与原特征图预测的边框保持一致,使用smooth l1损失来回归。如下式所示。将这两部分合起来对应整体框架的.
3 Experiments
实验使用的是COCO2017的数据,其中train2017(118K+)作为有标签的训练集,unlabeled2017(123K+)作为无标签的训练集。val2017作为验证集,test-dev2017为测试集。
可以看到作者的方法与Data Distillation效果相当。同时使用能够相互补充。
4 Conclusions
本文主要研究基于两阶段目标检测的半监督目标检测。提出了一种proposal learning的方法,该方法由一个自监督模块和一个基于一致性模块组成,用于从有标签和无标签的数据中学习proposal特征和预测。自监督模块通过位置损失和对比损失分别学习上下文感知和噪声鲁棒的特征。基于一致性的模块通过两个bounding box的一致性损失来学习噪声鲁棒性proposal特征和预测。