A-Fast-RCNN 论文笔记

来源:互联网 发布:伟星ppr水管颜色 知乎 编辑:程序博客网 时间:2024/05/17 17:42

本文主要是对:http://blog.csdn.net/jesse_mx/article/details/72955981的搬运,感谢博主!

前言

近期为了学术汇报,阅读了这篇CVPR 2017论文,该论文将对抗学习的思路应用在目标检测中,通过对抗网络生成遮挡和变形图片样本来训练检测网络,取得了一定的效果。现将论文大意做了翻译和理解,不一定完全对。

摘要

如何使得物体检测器能够应对被遮挡或者变形的图像?我们目前的解决方法是使用数据驱动的策略——收集一个足够大的数据集,能覆盖不同的情况,并希望通过训练能够让分类器学会把它们识别为同一个物体。但是数据集真的能够覆盖所有的情况吗?我们认为像分类、遮挡与变形这样的特性也符合长尾理论。一些遮挡与变形非常罕见,几乎永远不会发生,但我们希望训练出的模型是能够应付所有情况的。本文中,我们提出了一种新的解决方案。使用一种对抗网络来自动生成遮挡和变形的样本。对抗学习的目标是生成检测器难以识别的样本。在我们的框架中,原始检测器与它的对手共同进行学习。实验表明,我们的方法与 Fast-RCNN 相比,在 VOC07 上mAP 提升了 2.3%,在 VOC2012 上 mAP 提升了 2.6%。

介绍

在目标检测任务中,我们常常要求模型能够适应不同的光照条件、遮挡、形变等。标准的做法是使用一个包含各种不同情况的大规模数据集,例如COCO数据集就有10000多个不同遮挡形变情形的汽车样本。我们希望通过足够多的不同场景样本,检测器能学到更好的鲁棒不变性,这也是卷积神经网络能成功用于目标检测任务的重要原因。

然而并没有这么简单,作者认为遮挡和形变的情况也遵循长尾理论,就是说一些遮挡和形变的情况很罕见,几乎不会出现在大规模数据集中,例如图1的一些情况。那么如何学习这些罕见的遮挡和形变呢?使用更大的数据集是一个办法,但是也很难突破长尾理论的限制。

这里写图片描述

通过对抗学习来生成这种困难正样本在理论上是可行的,但具体方案还要分析。

比如方案一:直接学习这些罕见的遮挡形变样本,通过尾部分布生成以假乱真的样本图片,结论是不可行,太过复杂,效果还难说。

方案二:生成各种可能的遮挡和形变样本,结论是情况太多,根本不可能完备。

作者提出的方案是,不直接生成新的图片,而是在原有图片上“人为”添加遮挡和形变,也算是生成了困难的正样本,让检测器难以进行分类判断。

也就是训练一个生成网络:它在卷积特征图空间上进行操作,通过遮罩特征图的一部分实现空间遮挡,通过操控特征响应来实现空间变形,以这种方式生成困难正样本。Fast R-CNN作为判别网络,是很难对这些样本作出判断的,当然生成网络想要骗过判别网络也很困难。二者在学习中共同提升,最终就提升了检测器的性能。关键问题就是如何在卷积特征空间中创建对抗样本。

相关工作

作者在文中总结,针对目标检测问题,目前学术界主要从三个思路进行探索:

一是设计更好的网络架构来提升性能,主要是使用更深的网络结构,例如 ResNet,Inception-ResNet ,ResNetXt ;

二是结合上下文推理,充分利用各个卷积层的特征;

三是充分利用训练数据来提升性能,例如hard example mining。

本文的工作就属于第三条思路,充分利用现有数据,作者强调工作重点是以更好的方式利用数据,而不是试图筛选数据来寻找困难样本,当然,核心是利用对抗学习生成很难的样本,拿给Fast R-CNN检测,以提升其检测鲁棒性。

用于目标检测的对抗学习

作者的对抗网络是在空间上受到限制:只管遮挡和形变。

在数学上,检测器(Fast R-CNN)的损失函数可以如下表示,它是softmax loss和bbox loss的求和。

这里写图片描述

其中,X是候选目标,F是检测器,检测结果分为两个部分,FC是类别,FL是预测坐标,候选目标X的的真实类别是C,真实坐标是L

假定A是对抗网络的生成器,那么A(X)就是生成出来的困难正样本,对抗网络需要学会预测那些检测器容易误判的特征。训练对抗网络所用的损失函数表示如下。

这里写图片描述

理解起来还是比较容易,如果对抗网络生成的特征很好分类,其损失就比较大。当然如果能骗过检测器,损失函数就变小了。

A-Fast-RCNN:技术细节

Fast R-CNN概述

作者简介了所用的Fast R-CNN检测框架,我这里就不详述了,具体可以参考这篇博文:Fast R-CNN论文详解

对抗网络设计

作者设计了两个对抗网络,分别用于遮挡和形变,注意到这两个对抗网络是和Fast R-CNN联合训练的,主要是为了防止固定生成模式下的过拟合。

实验发现在特征空间上的操作要比在输入图片更为高效,因此作者设计的对抗网络可修改图片特征层,使得检测器难以判别。一开始它们是分开的,后面的阶段它们将会被整合到统一的框架中。

用于遮挡的对抗网络

首先介绍Adversarial Spatial Dropout Network(ASDN,对抗空间丢弃网络),以下简称ASDN。

如下图2所示,ASDN网络的输入是Fast R-CNN中RoI-pooling之后的特征图,然后通过全连接层生成掩模,确定特征图的哪些部分应该减掉(dropout),这样生成的困难样本最好要让检测器误判,掩模会自动根据损失函数作出调整。

这里写图片描述

假设ASDN的输入特征图是d×d×c(AlexNet中,d=6c=256),ASDN就会生成一个d×d的掩模,其值只有0或1。假定掩模中某一点的值为Mijk,如果其值为1,就去掉特征图中该坐标位置所有通道的像素值,将其归零。

网络结构。作者使用了标准的Fast R-CNN框架,对抗网络共享基底卷积层和RoI-pooling层,但是没有共享参数。

模型预训练。作者首先在没有ASDN的情况下迭代Fast R-CNN模型10000次,然后才来训练ASDN。

ASDN网络初始化。假设输入ASDN的特征图维度是d×d,作者设定大小为d/3×d/3的滑动窗口,如图3,滑动窗口所在的位置将会被遮挡,算下来每个特征图会得到10种不同的遮挡情况(滑动窗口只遮挡不同位置的1/9面积,包括完全不遮挡),这样就生成了多个新特征图,再把他们送到分类器中判别,选择损失值最高的那个为最优(因为它最能骗过分类器)。

这里写图片描述

采样阈值。当然,由ASDN生成的结果不会是上述简单的矩形二值化掩模,它应该是一个连续的热图(heatmap)。作者没有使用固定阈值,而是按照重要性排序,将前面1/3的像素值给屏蔽掉。具体而言的操作是,选择概率值前1/2的像素,再随机选择其中的2/3设为0,剩下的1/3设为1,这样总共将1/3的像素给屏蔽掉,造成遮挡的情况。

联合训练。作者将ASDN和Fast R-CNN进行了联合训练,并且受到增强学习的启发,着重训练导致分类效果显著降低的二值化掩码。

用于形变的对抗网络

然后介绍Adversarial Spatial Transformer Network(ASTN,对抗空间变换网络),以下简称ASTN。ASTN的关键是在特征图上产生形变使得检测器难以判别。

STN概述。STN网络有三个组成部分,分别是:定位网络(localisation network)、网格生成器(grid generator)和采样器(sampler)。定位网络将估计形变参数(如旋转度、平移距离和缩放因子),网格生成器和采样器将会用到这些参数来产生新的形变后的特征图。这个空间变换神经网络仍然是复杂的概念,我自己概括就是:相当于在传统的卷积层中间,装了一个“插件”,可以使得传统的卷积带有了裁剪、平移、缩放、旋转等特性,具体内容参见DeepMind论文:Spatial Transformer Networks 。

STN对抗网络。空间变换有好几种形式(裁剪、平移、缩放、旋转等),针对本文中的形变要求,作者仅关注旋转特征,意味着ASTN只需要学习出让检测器难以判别的旋转特征就可以了。如图4所示,对抗网络长得和前面的ASDN相似,其中定位网络由3个全连接层构成,前两层是由fc6和fc7初始化来的。ASTN和Fast R-CNN还是要联合训练,如果ASTN的变换让检测器将前景误判为背景,那么这种空间变换就是最优的。作者也提到,可直接使用Fast R-CNN的softmax loss进行反向传播,因为空间变换是可微的。

实施细节。作者在试验中发现,限制旋转角度很重要,不加限制容易将物体上下颠倒,这样最难识别,也没啥意义。作者把旋转角度限制在了正负10度,而且按照特征图的维度分成4块,分别加以不同的旋转角度,这样可以增加任务复杂性,防止网络预测琐碎的变形 。(作者并未给出形象的可视化图形,理解的费劲)

对抗网络融合

如图4,作者将这两个对抗网络结合在一起进行训练,由于这两个对抗网络提供不同类型的信息,通过同时竞争这两个网络,我们的检测器可以变得的更鲁棒。

这里写图片描述

实验

Pascal VOC 2007的结果

如表一所示:在AlexNet网络基础上,作者训练的Fast R-CNN的基准mAP是57%,加上ASTN后提示到58.1%,加上ASDN后提升到58.5%,二者都加则提升到58.9%。在VGG16网络基础上,作者训练的Fast R-CNN的基准mAP是57%是69.1%,加上ASTN后提示到69.9%,加上ASDN后提升到71.0%,二者都加则提升到71.4%。作者还试验了非常深的网络ResNet-101,同时加上ASTN和ASDN,mAP从基准的71.8%提升到73.6%。

这里写图片描述

进一步分析(烧灼分析)

ASDN分析。作者将四种形成遮挡的丢弃(dropout)方式做了对比,如表2所示。在AlexNet网络基础上,看到随机dropout效果最差;将困难样式穷尽提取的hard dropout表现不错,但是穷尽策略不适合于大数据空间;固定ASDN参数的方式表现比hard dropout还差,因为缺乏来自Fast R-CNN的反馈;最后ASDN联合训练效果最好。

这里写图片描述

ASTN分析。作者将ASTN和随机抖动(random jittering)做了对比(没有给出对比表格),发现使用AlexNet,mAP分别是58.1%h和57.3%,使用VGG16,mAP分别是69.9%和68.6%,总之ASTN比随机抖动效果好。

基于种类的分析

图5展示了每个类别的性能如何随着遮挡和形变而变化,ASDN和ASTN的表现还蛮相似,一多半的种类mAP得到提升,另外有那么几类下降了,总体当然是提升了。目标检测中一些重要的类别,如car,person,bike能得到提升,说明该方法还是用武之地的。

这里写图片描述

定性分析

图6是手动挑选出来的典型例子,它们展示了对抗学习的缺点:容易造成假阳性(false positive)。有时候,对抗网络创建的遮挡、形变样本可能和其他类别过于相似,使得模型过度泛化。比如,本文方法遮挡了自行车的轮子,导致轮椅被错误地分类为自行车。

这里写图片描述

Pascal VOC 2012和MS COCO的结果

作者接着展示了VOC 2012数据集的结果,如表3,VGG16网络下,mAP从66.4%提升到69.0%。在MS COCO数据集下,VGG16网络下,基准mAP是42.7%(VOC标准)和25.7%(COCO标准),使用对抗网络后,mAP提升到了46.2%(VOC标准)和27.1(COCO标准)。

这里写图片描述

和OHEM的对比

本文方法和OHEM(Online Hard Example Mining)很有联系,二者都是充分利用训练数据的典型。本文方法是创建并不存在的困难正样本,效果很好,而OHEM是挖掘利用现有的困难样本,现实意义更高。在VOC 2007数据集上,本文方法略好(71.4% vs. 69.9%),而在VOC 2012数据集上,OHEM更好(69.0% vs. 69.8%)。作者又做了实验,VOC 2012数据集下,our approach+OHEM(71.7%),two OHEM(71.2),two our approach(70.2%),后面二者效果没有混合使用的好,说明这两种方法可以有效互补。

总结

作者首次将对抗学习引入到了目标检测领域,idea是非常创新的,而且对比实验做得很充分。但是文中使用的是较老的Fast R-CNN,而不是更好的Faster R-CNN,从简化问题的角度分析,也是可以理解的。该方法网络设计和训练较困难,mAP的提升却比较有限,总体感觉学术意义大于工程意义。



原创粉丝点击