【文献阅读】Zigzag Learning for Weakly Supervised Object Detection

Zigzag Learning for Weakly Supervised Object Detection:论文传送门

                   这篇CVPR2018的论文《Zigzag Learning for Weakly Supervised Object Detection》针对的是弱监督目标检测任务,和为大众所熟知的目标检测任务相比,弱监督目标检测任务的Ground Truth只包含图像中所有目标的类别信息而没有框的坐标。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第1张图片

解决的问题

                   目前针对弱监督目标检测任务主流的方法离不开多示例学习或类似思想的方法。
                   首先介绍一下什么是多示例学习,其实就是要了解两个概念:包(bag)和示例(instance)。包是由多个示例组成的(在图像分类中,一张图像就是一个包,图片分割出来的patches就是示例)。在多示例学习中,包带有类别标签而示例不带有类别标签,最终目的是对新的包或新的示例给出类别预测。包的类别和示例的类别是遵循一定约束规则的:如果一个包里面至少有一个示例是“+”,则该包就为正样本;如果一个包里面所有的示例都是“-”,则该包才为负样本。
                   多示例学习的优化方式一般为迭代优化(alternative optimization)。假设已经知道了所有样本的标记,通过某种监督学习的方法得到一个分类模型,之后再通过这个模型对每个训练样本进行预测更新它们的标记,循环往复。所以整个优化过程分为两部分:监督学习,标记更新。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第2张图片
                   然而针对这种优化方式,如果潜在的变量没有被正确初始化将非常容易陷入到局部最优解。这也就是为什么刚开始我训的网络在二分类任务中一直只倾向于一种类别,后来添加的一系列针对初始化的方法在一定程度上缓解了这个问题。这篇文章旨在挖掘可靠的proposal进行模型训练,同时避免陷入局部极小值。

创新点

  1. 设计一种标准—mean Energy Accumulated Scores(mEAS),用这个标准来衡量图像中目标的定位困难程度并对其进行排序,在训练过程中通过增加目标难度来逐步学习检测器。这样的话,模型可以从较简单的目标开始训练,为之后训练困难目标做准备,从而获得更好的检测效果。
  2. 在高阶卷积特征图中提出一种masking regularization strategy用来防止初始样本的过拟合。
    【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第3张图片

                   这张图是Zigzag Detection网络框架图,它使用的主干网络是Fast R-CNN,提取候选区域的方法是Edge boxes,首先用mEAS来估计图像的定位难度,并按照容易到困难的顺序重新组织训练图像,然后在Fast R-CNN框架的卷积特征映射上引入了一种遮掩策略,提高了模型的泛化能力。它被命名为Zigzag Detection Network是因为它的训练过程是交替进行的,首先用简单的训练数据集(即图像、图像类别标签和图像中proposal的位置)初始化检测网络,然后用这个检测网络重新定位图像中所有的proposal,之后循环往复直至所有数据完成训练得到最后的检测模型。其实这个过程和多示例学习的训练过程非常相似,随机初始化示例标签分布,用这个分布训练一个分类器,然后再用这样的分类器重新更新标签分布。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第4张图片
                   接下来我详细介绍一下这篇文章的几个创新点:

Estimating Image Difficulty

                   图像的定位难度是不同的,如果让网络开始就学习较难定位的图像会导致网络难以收敛或过拟合,所以本文提出让网络先学习易于定位的图像,在这个基础上逐步增加图像难度,因此本文提出要估计图像定位难度。
                   而这种做法我们就要定量评估图像定位难度,要理解什么是图像定位难度其实可以用它的主观评价方式来说明,就是人在看一张图像时能够找出其中目标位置所在的反应时间,就像这张图一样车和狗都比较好定位,一眼就能看出来,但是马和羊可能定位所需时间要更长一点。所以本文提出通过分析WSDDN网络的位置输出,使用mEAS来进行衡量。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第5张图片

WSDDN framework

                   WSDDN是Weakly Supervised Deep Detection Network,这张图是WSDDN的网络框架图,它的主干网路是Fast R-CNN,只不过从最后一个全连接层开始做了改变,新增两条分支:分类数据流和检测数据流。这两条分支的结构是一模一样的,都是全连接层后添加一个softmax,输出矩阵大小为(类别个数×候选区域个数),其中分类数据流存放的是图像中某一proposal属于某种类别的置信度,检测数据流存放的是某一proposal在图像被分类到某种类别时的贡献程度比。两个矩阵的点乘就是每个proposal针对每个类别的置信度—即proposal score。有了proposal score,就可以定义图像级别的类别置信度为这个类别所有proposal score之和。WSDDN的loss是图像级别置信度的二值熵损失,定位目标只要找到对图像分类贡献最大的proposal即可。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第6张图片

Mean Energy Accumulated Scores (mEAS)

                   WSDDN能够挑选出最有区别的分类细节,这些细节有时与整个目标相对应,但在大多数情况下只关注目标部分,即那些最能表征这个目标的部分,比如鸭子的嘴,长颈鹿的脖子等等。所以为了找到图像中WSDDN成功定位的对象,本文提出了Mean Energy Accumulated Scores计算图像定位难度并有简入难分步训练。
                   文中认为如果目标对象易于定位,那么对分类分数贡献最大的区域应该高度集中。具体来做,给定一张图像x,对于这张图像中的每一个类别,把 xcr x c r (候选区域得分)按照降序排列得到 xcr x c r ′ ,然后计算它的累积分数得到一个递增的列表 Xc X c ,其中每一维可以表征为 Xcr X c r ,这个是它的计算公式,分母为这个类别所有proposal加在一起的能量,分子为一个proposal被分类到这个类别的置信度。
                   Xc X c 在[0,1]这个范围内并且可以用来指示proposal score的收敛情况,如果高分只集中在几个区域,那么 Xc X c 很快就会收敛到1,在这种情况下,WSDDN很容易找到目标对象。EAS与使得 Xc X c 高于一个阈值t的候选区域个数成反比。所以就可以看出来,如果EAS值越高,就意味着需要比较少的候选区域来达到目标能量,即这张图像定位越简单。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第7张图片
                   如图所示,车和狗是比较容易定位的而马和羊会更难一点。直观地说,在定位过程中忽略目标定位困难的这种差异,不可避免地会包含许多局部化较差的样本,从而使训练后的模型变差;另一方面,在初始阶段处理较容易的图像,可以得到更好的检测模型,从而增加了在困难图像中成功定位目标的概率。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第8张图片

Mining object instances

                   当获得了图像的定位难度,接下来的任务就是从图像中挖掘出proposals。常见的方法是直接选择得分最高的区域作为proposals。然而,由于整个网络是通过分类损失函数来进行训练的,这使得高分区域更倾向于目标部分而不是整体目标。因此本文提出计算针对类别c的对象热图 Hc H c ,它返回像素p位于对象中的置信度。如果第r个proposal包含像素p则 Dr(p) D r ( p ) 为1,Z是归一化值使 Hc(p) H c ( p ) 最大值为1. 文中使用阈值t(在所有实验中设置为0.5)对 Hc H c 进行二值化,并选择包含最大连接部分的最紧的边界框作为挖掘对象实例。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第9张图片
                   这张图上半部分是挖掘出来的proposal和mEAS值。下半部分是对应的热图,可以看到proposal的mEAS越大,则它的热图边缘轮廓越干净清晰。这张表是PASCAL VOC2007数据集中每一种类别mEAS和其正确定位精度的数值,可以计算出它们的相关系数为0.703.
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第10张图片

Progressive Detection Network

                   得到了图片定位难度值和挖掘出的proposal,我们就能够循序渐进地训练网络。这方面一会儿我会在算法伪代码中再进行介绍。

Convolutional Feature Masking Regularization

                   可以看到上述检测器通过模型再训练和proposals重定位交替进行学习,可是如果在没有适当初始化的情况下检测器很容易陷入局部最优解。由于缺少框的注释,初始训练样本中不可避免地包含不准确的样本,导致网络在每次迭代过程中都倾向于对这些不准确的实例进行拟合,导致泛化能力较差。为了解决这个问题,我们提出了一种正则化策略,以避免网络在所提出的zigzag学习中被初始样本过拟合。具体而言,在网络训练过程中,我们随机屏蔽了以前的训练中的区分性细节,这就迫使网络将注意力集中在那些区分性较小的细节上,从而使当前的网络能够看到一个更全面的对象。给定一张图和挖掘出的一个目标实例,随机选取目标实例上一部分进行计算,而将剩余部分置零,指令部分为奥米伽,而奥米伽和原始目标实例部分重叠率为delta。
                   这个就是算法的伪代码,首先计算图像的定位难度并且挖掘出对象实例,之后按照由易到难将数据集划分成K份,每一次训练一份极其之前的并集,用训练好的模型重新定位proposals,直至最后一次训练所有数据得到最终模型。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第11张图片

Results

                   这张表列出了使用刚刚提到的三种方法后的结果,可以看到使用mEAS来衡量图片的定位难度比直接使用Region Scores要好。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第12张图片
                   这张图表明了K和delta两个超参数的选取。
【文献阅读】Zigzag Learning for Weakly Supervised Object Detection_第13张图片
                   总结来说这篇文章对于弱监督目标检测中随机初始化容易导致网路陷入局部最优解这个问题提出了一些解决方案,值得应用在自己的网络中进行尝试。

你可能感兴趣的:(文献阅读)