motivation:文中指出,由于偶然因素的存在,目标检测中目标的遮蔽情况,形状等并不完全符合寻常的分布(举例如下图)
而为了使得网络模型对这些目标的变体具有鲁棒性,通常的做法是采用扩充数据集的方式来尽可能覆盖所有情况。而由于long-tail(长尾; 代表小批量销售的大量商品的市场部分,与大批量销售的少量商品相比,被认为具有更高的金融价值)的数据分布,这种方式很难涵盖所有情况,因此引入图片生成工作。
一种方式是从尾部分布中生成现实图像,然而该方法需要稀缺的样本作为原始数据。另一种方法是生成所有可能的场景及目标变形并以此训练目标分类器,但是考虑到这些情况的多样性,很难穷举完全。
因此作者引出自己的方法:
an adversary that creates hard examples by blocking some feature maps spatially or creates spatial deformations by manipulating feature responses
关键思想在于,在卷积特征空间创造对抗样本而不是逐个生成像素(后者是个难得多的问题)
文中指出提升目标检测系统的表现主要遵循三个准则:
1.优化主干
2.结合前后关系推理(这里指的是包含skip connection的类金字塔结构)
3.数据增强,挖掘
本文提出的网络遵循第三个准则,主力生成目标检测器难以识别的样本,即难样本。
作者提出两种网络模型生成方式:生成遮蔽的Adversarial Spatial Dropout Network (ASDN)和生成变形的Adversarial Spatial Transformer Network(ASTN)。两种网络结构同时结合Fast-RCNN训练以防固定生成策略带来的过拟合影响,只在训练时引入以提升检测器效果。
对抗网络的训练遵循如下loss:
使得对于容易分类出的样本产生高loss,不容易分类出的难样本产生低loss。
ASDN( Adversarial Spatial Dropout for Occlusion):
对于Fast-RCNN生成的每一个前景目标proposal,ASDN以其作为输入,生成mask决定是否丢弃对应的部分。(Mask值为1的部分丢弃全部channel的特征,丢弃的特征置为0)网络结构如下:
部分Mask可视化:
首先在不使用ASDN的情况下训练Fast-RCNN以获得目标感知能力,再加入ASDN。
ASDN初始化时,通过在d*d尺寸的特征图上移动d/3 * d/3的滑动窗口(窗口内部信息丢失)以寻找最高的loss(这里的九宫格mask只是用于初始化,即第一次迭代的GT,GT训练过程中会变化):
对于n个region proposals生成mask,组成n对训练样本
为了使得ASDN能够学习生成mask,并以此给检测器网络一个高loss。计算损失如下:
该损失是一个类交叉熵的损失,即使得ASDN的输出逼近最优mask的分布。
ASDN输出的不是一个二值mask而是连续的heatmap,这里采用了importance sampling的方法。选取前一半拥有最高概率的pix,随机将其中1/3赋值为1,另外2/3赋值0。值得注意的是,由于采用这种方法,将无法从分类损失中获得反向传播,这里采用增强学习的方法,计算哪些二值mask对分类score造成了显著的下降,选取那些难样本mask作为GT(损失公式中的M)迭代训练ASDN。
联合学习过程中,首先在前向传播过程中使用ASDN来生成mask,然后通过sampling生成二值mask来修改feature,由于标签仍然存在,这些样本变得更难学习。
ASTN(Adversarial Spatial Transformer Network):
ASTN思想借鉴于STN(Spatial Transformer Network)。STN使用变形来使得分类更简单,而这里的目标正好相反。
关于STN见https://blog.csdn.net/qq_39422642/article/details/78870629
ASTN同样分为 localisation network, grid generator,sampler三个部分,不同的是优化目标与STN相反。另外ASTN主要着力在旋转目标上。由于ASTN希望分类变得更难,处理过程中很容易造成目标的180度旋转,而这会在绝大多数情况下根本无法辨认目标,因此限制旋转角度在顺时针逆时针10度之内。实现时将所有channel分为4个block,每一个block实现一种旋转。由于每一个channel可认为是代表着特征图的一种activation(此处怎么理解?),旋转一部分channel可认为是旋转目标的一部分从而实现变形。作者指出如果对所有特征图实施一种旋转,ASTN经常会预测出最大的角度。通过使用4种不同的旋转角度,可增加任务复杂性并防止网络预测出无用的变形。
整体网络框架如下:
实验时防止网络对调整后的数据过拟合,采用batch内同时包含未处理的特征图和处理过的特征图的做法。
实验分析
对于ASDN的效果选取了其他几种丢弃特征图的方法进行对比:
对于ASTN与包括尺度,长宽比,旋转等随机变化进行了比较,结果表明ASTN更胜一筹。
以下是一些该结构造成的错误案例:
对此作者的解释是:一些遮挡或者变形使得原目标更像是其他的类别了。
随后与OHEM在VOC2012上相比较,本文提出的方法获得70.2%mAP, OHEM 71.2%,同时使用71.7% 。