C-MIL基于弱监督的连续多示例目标检测

C-MIL:基于弱监督的连续多示例目标检测

原文链接 github地址

摘要

​ 弱监督目标检测通常需要同时学习目标检测(有没有)和目标定位(在哪里),传统的方法是采用多实例学习的方法,这个方法的损失函数是非凸的,通常会陷入局部最优,从而导致训练时会丢失部分目标范围。本文提出的C-MIL(基于弱监督的连续多示例目标检测)旨在系统性地缓解非凸问题。我们把实例分割为空间相关和类别相关的部分,然后用定义于子空间的一系列平滑的损失函数去逼近原始的损失函数。优化平滑的损失函数避免了训练过程过早地进入局部最优,同时促进包含全部目标范围的稳定语义极值区的发现。

引言

​ 弱监督目标检测(WSOD)只需要在一张图片中标明存不存在该类别的目标,省略了需要大量人力的目标框的工作,因而吸引了大量的注意。但是目前WSOD与全监督在表现方面有大约20%的性能差距。

​ 对比深度神经网络,MIL是目前WOSD的主流算法。但是模型更倾向于**对象的部分范围而不是全部范围,尤其在训练早期。这种现象是由损失函数的非凸性引起的。优化类似的函数会大致局部最优,即,选择图像分类最具识别力的部分而忽略掉目标的整体性。研究人员通过使用空间正则化、上下文关联以及逐步细化来缓解这个问题。但是从优化的角度讲,局部最小的问题仍然没有得到解决。

​ 在本文我们提出一种连续理论,通过将一个损失函数转化为多个更简单的子问题、多个实例学习问题来使它变得平滑。然后创造了一个连续多实例学习过程,希望通过系统化的方法去缓解非凸问题。C-MIL将图片看做一个集合,由目标可能存在理论划分出来的图片区域作为实例。在训练时,不像传统的MIL算法那样最求最具识别力的实例,C-MIL学习的是实例的子集,在集合里面实例之间是空间相关(实例之间有重叠部分)和类别相关的(有相似的类别得分)。实例子集和合适的连续参数能够选择包含目标图片部分去优化网络,而稳定语义极值区域则指明了整个目标区域。

C-MIL基于弱监督的连续多示例目标检测

​ 图(a)表示传统的MIL算法,由于损失函数的非凸性,可以看出比较容易陷进局部最优,从而不能完整识别目标。通过引入连续优化理论,用一系列平滑的损失函数去逼近原损失函数,C-MIL缓解了非凸问题,并且定位了完整的目标区域。

​ 通过连续的参数,实例子集被分区。当参数最小的时候,整张图片就是一个子集,包含所有的实例。这时C-MIL的损失函数等同于图像分类的损失函数,因而是凸性的。当参数最大的时候,C-MIL退化为普通的MIL。在训练的时候,连续的参数会将子集从最大(包含所有实例)逐渐减少到最小(只包含一个实例)。通过这种方法,我们构造了一系列更容易优化的函数去近似原始的损失函数。通过端到端的训练,每张图片最具识别力的子集被发现,不包含有识别力信息的部分将被抑制。

主要贡献:

(1)一种通过一系列平滑的损失函数来近似原始损失函数,从而达到缓解多实例学习中的非凸问题的新颖的C-MIL操作。

(2)一种实例子集分割的参数策略,集合深度神经网络来**完整目标区域。

(3)新的基于通常意义的目标检测基准最好的弱监督目标检测定位表现。

相关工作

​ 在WOSD的理论之中,我们只关注那些基于多示例学习的操作。同时,我们也关注针对非凸问题的连续优化和平滑理论。

弱监督理论

MIL 作为WOSD的主线之一,MIL将所有的训练图片看做一个包,在训练检测器的时候迭代地从每个包中选择得分高的示例。它的工作类似于期望最大化算法,同时评估示例和检测器。然而,这种算法经常被局部最优困扰,特别是当结果空间比较大的时候。

​ 为了缓解非凸问题,考虑到同类的示例往往会形成一个紧凑的族群,聚类方法将应用到预处理步骤中来促进示例选择。一个包分组策略将会缩减MIL线性优化操作的结果空间。基于训练集划分和交叉验证的多重MIL实现了多起点优化。

MIL网络 MIL已经升级为MIL网络,由卷积滤波器作为检测器在特征图上**兴趣区域。然而,损失函数依然是非凸的,仍然会受到局部最小的困扰。为了缓解这种情况,研究人员引入了空间正则化、上下文关联和逐步优化到MIL网络。

​ 在Weakly supervised cascaded convolutional networks一文中,目标分割被当做正则化器,并在级联卷积网络中和示例选择器一起在两个学习阶段中被优化。在 Min-entropy latent model for weakly supervised object detection一文中,一个基于团的最小熵模型被当做正则化器来缓解学习示例过程中的位置随机问题。在C-wsl: Count-guided weakly supervised localization一文中,每个类有一个计数器来统计一个检测框里有多个示例的情况。在Contextlocnet: Context-aware deep network models for weakly supervised localization和Ts2c:tight box mining with surrounding segmentation context for weakly supervised object detection文章中,上下文模型被设计为在学习示例的时候可以得到周围区域的支持。

​ 现有的理论都是使用高质量的区域(示例)作为伪真值来优化分类。在Multiple instance detection network with online instance classifier refinement一文中,MIL网络和一个在线示例分类优化算法被结合到一起。在Min-entropy latent model for weakly supervised object detection中,提出了一种将图像分类和目标检测结合的递归算法,逐步优化分类器和检测器。

​ 现有的策略使用空间正则化、上下文信息和逐步优化来有效提升 WSOD。但是仍然缺乏一种有条理的和0系统的方法来缓解优化过程中局部最小的问题。

非凸优化

延续理论 延续理论通过将一个复杂的优化问题转化为多个容易优化的子问题来使得损失函数变得平滑。通过调整延续参数,它将一系列子问题汇聚到我们感兴趣的优化问题上。这种方法在处理优化问题包括有多个局部最小的非凸损失函数上取得了成功。在机器学习中,课程学习就是受到了这种启发,设置了一系列难度逐步增大的任务,并最终收敛到感兴趣的任务。基于梯度的优化已经被证明收敛到更强的全局最小。

平滑性 平滑是一项重要的技术,在深度神经网络里面有重要的应用。有通过修改不平滑的RELU**函数来提升训练效果。还有通过引入调节器来逐步增加优化难度使得损失函数变得平滑。。还有引入熵到损失函数里面来抑制随机性。

​ 在本研究中,我们针对空间相关和类别相关的子集,通过指定一个MIL网络的一系列平滑的损失函数来持续优化,从而达到缓解局部最小和学习全局目标的目的。

具体实现

​ C-MIL将图片看成一个包,将目标推荐理论生成的图像区域看成是一个示例。目的是在只提供包标签的情况下训练示例分类器(检测器)。BiB_i表示第ii张图片(包)。yiγy_i \in \gamma表示一个包里面有没有正例γ{1,1}\gamma\in\{1,-1\}yi=1y_i=1表示包里面至少有一个正示例,yi=1y_i=-1表示包里面一个正示例都没有。Bi,jB_{i,j}yi,jy_{i,j}分别表示包BiB_i里面的示例和示例标签,j{1,2,,N}j\in\{1,2,\dots,N\}NN表示示例的数量,ω\omega表示网络需要学习的参数。

重温MIL

MIL可以分割为两个交替执行的部分:示例选择和检测估计。在示例选择的时候,一个示例选择器会计算每一个示例的目标得分,并从包中选择一个最大的得分示例。

Bi,j=argmaxjf(Bi,j,ωf)B_{i,j^*}=argmax_jf(B_{i,j},\omega_f)

ωf\omega_f表示示例选择器的参数,而Bi,jB_{i,j^*}表示包中得分最高的示例。

对于示例检测器,定义gz(Bi,j,ωg)zγg_z(B_{i,j},\omega_g)\quad z\in\gamma,则,对于一张训练图片,损失函数定义为
C-MIL基于弱监督的连续多示例目标检测

对于检测器的损失,由于凸函数取最大值仍然是凸函数(这里有个疑问,作者这里是默认了里面的函数是凸函数,但是没有给出任何理由来说明为什么是凸函数,且在后面解析如何缓解非凸性的时候,把取最大操作变成求几何平均操作就直接变成凸性的了,也没有任何证明,很迷◔ ‸◔?)。如果yiy_i为-1,则变成凹性的了。我们引入一个变量λ\lambda,来控制函数逐渐从一个凸函数来逼近原始的损失函数。λ\lambda取值从0到1,图像逐渐被分割为不同的子集,损失变为:

C-MIL基于弱监督的连续多示例目标检测

其中,Bi,J(λ)B_{i,J(\lambda)}表示分割的子集。子集的形成是这样的,首先子集间没有交叠,其次所有子集可以合并为原始的图像。子集的形成由两个步骤组成:

  1. 在得分排好顺序的示例中,选择没有属于其他子集的得分最高的示例来构建一个新的子集。
  2. 只要有任何示例和它的重叠超过λ\lambda,就把这个示例归到新的子集中。

由此,当λ\lambda为0时,整个图像是一个子集;为1时,一个示例是一个子集,此时选择器的损失为:

C-MIL基于弱监督的连续多示例目标检测
C-MIL基于弱监督的连续多示例目标检测

前面的绝对值表示子集里面的示例个数。当λ\lambda为0时,有
C-MIL基于弱监督的连续多示例目标检测
所以即使前面的yiy_i取什么,函数都是凸性的(就是这里有疑问,然而作者没有给出任何解释),随着λ\lambda的取值由0到1,函数会变得越来越不平滑,越来越逼近原始的损失函数。
C-MIL基于弱监督的连续多示例目标检测
对于示例估计器,由于定义了新的变量来划分子集,所以相应的,函数发生了一些变化。我们仍然选取选择器选出子集中得分最高的示例,然后:

C-MIL基于弱监督的连续多示例目标检测

根据这个新的函数来给示例(所有的示例,不只是所选择子集中的)打标签(是正例还是负例)。所以损失又变为:

C-MIL基于弱监督的连续多示例目标检测

ps:到这里作者也没有给出gz(Bi,j,ωg)g_z(B_{i,j},\omega_g)的定义式,话说你这样做不太好吧,太多关键问题没有说清楚了。

C-MIL基于弱监督的连续多示例目标检测

​ 实验架构使用一个端到端的神经网络,连续子集划分和连续示例估计都是连在FC层之后的。先用选择搜索理论生成候选框。在第5层卷积层之后有一个ROI-pooling,之后有两个全连接层来提取特征。C-MIL选出正例作为伪真值送到检测器学习,在反向传播中,选择器和估计器协同学习。

​ 检测器学习过程包括特征提取和分类。检测器为所有实例分类打分,并且使用极大值抑制来去除交叠在一起的候选框。

实验

实验说明

实验采用的数据集是PASCAL VOC 2007 和PASCAL VOC 2012。使用的评价标准是mPA和CorLoc(最高得分区域有0.5和真实区域重合)。使用的基本框架是在ILSVRC 2012数据集上预训练的VGGF和VGG16 CNN模型。我们使用选择搜索选出2000个候选框,并把像素点数量小于20的框去掉。输入图片被缩放为5个大小{480,576,688,864,1200},并且在训练是随机翻转,由此,一张图像被扩张为10张。训练时使用SGD理论(momentum=0.9,weight decay=5e-4,batch size=1),迭代20次,前十次学习率5e-3,后十次5e-4。测试时十张图像(一张扩张来的)的示例得分取平均。

实验结果

讨论一下不同的λ\lambda变化对性能的影响

C-MIL基于弱监督的连续多示例目标检测
C-MIL基于弱监督的连续多示例目标检测
两个步骤分别对实验性能的影响:

C-MIL基于弱监督的连续多示例目标检测

在不同训练阶段的变化:

C-MIL基于弱监督的连续多示例目标检测

在不同迭代次数图像**区域的变化,可以看到C-MIL比传统的方法更快到达稳定语义极值区域,而且会注意到目标整体而不是最具识别力的部分。
C-MIL基于弱监督的连续多示例目标检测

其他的对比实验:

C-MIL基于弱监督的连续多示例目标检测
C-MIL基于弱监督的连续多示例目标检测
C-MIL基于弱监督的连续多示例目标检测