个人对文章阅读的一些理解,有不同理解的小伙伴可以在下方评论交流。
这是一篇WACV2020的一篇文章,是西安交通大学柯炜老师的一篇文章。文章主要提出了一种以Grad-CAM为基础,通过抑制感兴趣区域的权重,让网络学习到更多的目标区域,来达到目标检测的目的。
改进目标检测器的抗遮挡,模糊和噪声能力是在实际应用中使用检测器的关键步骤。由于不可能通过数据收集来消除所有图像缺陷,因此许多研究人员寻求在训练中生成硬样本。生成的硬样本可以是图像,也可以是特征图,但是其一些特征模块(patchs)会被丢弃。在训练额外的硬样本或使用额外的网络分支估计丢失补丁(patchs)时,需要大量的开销。在本文中,我们使用称为反转注意力 (Inverted Attention IA)的高效细粒度机制(这里细粒度机制我理解为逐像素级别的)改进了对象检测器。与最初只关注对象主要部分的检测器网络不同,带有IA的检测器网络迭代地将注意力转移到特征图上,并将更多的注意力放在互补的对象部分、特征通道、甚至上下文上。我们的方法(1)沿特征图的空间和通道维度进行操作; (2)不需要对硬样本进行额外的培训,不需要用于注意力估计的额外网络参数,也不需要测试开销。实验表明,我们的方法在基准数据库上提升了 two-stage和one-stage检测器性能。
改善对象检测器的图像缺陷(例如遮挡,模糊和噪声)是在实际应用中部署检测器的关键步骤。 计算机视觉领域最近的努力已经收集了关于不同场景,物体类别,形状和外观的大量训练数据。 但是,尚不可能消除在照相机抖动,灰尘,褪色的光线和恶劣的天气条件下捕获的所有图像缺陷。 此外,深度学习方法受数据分布的影响很大,而很难通过对象特征和缺陷的统一组合来收集数据。
处理收集更多的图像和注释外,另一种是提升检测器的训练方法。通过难实例挖掘来选择训练样本的子集。 这种方法不能很好地推广到看不见的图像缺陷。(2)通过感知遮挡损失对遮挡的边界框进行惩罚。 这些方法不能很好地推广到看不见的遮挡。(3)通过硬实例生成来合成图像缺陷。 这些方法通常会丢失空间维度上的大patch,并且要训练的新样本会成倍增加。(4)通过注意力评估,突出显示所需的细粒度特征。评估注意掩码通常需要额外的网络,因此会增加训练开销。
本文所提到的方法IA,在每次训练迭代中,IA使用对象分类得分,计算在特征提取网络(也称为主干网络)上生成的特征图的梯度,并迭代地反转网络的注意力。 与仅关注对象的一小部分的原始检测器网络不同,带有IA的神经网络将更多注意力放在原始网络的互补空间部分,特征通道,甚至上下文上。 IA模块仅在训练中更改网络权重,而在测试中不更改任何权重。
图1:在VGG16 Fast-RCNN的ROI特征图([7×7×512])上可视化的注意力热图。 每个[7×7]注意热点图被线性插值并叠加在[224×224]对象ROI图像块上。 前4列分别是受IA影响的前4个通道的注意热点图。 最后一栏“Overall”表示所有512个通道的总热力图。 (此图最好用彩色查看)
图1(上排)显示了标准Fast-RCNN检测器中的注意力。注意力通过叠加在对象上的热力图可视化。热力图的红色像素表示关注度较高,而蓝色像素表示关注度较低。在我们的IA训练过程中,原始注意力热图如图1所示(中间排),然后进行下一个迭代。 IA培训结束后,网络将产生新的关注热点图,请参见图1(下排)。可以观察到,经过IA训练的检测器网络专注于对象的更全面特征,从而使其对于单个像素的潜在缺陷更加鲁棒。图2显示了没有IA培训(上排)和IA培训(下排)产生的整体注意力的更多示例。与现有方法相比,我们的方法(1)沿特征图的空间和通道维度操作; (2)不需要对难样本进行额外的培训,不需要用于注意力估计的额外网络参数,也不需要测试开销。我们在基准数据库的tow-stage和one-stage检测器上对IA进行了评估,并取得了显着的改进。
[21]提出了基于R-CNN的人员检测器的聚集损失。 这种损失迫使同一对象的proposal被关闭。 作者没有为一个人使用单个RoI pooling,而是为每个人使用了一个由五部分组成的单元来处理遮挡。 [17]提出了一种新的边界框回归损失,称为排斥损失。 这种损失会鼓励被目标吸引,并被周围的其他物体排斥。 排斥项会阻止proposal转移到周围的物体,从而导致人群拥挤的定位。 [25]提出了两个回归分支来提高行人检测性能。 第一个分支用于使全身区域退化。 第二个分支用于回归可见的身体区域。
基于图像的生成:[23]在训练过程中随机遮挡了几个矩形图像块。 [7]遮盖了由行人重新识别任务损失指导的矩形patches。 [13]通过随机遮挡训练图像中的patches来改善弱监督对象的定位。 [16]学习了一个对抗网络,该网络生成具有遮挡和变形的实例。 对抗的目标是生成难以被目标检测器分类的实例。
基于特征的生成:[5]选择加权的通道进行dropout,以对CNN进行正则化。 [16]使用预测的遮挡空间掩码,来dropout生成的难例正样本。 [22]根据三种通道注意机制对特征图进行加权。 [14]在视频跟踪中使用随机生成的掩码自适应地删除输入特征,以获得各种外观变化。 我们的IA方法在特征上同时进行通道方向和空间方向的dropout。
最近的方法结合了注意力机制来改善CNN的性能。 [3,6,18]将通道方式或空间方式的注意力网络分支集成到前馈卷积神经网络。 对于各种CNN任务,评估的注意力图将与原始特征图相乘。 所有这些方法都引入了额外的网络分支来估计注意力图。 [19]通过转移功能强大的教师网络的注意力图来提高学生CNN网络的性能。 Deconvnet [20]和引导式反向传播[15]使用不同的反向传播策略可改善基于梯度的注意力。 CAM [24]将线性分类层转换为卷积层,以产生每个类别的注意力图。 Grad-CAM [11]改进了CAM,适用于多种CNN模型。
我们采用基于R-CNN [4]的框架来说明我们的反向注意网络(IAN)(图3)。 反向注意力生成模块(图4)已添加到R-CNN检测网络,并在ROI功能图上运行。 请注意,此模块仅包含一些简单的操作,例如合并,阈值和逐元素乘积。 无需额外的参数。 在其余的在本文中,我们展示了这种简单的更改如何有效地改善原始网络以克服图像缺陷。
注意机制识别对象的最具代表性的区域。 关注热点图具有识别性的区域,会鼓励区分对象类别,同时会减少同一类别内要素的多样性。 但是,特征的多样性是将对象检测器扩大到看不见的对象实例和图像缺陷的关键。 拟议的反向注意力训练方法旨在减轻冲突并找到识别性区域与多样性之间的最佳权衡。
如图4所示,反向注意力生成模块包括两个简单的操作:(1)梯度引导注意力生成:通过仅向后推算地面真实类别的分类分数来计算特征图上的梯度(2 )注意反转:反转注意张量的元素值以生成IA热力图。
梯度引导的注意力产生: 在卷积神经网络的训练阶段,反向传播操作中的特征图梯度会输出权重,预测相对于特征图相同位置处的变化的敏感程度。 如果特征图在元素上的细微变化,对网络输出有很大影响,则网络更加关注该元素。 根据这一原理,我们在我们的方法中使用了梯度来生成注意力图(图4)。(就是网络反向传播产生的梯度越大,就说明网络越注意与此对应的特征图)
将梯度张量表示为G,将特征张量表示为F。它们的大小均为H×W×C,其中H,W,C分别为 G 和 F 的高度,宽度和通道数。 对梯度张量应用全局池化以生成大小为 C×1 的权重向量 W 。我们根据计算梯度引导的注意力图,
其中wi是W的第i个元素,F(i)是F的第i个通道图。如图4所示,梯度中的高值对应于汽车样本中的行李箱。 而较小的值对应于汽车门和背景。
注意反转:在标准训练过程中,梯度下降算法会强制注意力图收敛到对象的几个最敏感部分,而忽略对象的其他较不敏感部分。 IA训练将原始注意力张量进行迭代反转,即反转注意力张量,从而迫使网络根据对象的敏感度较低的部分来检测对象。 具体来说,我们生成一个空间方向的反向注意图和一个通道方向的反向注意图,然后将它们组合以生成最终的注意图。
空间方向反转注意力图:As = { ai } 定义为:
其中,asi 和 mi 分别是第 i 个像素的 As 和 M 的元素。 Ts是空间注意图的阈值。 从等式 如图2所示,在空间上倒置的注意力图对具有较小梯度值的样本区域更加关注。(对于特征图M,根据阈值Ts,把M中的像素进行反转。)
权重向量W用作特征图通道的灵敏度度量。 阈值Tc用于计算通道方向的反向注意力向量Ac = { acj },(通道方向也进行反转)
最终的反向注意力图A = {ai,j}计算为:
图5)说明了在IA训练期间网络注意力在不同时期如何演变。 IA训练迭代地指导神经网络提取整个对象样本上的特征。
如图3所示,反向注意力网络(IAN)基本上是通过将反向注意力生成模块(图4)添加到基于R-CNN的检测网络中来构建的,并在ROI特征图上进行操作。
给定输入图像后,R-CNN框架的主干即VGG或ResNet将整个图像作为输入并生成特征图。 region proposal是通过region proposal network(RPN)或预先计算的region proposal候选者,从这些特征图生成的。 然后,RoI-pooling为每个对象proposal生成固定大小的特征图。 RoI池化后,这些特征图随后经过完全连接的层以进行对象分类和边界框回归。
通过优化以下两个损失函数,可以端到端地训练R-CNN:
其中 Lcross entropy和 Lrpn reg 是RPN网络的交叉熵损失和L1损失。 Lcross entropy和Lrpn reg是R-CNN网络的softmax损失和L1损失。 Lrpn + Lrcnn在Faster-RCNN框架中进行了联合优化,而Lrcnn在Fast-RCNN框架中进行了优化。
在反向传播阶段,通过仅在ground-truth类别上反向传播分类损失来计算梯度,该梯度用于反向注意生成模块。 借助生成的反向注意力图,将特征图和IA热图之间的逐元素乘积层用于特征细化,如下所示:
其中∗表示逐元素乘法。 细化是在元素级别进行的,即沿着特征图的空间和通道维度进行。
完成这些操作后,将更新的特征图进行前向传播以计算检测损失,然后反向传播损耗以更新原始网络参数。 算法1总结了IAN的训练过程。
反向注意力网络(IAN)在三个广泛使用的基准上进行了评估:PASCAL VOC2007,PASCAL VOC2012 [2]和MS-COCO [8]数据集。 在以下部分中,我们首先介绍实验设置,然后分析“反向注意力”模块的效果。 最后,我们报告了IAN的性能,并将其与最新方法进行比较。
我们使用Faster-RCNN,Fast-RCNN和SSD对象检测器作为基准。 通过将IA模块添加到每个基准网络,即可轻松构造我们的IAN。 VGG16和ResNet-101用作主干特征提取器。 默认情况下,带有VGG16的Fast R-CNN用于消融研究。 标准的平均精度(mAP)[1]被用作评估指标。 对于PASCAL VOC,我们使用0.5的IoU阈值报告mAP分数。 对于COCO数据库,我们使用标准的COCO AP指标。
PASCAL VOC2007: 所有模型都在VOC2007训练集和VOC2012训练集上进行了训练,并在VOC2007测试集上进行了测试。 对于Fast-RCNN,我们遵循[16]中的训练策略:对于前6个epochs,将学习率设置为2e-3,对于另外2个epochs,将其学习率降低为2e-4。 我们在训练中使用了batch size为2,并将VGG16用作骨干网络,用于PASCAL VOC数据集上的所有消融研究实验。 对于Faste-RCNN,我们遵循[10]中的训练策略:对于前6个epochs,将学习率设置为2e-3,对于另外2个epochs,将其学习率降低为2e-4。 我们在训练中使用了batch size大小为2。 我们还报告了在模型ResNet101的结果。 对于SSD,我们遵循了[9]中的训练策略:对于前6个epochs,将学习率设置为1e 3,对于另外2个时间段和1个epochs,将学习率衰减为1e-4和1e-5。 我们在训练中使用默认的batch size大小32。
PASCAL VOC2012:所有模型都在VOC2007训练集,VOC2012训练集和VOC2007测试集上进行了训练,然后在VOC2012测试集上进行了测试。 对于Faster-RCNN和SSD实验,我们遵循与上述VOC2007训练完全相同的训练策略。
COCO:按照标准COCO协议,分别对trainval集中的120k图像和test-dev集中的20k图像进行训练和评估。 对于Faster-RCNN,我们将前4个epochs的学习率设置为1e-2,对于另外4个epochs将学习率降低为1e-3,对于后2个epochs将学习率降低为1e-4。 我们在训练中使用的批次batch size为16,并使用ResNet101作为骨干网络。 对于SSD,我们将前6个epochs的学习率设置为1e-3,然后将另外2个和1个epochs的学习率衰减为1e-4和1e-5。 我们在训练中使用默认的batch size大小32。
在two-stage检测框架中,给定ROI-pooling层之后的特征图,我们在反向注意力的指导下对特征图进行加权。 对于在空间上反转的注意力图H×W,我们删除了具有最高值的顶部33%像素。 对于逐通道反转的注意力图,我们丢弃了具有最高值的顶部80%像素。 在one-stage检测框架中,给定多个具有不同大小的特征图,我们在上述two-stage框架中采用相同的策略来对特征图进行加权。 为了防止netwrok对重新加权的特征图过度拟合,我们仅对20%的特征图进行加权,而其余80%的特征图则保持不变。