Facebook AI近期提出一项新研究,表明CNN中常用的padding机制存在重大缺陷,会导致特征图中出现伪影,从而影响CNN的应用。作者把这种伪影称为空间偏差,这种偏差对于某些任务特别是小目标检测是有害的,偏差会导致特征图上的伪影,而处于伪影中的物体无法被检测到,从而导致盲点或误检测。此外,该机制还会导致学习的权重出现不对称。为此,作者提出了减轻空间偏差的解决方案,实验结果表明这有助于提高模型的准确率。论文地址:https://arxiv.org/pdf/2010.02178.pdf
神秘故障
目前对于卷积神经网络的大量研究工作集中在理解CNN的特征图。但是,很少有人关注特征图中激活的空间分布。Facebook AI的研究人员表示,之所以会对其空间分布感兴趣,是因为交通信号灯检测器经常出现神秘故障,该检测器能够在道路场景的一帧照片中以高分数检测出小而可见的信号灯。但是其对下一帧的交通信号灯的检测完全失败。这两张输入图像的主要区别在于,在垂直方向存在有限的位移(图像是通过移动车辆采集的)。鉴于CNN通常被认为具有高度的平移不变性,因此在目标检测方面出现如此大的差异,实在令人惊讶。特征图激活的空间分布随输入而变化。通过仔细检查大量输入样本的特征分布,作者发现,这些特征图会出现与任何输入特征都不相似的伪影。通过分析,作者证明了这些伪像是造成前面提到的神秘故障的原因,因为它们会导致目标检测出现“盲点”。
padding如何导致空间偏差
在BSTLD这个GitHub项目中,作者对交通信号灯检测模型进行了分析。图1展示了使用的数据集中的两个示例场景。对于每个场景,图中展示了第11个卷积层中由两个卷积核计算出的两个特征图。图1的最后一行展示了上述两个卷积核中每个卷积核的平均响应。第一个过滤器似乎主要响应输入的上半部分的特征,而第二个过滤器主要响应街道区域。在两个平均图中,存在一些可见的线条,与任何场景特征都不相似,并且始终存在于各个特征图中。作者分析了所有512个卷积核的特征图中这些伪影的普遍性,发现这些伪影在平均特征图中大部分都是可见的。
图1:交通信号灯检测器的最后一个卷积层中每个输入和每个过滤器的平均特征图。颜色表示激活强度(越亮则越高),在地图上显示出伪影,这些伪影是空间偏差的表现。
有一种使伪影突出的方法,是通过计算零值输入的特征图来中和场景特征。图2描绘了应用ReLU单元后每个卷积层的平均图。其中,第一层平均特征图在值为0的输入下是恒定的。除了一个1像素的边缘之外(左边),第二层平均特征图也是恒定的。边界偏差在随后的层中增加了厚度并增加了方差,从而在每个边界处创建了多个伪影。这些伪像在ReLU 8上变得非常明显,并开始向内传播,类似于图1中的伪像。显然,第二层特征图中的1像素边界是由padding机制引起的。该机制使用1像素0值边框填充前一层的输出,以便在应用3x3卷积核后保持特征图的大小。第一层中的特征图不会受到影响,因为输入为零值。但是,后续层越来越受到padding的影响,因为偏置项导致不能保证输入值为0。在图2中值得注意的是,由padding引起的伪影在四个边界上都不同。为了研究这种不对称性,作者分析了生成特征图的卷积核。图3描绘了这些3x3卷积核的每层平均值。这些平均核在其权重的空间分布中表现出不同程度的不对称性。例如,L1中的平均核在左边界分配负权重,在底部分配正权重。这会直接影响padding在每个边界处引起的变化。这种不对称与padding的不均匀应用有关。
图3:每个卷积层的平均核,所有卷积核均为3×3,标题显示其核数量。
空间偏差的影响
接下来,作者演示了特征图伪影如何导致SSD模型的盲点。类似的问题出现在几种小物体的检测中,例如人脸,以及像素级任务,例如语义分割和图像修复。图4展示了SSD如何根据第11个卷积层的特征图预测小物体。SSD使用特征图中的像素位置作为目标建议的anchor。SSD会对每个建议进行评分,以预测目标类别和背景类别。除了这些分数外,SSD还计算边界框,从而将预测目标定位在每个anchor处。作者检查了以1:2长宽比计算的目标建议,因为它们类似于数据集中大多数交通信号灯的形状。在向SSD馈入0值的输入时,作者可视化了针对背景类别和交通信号灯生成的分数图,此外还将图像空间中这些建议的边界框可视化。从两个分数图中的值范围可以明显看出,SSD预测图像在所有anchor位置都属于背景类别。对于不包含交通信号灯的输入,此类预测是正常的。但是,特征图中的伪影对分数图有很大的影响,这些伪影使anchor被分类为背景(参照背景分数图中的黄色区域)。与特征图中的其他anchor相比,这些anchor在交通信号灯类别中的得分要低得多。由于SSD为每个目标分配给特征图的权重不同,结果,伪影导致了潜在的盲点,其中某些类别的分数被降低。
图4:SSD中盲点的形成。预测器基于512个特征图,使用空间anchor在45×80个可能的位置上检测和定位目标。如二分图所示,某些anchor因特征图伪影而倾向于被预测为背景。如真实场景所示(底部中间),无法检测到相应位置的交通灯。
为了验证盲点是否会妨碍物体检测,作者检查了受影响区域中包含高度可见交通信号灯实例的道路场景。图4的底部展示了这种场景。当交通信号灯位于盲点(参见中间图像)时,SSD计算出的检测分数低至7%(远低于检测假阳性截止值)。如果向上或向下移动场景图像,则只要目标位于盲点之外,就可以高分地检测到目标。伪影还进一步破坏了目标的定位,如图4右上所示,该图显示了针对0输入计算的每个anchor目标的建议。这解释了之前提到的神秘故障情况。为了进一步验证这种效果,作者在基准图像数据集上运行SSD,其中每张图像在输入的特定位置都包含一个交通信号灯实例。图5a描绘了2D图中的计算得分。显然,当模型位于“盲区”频带内时,该模型无法准确检测到交通信号目标。
图5:(a)通过彩色显示SSD出现在各个位置时为交通信号灯计算的检测得分的图。当刺激位于受伪影影响的区域时,检测将失败。(b)将padding方法更改为mirror padding(SYMMETRIC)后的同一图。除了由于SSD依赖anchor而导致的周期性变化之外,检测得分相当稳定。
padding方法怎么选?
值得注意的是,图5b中的分数图比图5a中的分数图更为均匀。特别是,在mirror padding下,模型能够检测放置在零值 padding模型的盲点中的交通信号灯。图8描绘了与零值 padding情况不同的大致均匀的平均特征图。
图8:在mirror padding下生成的特征图,并在30个随机生成的输入样本上取平均值。与图2 相比,由零值 padding引起的伪影大大减轻了。
为了进一步分析mirror padding的影响,作者按照原始训练协议重新训练了模型。如表2所示,mirror padding在不同的重叠阈值(匹配IoU)下显着提高了平均精度(AP),从而表明小物体检测对特征图伪像特别敏感。
表2:两种不同padding方案训练的SSD交通灯检测器的性能。
其他填充方法中,REFLECT、PartialConv和circular padding也可以有效地减少特征图伪影,详情参见附录D。SAME 0-padding是迄今为止使用最广泛的方法。与其他方法相比,它可以使训练和推理速度提高多达50%。
特征图统计:零值 padding会更改特征图中的值分布,并且可以在使用ReLU函数的情况下改变平均值。第6节中介绍的替代方法由于重用了特征图中的现有值,可以保留这种分布。
偏向行为(参见第6节):与circular padding和mirror padding不同,零值 padding可能不适合在边界需要高精度预测的任务。
干扰图像语义(尤其是填充量> 1个像素):例如,circular padding会引入边界不连续性,除非输入为全景。
诱发特征图伪影的可能性:除Distribution padding外,所有零值 padding的替代方法均会引起相对较少的伪影。