Amir Rosenfeld、Richard Zemel、John K. Tsotsos作者刘晓坤 王淑婷 张倩编译

「房间里的大象」:让目标检测器一脸懵逼

可靠的图像理解系统对于自动驾驶、医学成像等应用至关重要。对抗样本被认为是一种有针对性的小型扰动。约克大学和多伦多大学的研究者在本文中展示了另一种扰动。与对抗样本相反,这些扰动不受范数的约束。它们把一幅图像中的物体放置(「移植」)到另一幅图像的新位置。这种做法对目标检测器的结果有多种非局部影响,比如房间里走动的大象让目标检测器把沙发认成椅子,或让杯子、书消失。本文通过一系列实验证明了这一点,并提出了一些可能的解释。

Gary Marcus 在其推特上评论道:这个针对机器学习系统鲁棒性的技术问题给自驾汽车的实现提出了相当大的挑战。

实验

作者从一些定性结果开始。图 1(a)展示了一种当前最优目标检测方法(具备 NASNet 骨干网络 [20] 的 Faster-RCNN [9])应用于来自 Microsoft COCO 目标检测基准 [6] 的客厅图像的结果,目标检测器是在该基准数据集上训练的。作者利用真实数据,从另一幅图像中提取了一个目标(大象)及其掩码,并将其「移植」到客厅图像的不同位置上。作者把移植的目标称为 T。结果可以在图 1 b-i 中看到。当目标 T 沿着图像平移时,作者发现了几个有趣的现象:

  1. 检测不稳定:目标有时无法被检测到,或者能够被检测到但置信度出现急剧变化。

  2. 目标 T 被检测到的身份不一致(在图 1-f 中被当成椅子):根据位置变化,目标可能被检测为各种不同的东西。

  3. 目标带来非局部影响:未与 T 重叠的目标可能会变换类别、边界框,或者完全消失。

图 1:在房间中检测一只大象。(a): 当前最优目标检测器在客厅图像里检测到多个目标;(b,d,e,g,i):移植的目标(大象)在很多情况下和任意位置未被检测到;(f): 目标类别被误认为是「椅子」。该目标(大象)具有非局部影响,导致其它目标消失(图 d、f 中的杯子,e、i 中的书)或变换类别(图 e 中的椅子被误认为是沙发)。

论文:The Elephant in the Room 

论文链接:https://arxiv.org/abs/1808.03305

摘要:我们展示了一系列当前最优目标检测器的常见故障。这些故障是通过用包含训练目标的另一个子图像替换图像子区域而获得的。我们将这种做法称为「目标移植」(object transplanting)。结果表明,以这种方式修改图像会对目标检测造成非局部影响。根据目标检测器的结果,目标位置的微小变化会影响目标以及图像中其他对象的类别确认。对此,我们提供了一些分析,并提出了一些可能的解释。

实验中采用的图像均来自 MS-COCO 数据集 2017 版的验证集。除非另有说明,我们采用的所有模型均来自 Tensorflow 目标检测 API [5]。因此,我们的实验易于复现,并且可以访问一组不同的当前最优目标检测架构。此外,如无特殊情况,我们仅使用在 MS-COCO 上训练的模型。这些模型可以从相应的 API 网页下载,还可以利用官方提供的代码将模型应用于图像。表 2 列出了我们使用的模型。

测试图像生成: 图 1 中的例子看起来有点不自然,我们提供了更多随机生成的例子。简而言之,通过挑选一对随机图像 I、J,将随机目标从图像 J 移植到图像 I 中,然后测试目标检测的效果。

表 2:实验中所用模型,及其平均准确率(mAP)。

共现目标

我们已经展示了随机选择一对图像和待移植目标的结果。可以说,想让一个从未在同一图像中看到两个类别组合的网络能够在测试时成功地处理此类图像有点期望过高。我们认为,无论是在实际中还是理论上,要求每对目标类别在训练集中共现都是不合理的。当然,这对人类来说要求不高。人类不依靠语境也能识别物体,尽管需要的时间更长 [2]。

然而,我们现在转向生成另一个极端的图像:我们从图像中复制一个目标,并将其复制到同一图像中的另一个位置。图 2 显示了 4 幅随机挑选图像的生成图像的检测结果。我们看到,这种效果也发生在这些图像上。部分遮挡和语境似乎在这里发挥了作用。例如,在(b)栏的最下面一行,当靠近电视机时,牛的脚会变成「遥控器」。当植物的一部分被遮挡(d 栏,最后 2、3 行),但一个人的手在附近时,植物的底部被检测为手提包或杯子。图 2 中的结果都是使用 faster_rcnn_nas_coco 模型生成的。

图 2:把目标从图像的某个位置移植到该图像另一位置的效果。最上一行:原始检测。后续每一行:通过复制移植目标,相对于前一行新检测到的目标。

特征干扰 

以下将展示特征干扰对检测过程的不利影响,这可能是对检测误差的合理解释。例如,考虑图 3(a)中的检测结果。一只部分可见的猫被检测到并归类为斑马。我们证实,从不属于实际目标(cat)的像素中获得的特征对指定的类有影响。这点同样适用于目标感兴趣区域(ROI)以内及以外的像素:在图 3(b)中,我们将边界框外的所有像素都设置为零。检测结果不变。当我们把边界框内的像素也归零,留下属于猫的像素时,得到的标签也会变成「猫」。这显示了 ROI 内像素的影响。然而,当我们将 ROI 之外的背景强度随机化时,标签会变成「狗」。这表明 ROI 之外的特征会影响检测的最终结果。此次实验是用 Yolov3[8] 方法的 PyTorch 端口执行的,速度非常快,产生的结果与目标检测的最新水平相当。这种情况下的最终分类需要依赖来自卷积层单个网格单元的特征。

图 3:特征干扰。(a):一只部分可见的猫被检测为斑马;(b):丢弃检测边界框外的所有像素并不能固定对象的分类,这表明 ROI 内的特征可能会导致混淆;(c):丢弃 ROI 内的所有非「猫」像素也会导致固定的分类;(d):在边界框之外的范围内添加随机噪声再次导致错误的检测结果,显示了 ROI 外特征的影响。

超出检测范围的全局影响

在一项初步实验中,我们将几张没有检测到任何物体的图像上传至谷歌的 Vision API 网站。这些图像是任意挑选的。本文中呈现出实验结果,因为我们发现它值得进一步探索。似乎其方法的 OCR 部分对移植目标也表现出惊人的非局部影响。图 4 显示了这一点:键盘放置在图像的两个不同位置。尽管每个位置中键盘都远离标志,但在每种情况下,标志的检测结果都是不同的。

图 4:谷歌 OCR 上目标移植的非局部影响。放置在图像中两个不同位置的键盘会导致对右侧标志中文本的不同解释。顶部图像的输出是「dog bi」,底部是「La Cop」。

讨论

我们提出了当前目标检测器出现这些奇异行为的几个可能原因。尽管我们报告了很多种现象,我们相信这些现象不是独立的,某些现象之间存在一些共同的潜在原因。

部分遮挡:人们普遍认为部分遮挡目前仍然是目标检测器的一大挑战。能应对部分遮挡被认为是泛化的良好信号。实际上,我们测试的很多现代目标检测器都对部分遮挡具备很高的鲁棒性。

上下文推理:对目前的目标检测器而言,明确地考虑语义级别的上下文并不常见,这意味着目标类别之间的相互作用以及它们的相对空间布局(或可能的额外关系)是被编码在网络的推理过程中的。尽管很多方法声称整合了上下文推理,但更多地是在特征层面上,意味着全局图像信息在某种程度上编码在每一次推断中。这和以前流行的明确使用上下文推理的研究相反。

特征干扰:现代目标检测器使用从卷积层中获得的特征来生成最终的目标类别和边框预测。这些区域的尺寸是固定或矩形的。ROI 池化运算在感兴趣区域的卷积特征图子窗口上执行特征的最大池化。这种运算受到以下事实的影响:

  1. 感兴趣区域是矩形的。这意味着不属于目标的区域部分也会被池化,包括背景外观以及目标外观。

  2. 特征图的每个部分可能拥有一个很大的有效感受野。在实践中,这意味着特征是从检测目标的边框以外池化得到的。

一方面,来自目标周围的特征可以提供有用的语境线索来提升目标检测,特别是对于那些由于尺寸、部分遮挡等原因而不能提供足够信息的目标。另一方面,一味将额外特征混合至最终类别分数可能会影响结果的正确性。

其它可能原因还包括:超出样本分布、缺乏信号完整性、非极大值抑制等(详见原文)。

我们相信特征干扰(如图 3 所示)可能是多数观察到的现象的根本原因,而那些由于部分遮挡或语境推理导致的现象则可能是该问题的特殊案例。

理论图像理解攻击
3
相关数据
对抗样本技术
Adversarial examples

对抗样本是一类被设计来混淆机器学习器的样本,它们看上去与真实样本的几乎相同(无法用肉眼分辨),但其中噪声的加入却会导致机器学习模型做出错误的分类判断。

范数技术
Frobenius Norm

范数(norm),是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。半范数反而可以为非零的向量赋予零长度。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

池化技术
Pooling

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

自动驾驶技术
self-driving

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

验证集技术
Validation set

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

准确率技术
Accuracy

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

推荐文章