前言
通常来说,深度学习在一些计算机视觉任务上的应用,比如分类、定位和检测,需要大量精确标注的数据,而模型在这些数据集上进行预训练之后,并不能直接应用到其它的任务中。为了减少这种限制,人们开始利用弱监督方法来进行学习,弱监督的训练数据一般只有image-level标签,没有大型数据集中的location-level(bbox和关键点)和pixel-level(每个像素都有一个类标签,用于语义分割)标签,因此很容易获得。在弱监督任务中,弱监督目标定位(WSOL)是最实际的任务,因为它只需要在给定类标签的情况下对目标定位。在WSOD中,假设图像中只有一个目标。
但是,作者通过实验发现,WSOL中的定位部分应该是类不可知的,即与类标签无关。基于此,本文将WSOL分为两个独立的子任务:类不可知目标定位与目标分类,如下图所示,称为伪监督目标定位(Pseudo Supervised Object Localization,PSOL):
在先前的WSOL方法中,需要最终生成的特征图来产生bbox;而在PSOL方法中,首先通过DDT生成伪监督gt bbox,也就是不准确的bbox,然后在这些bbox上进行回归。PSOL去掉了WSOL中仅能有一个全连接层作为分类权重的限制,并且解决了定位与分类耦合导致的取舍问题。
本文的贡献如下:
- 证明WSOD应该被分为两部分:类不可知目标定位与目标分类,提出PSOL以解决WSOL中存在的问题;
- 虽然生成的bbox有偏差,但作者认为应该直接对它们进行优化,而不需要类标签;
- 不需要fine-tuning,PSOL方法也能在不同的数据集上拥有良好的定位迁移能力。
WSOL的缺点
目前的WSOL方法是在给定类标签的情况下生成bbox,它有以下几个缺点:
- 学习目标不明确,导致定位的性能下降。HaS和ADL表明当仅有一个CNN模型时,定位和分类不能同时进行。定位需要目标的全局特征,它是将整个目标的位置表示出来,而分类只需要目标最具有判别性的部分,也即只需要目标的局部特征。
- CAM需要存储一个三维特征图用于计算类别的heatmap,然后来通过阈值进行过滤,而这个阈值非常难确定。
受到selective search和Faster R-CNN中生成ROI这个类不可知过程的启发,本文将WSOL分为两个独立的部分,并基于此提出PSOL,PSOL直接在生成的伪gt bbox上优化定位模型,因此解决了WSOL中的缺点。
PSOL方法实现
PSOL的通用框架如以下算法所示:
1. 伪bbox的生成
WSOL和PSOL最大的不同在于为训练图像生成伪bbox。在考虑伪bbox的生成时,我们自然而然的会想到检测,因为检测模型可以直接生成bbox和类标签。但是,最大的检测数据集中只有80个类,因此不能在一些更大的数据集上(如ImageNet-1k)提供通用目标定位;而且目前的一些检测器,比如Faster R-CNN需要大量的计算资源和较大的输入图像大小,这使得检测模型不能在大规模数据集上被用于bbox的生成。
既然检测模型不行,那么我们可以试着用一下别的定位方法来为训练图像生成bbox,比如弱监督和协同训练方法:
WSOL方法
目前的WSOL方法生成bbox的流程如下:
- 首先图像 I I I被送入网络 F F F中,生成最终的特征图 G G G: G ∈ R h × w × d = F ( I ) G \in \Bbb R^{h \times w \times d}=F(I) G∈Rh×w×d=F(I), G G G通常是最后一个卷积层生成的特征图;
- 然后 G G G在经过全局池化和最终的全连接层之后,得到标签 L p r e d L_{pred} Lpred,根据 L p r e d L_{pred} Lpred或gt标签 L g t L_{gt} Lgt,得到特定类别在最终全连接层中的权重 W ∈ R