可靠的图像理解系统对于自动驾驶、医学成像等应用至关重要。对抗样本被认为是一种有针对性的小型扰动。约克大学和多伦多大学的研究者在本文中展示了另一种扰动。与对抗样本相反,这些扰动不受范数的约束。它们把一幅图像中的物体放置(「移植」)到另一幅图像的新位置。这种做法对目标检测器的结果有多种非局部影响,比如房间里走动的大象让目标检测器把沙发认成椅子,或让杯子、书消失。本文通过一系列实验证明了这一点,并提出了一些可能的解释。
Gary Marcus 在其推特上评论道:这个针对机器学习系统鲁棒性的技术问题给自驾汽车的实现提出了相当大的挑战。
实验
作者从一些定性结果开始。图 1(a)展示了一种当前最优目标检测方法(具备 NASNet 骨干网络 [20] 的 Faster-RCNN [9])应用于来自 Microsoft COCO 目标检测基准 [6] 的客厅图像的结果,目标检测器是在该基准数据集上训练的。作者利用真实数据,从另一幅图像中提取了一个目标(大象)及其掩码,并将其「移植」到客厅图像的不同位置上。作者把移植的目标称为 T。结果可以在图 1 b-i 中看到。当目标 T 沿着图像平移时,作者发现了几个有趣的现象:
检测不稳定:目标有时无法被检测到,或者能够被检测到但置信度出现急剧变化。
目标 T 被检测到的身份不一致(在图 1-f 中被当成椅子):根据位置变化,目标可能被检测为各种不同的东西。
目标带来非局部影响:未与 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 池化运算在感兴趣区域的卷积特征图子窗口上执行特征的最大池化。这种运算受到以下事实的影响:
感兴趣区域是矩形的。这意味着不属于目标的区域部分也会被池化,包括背景外观以及目标外观。
特征图的每个部分可能拥有一个很大的有效感受野。在实践中,这意味着特征是从检测目标的边框以外池化得到的。
一方面,来自目标周围的特征可以提供有用的语境线索来提升目标检测,特别是对于那些由于尺寸、部分遮挡等原因而不能提供足够信息的目标。另一方面,一味将额外特征混合至最终类别分数可能会影响结果的正确性。
其它可能原因还包括:超出样本分布、缺乏信号完整性、非极大值抑制等(详见原文)。
我们相信特征干扰(如图 3 所示)可能是多数观察到的现象的根本原因,而那些由于部分遮挡或语境推理导致的现象则可能是该问题的特殊案例。