如何训练一个目标检测器,对遮挡和形变鲁棒,目前的主要方法是增加不同情况的图像数据,但这些数据有时又特别少。作者提出使用对抗生成有遮挡或形变的样本,这些样本对检测器来说比较困难,使用这些困难的正样本训练可以增加检测器的鲁棒性。与Fast-RCNN比较,在VOC2007上,mAP增加了2.3%,VOC2012上增加了2.6%。
不同遮挡或形变的物体如下图所示:
Fast-RCNN检测器损失函数有两项,softmax对类别的损失和回归对bbox的损失。对抗网络主要学习导致检测器检测失败的特征,损失函数为:
LA=−Lsoftmax(Fc(A(X)),C)
若对抗网络生成的特征对检测器来说易识别,则对抗网络的损失比较大,反之较低。
对抗网络设计
使用对抗网络生成有遮挡和有形变的两种特征,两种网络为ASDN和ASTN。
ASDN
FAST-RCNN中RoI-池化层之后的每个目标proposal卷积特征作为对抗网络的输入,给定一个目标的特征,ASDN尝试生成特征某些部分被dropout的掩码,导致检测器无法识别该物体。
ASDN网络初始化
给定尺寸大小为
d×d
的特征图X,使用
d3×d3
的滑动窗,并将滑动窗位置映射到原图,将原图对应位置清零,生成新的特征向量,传入到分类层计算损失,选择具有最大损失的滑动窗,用这个窗口生成二值掩码M(滑动窗位置为1,其余位置为0),用n个目标proposal生成n对对抗网络的训练样本
(x1,M1),...,(xn,Mn)
,使用二值交叉熵损失训练ASDN:
经过学习,网络可以学习到特征的哪些部分对分类来说比较重要,如下图所示:
联合训练
在前向传播过程中,首先使用ASDN在RoI-池化层之后生成特征掩码,然后使用重要性采样法生成二值掩码,使用该掩码将特征对应部位值清零,修改后的特征继续前向传播计算损失。这个过程生成了困难的特征,用于训练检测器。训练过程流程图如下所示:
ASTN
1.STN回顾
STN网络包含三部分:定位网络,网格生成器,采样器。定位网络估计出形变的参数(旋转角度、平移距离和缩放因子)。这三个参数作为后两部分的输入,输出是形变后的特征图。论文主要学习定位网络的三个参数。
2.ASTN
主要关注特征旋转,定位网络包含三层全连接层,前两层是ImageNet预训练的fc6和fc7,训练过程与ASDN类似,ASTN对特征进行形变,是的ASTN将正样本识别成负样本。将特征图划分为4个block,每个block估计四个方向的旋转,增加了任务的复杂度。
两种对抗网络可以相结合,使得检测器更鲁棒,RoI-池化层提取的特征首先传入ASDN丢弃一些激活,之后使用ASTN对特征进行形变,如下图所示:
实验结果
使用了对抗网络,每一类检测和分类的影响: