作者 | 青暮

Facebook AI近期提出一项新研究,表明CNN中常用的padding机制存在重大缺陷,会导致特征图中出现伪影,从而影响CNN的应用。

作者把这种伪影称为空间偏差,这种偏差对于某些任务特别是小目标检测是有害的,偏差会导致特征图上的伪影,而处于伪影中的物体无法被检测到,从而导致盲点或误检测。此外,该机制还会导致学习的权重出现不对称。

为此,作者提出了减轻空间偏差的解决方案,实验结果表明这有助于提高模型的准确率。

论文地址:https://arxiv.org/pdf/2010.02178.pdf

1

神秘故障

目前对于卷积神经网络的大量研究工作集中在理解CNN的特征图。但是,很少有人关注特征图中激活的空间分布。

Facebook AI的研究人员表示,之所以会对其空间分布感兴趣,是因为交通信号灯检测器经常出现神秘故障,该检测器能够在道路场景的一帧照片中以高分数检测出小而可见的信号灯。

但是其对下一帧的交通信号灯的检测完全失败。这两张输入图像的主要区别在于,在垂直方向存在有限的位移(图像是通过移动车辆采集的)。鉴于CNN通常被认为具有高度的平移不变性,因此在目标检测方面出现如此大的差异,实在令人惊讶。

特征图激活的空间分布随输入而变化。通过仔细检查大量输入样本的特征分布,作者发现,这些特征图会出现与任何输入特征都不相似的伪影。

通过分析,作者证明了这些伪像是造成前面提到的神秘故障的原因,因为它们会导致目标检测出现“盲点”。

2

padding如何导致空间偏差

在BSTLD这个GitHub项目中,作者对交通信号灯检测模型进行了分析。图1展示了使用的数据集中的两个示例场景。对于每个场景,图中展示了第11个卷积层中由两个卷积核计算出的两个特征图。

图1的最后一行展示了上述两个卷积核中每个卷积核的平均响应。第一个过滤器似乎主要响应输入的上半部分的特征,而第二个过滤器主要响应街道区域。

在两个平均图中,存在一些可见的线条,与任何场景特征都不相似,并且始终存在于各个特征图中。

作者分析了所有512个卷积核的特征图中这些伪影的普遍性,发现这些伪影在平均特征图中大部分都是可见的。

图1:交通信号灯检测器的最后一个卷积层中每个输入和每个过滤器的平均特征图。颜色表示激活强度(越亮则越高),在地图上显示出伪影,这些伪影是空间偏差的表现。

有一种使伪影突出的方法,是通过计算零值输入的特征图来中和场景特征。图2描绘了应用ReLU单元后每个卷积层的平均图。

其中,第一层平均特征图在值为0的输入下是恒定的。除了一个1像素的边缘之外(左边),第二层平均特征图也是恒定的。

边界偏差在随后的层中增加了厚度并增加了方差,从而在每个边界处创建了多个伪影。这些伪像在ReLU 8上变得非常明显,并开始向内传播,类似于图1中的伪像。

图2:0输入的逐层激活特征图。

显然,第二层特征图中的1像素边界是由padding机制引起的。该机制使用1像素0值边框填充前一层的输出,以便在应用3x3卷积核后保持特征图的大小。

第一层中的特征图不会受到影响,因为输入为零值。但是,后续层越来越受到padding的影响,因为偏置项导致不能保证输入值为0。

在图2中值得注意的是,由padding引起的伪影在四个边界上都不同。为了研究这种不对称性,作者分析了生成特征图的卷积核。

图3描绘了这些3x3卷积核的每层平均值。这些平均核在其权重的空间分布中表现出不同程度的不对称性。

例如,L1中的平均核在左边界分配负权重,在底部分配正权重。这会直接影响padding在每个边界处引起的变化。这种不对称与padding的不均匀应用有关。

图3:每个卷积层的平均核,所有卷积核均为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而导致的周期性变化之外,检测得分相当稳定。

4

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的替代方法均会引起相对较少的伪影。

重磅!DLer-计算机视觉交流2群已成立!

大家好,这是DLer-计算机视觉微信交流2群!首先非常感谢大家的支持和鼓励,我们的计算机视觉交流群正在不断扩大人员规模!希望以后能提供更多的资源福利给到大家!欢迎各位Cver加入DLer-计算机视觉微信交流大家庭 。

本群旨在学习交流图像分类、目标检测、目标跟踪、点云与语义分割、GAN、超分辨率、人脸检测与识别、动作行为与时空运动、模型压缩和量化剪枝、迁移学习、人体姿态估计等内容。希望能给大家提供一个更精准的研讨交流平台!!!

进群请备注:研究方向+学校/公司+昵称(如图像分类+上交+小明)

???? 长按识别添加,即可进群!

Facebook AI指出:CNN的padding机制,存在一大缺陷相关推荐

  1. 独家 | Facebook AI发布DETR一种基于Transformer的对象检测方法!

    作者:PRATEEK JOSHI 翻译:陈之炎 校对:王晓颖 本文约1800字,建议阅读8分钟. 每隔一段时间,一些新的机器学习的框架或者库就会改变整个领域的格局.今天,Facebook开源了-DET ...

  2. 再发力!Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]无监督学习再发力!Facebook AI 研究团队的陈鑫磊.樊昊棋.Ros ...

  3. 击败谷歌AI拿下“最强”称号?Facebook AI开源聊天机器人Blender

    如今,我们对虚拟语音助手已经十分熟悉.无论是苹果 Siri.亚马逊 Alexa,还是百度小度,阿里巴巴天猫精灵,在提供帮助之余,还经常扮演着被无聊人类调戏的对象. 就在你来我往的博弈之间,语音助手们练 ...

  4. Facebook AI何恺明等最新研究MoCo(动量对比学习)第二版,超越Hinton的SimCLR,刷新SOTA准确率...

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :专知 AI博士笔记系列推荐 ...

  5. Facebook AI的DETR:一种基于Transformer的目标检测方法

    介绍 机器学习框架或库有时会更改该领域的格局.前不久,Facebook开源了一个这样的框架,DETR(DEtection TRansformer) 在本文中,我们将快速了解目标检测的概念,然后研究DE ...

  6. Facebook AI新架构:全景FPN,同时完成图像实例与语义分割 | 极客头条

    参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑ 整理 | 刘旭坤.Jane 出品 | AI科技大本营(id:rgznai100) 实例分割和语义分割长期以来都是运用不同的神经网络架构来完成的, ...

  7. Paper:2020年3月30日何恺明团队最新算法RegNet—来自Facebook AI研究院《Designing Network Design Spaces》的翻译与解读

    Paper:2020年3月30日何恺明团队最新算法RegNet-来自Facebook AI研究院<Designing Network Design Spaces>的翻译与解读 导读: 卧槽 ...

  8. Paper之RegNet:《Designing Network Design Spaces》的翻译与解读—2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet

    Paper之RegNet:<Designing Network Design Spaces>的翻译与解读-2020年3月30日来自Facebook AI研究院何恺明团队最新算法RegNet ...

  9. 让手机跑SOTA模型快8倍!Facebook AI开源最强全栈视频库:PyTorchVideo!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨新智元 编辑丨极市平台 导读 时隔一年,Facebook AI ...

最新文章

  1. 提高C++性能的编程技术笔记:构造函数和析构函数+测试代码
  2. Java做爬虫也很牛
  3. 饥荒联机版连不上服务器_饥荒联机版不搜索房间直连服务器教程 搜索不到房间怎么办_游侠网...
  4. Django中配置自定义日志系统
  5. 玩转Win10的45个快捷键
  6. Thrown KeeperErrorCode = Unimplemented for /services exception
  7. 为何被主流抛弃-江西IDC机房价格为何居高不下缺少竞争力-2014年5月江西IDC排行榜...
  8. dll 源码_重新编译mono——Android动态更新dll
  9. c1200 写频软件_摩托罗拉XIR C1200数字对讲机试用——来自HAM族的呼叫
  10. JVM PermGen –您在哪里?
  11. 腾讯云AI应用产品总监王磊:AI 在传统产业的最佳实践
  12. 邻接矩阵实现(有向邻接矩阵)、(无向邻接矩阵) 基于C++
  13. ADS2017用分立电容电感匹配实例
  14. 布隆过滤器与布谷鸟过滤器(经典版)
  15. 计算机系统死机,为何电脑一进入系统就死机?
  16. 非线性方程模型及求解实例
  17. 拼多多 果园api分析 拼多多 anticontent 解密
  18. jadx反编译程序未响应
  19. Ubuntu 20.04 : 几个BT下载软件和命令
  20. LTE: CSI 上报

热门文章

  1. 书评与访谈:the Scrumban [R]Evolution
  2. hibernate笔记
  3. CentOS安装编译环境
  4. echarts柱状图x轴文字换行_深入 echarts 如何设置 Label / axisLabel 换行及自定义格式 / 自定义样式? 结合 canvas 如何实现文字换行来理解...
  5. java wms open,OpenLayers - 调用WMS安全层
  6. Java中山脉的绘制---递归方法
  7. 什么是RSS订阅 Really Simple Syndication(聚合)
  8. TensorFlow里,shape=(?, 120)里的问号是怎么回事呢
  9. java.lang.instrument 学习(一)
  10. 按ctrl+shift 无法切换输入法了