摘要
不受图像失真或天气条件影响的目标检测能力,对于自主驾驶等深度学习的实际应用至关重要。我们在这里提供了一个易于使用的基准来评估当图像质量下降时目标检测模型的性能。由此产生的三个基准数据集(称为Pascal-C、co- c和cityscaps - c)包含各种各样的图像损坏。我们证明了一系列标准的目标检测模型在损坏的图像上存在严重的性能损失(下降到原始性能的30-60%)。然而,一个简单的数据增强技巧——对训练图像进行风格化——可以显著提高破坏类型、严重性和数据集的健壮性。我们展望我们的全面基准,以跟踪未来的进展,建立健全的目标检测模型。
1、简介
在不久的将来的某一天:自动驾驶汽车正在世界各地的街道上蜂拥而至,不知疲倦地收集数据。但在这个寒冷的11月下午,交通突然停止,因为突然开始下雪:冬天来了。巨大的雪花从天而降,自动驾驶汽车的摄像头无法识别周围环境,导致紧急刹车。一天后,一个调查交通意外灾难表明,大尺寸的雪花是混乱的原因:尽管先进的视觉系统训练在各种常见的天气类型,他们的训练数据几乎不包含任何这种规模的雪花……
这个虚构的例子突出了卷积神经网络(CNNs)遇到不明确属于其训练机制的设置时所产生的问题。例如,最先进的目标检测算法,如Faster R-CNN,在向图像中添加雪时无法识别目标(如图1所示),即使这些目标仍然清晰可见。与此同时,对数据进行若干不同方式的增强不足达到通用的鲁棒性来对抗以前未知的恶劣情况。最近的研究表明,尽管CNNs被训练用于各种各样的其他失真,但它很难推广到新的失真类型。即使是一个无害的分布变化,例如从训练时的小雪花过渡到测试时的大雪花,也会对当前的视觉系统产生强烈的影响。
作为一个例子,自驾车辆需要能够应对变化多端的户外条件如雾、霜、雪,沙尘暴,或落叶,只列出了其中的一些(如图2)可视化。自动汽车的一个主要原因还没有变成主流是不能识别的模型函数在不良天气条件。许多常见的环境条件可以(并且已经)建模,包括雾、雨、雪和白天和黑夜的过渡。然而,不可能预测“在野外”可能发生的所有潜在情况。
如果我们能够构建出对所有可能的图像损坏都具有鲁棒性的模型,天气变化就不会成为问题。然而,为了评估模型的健壮性,首先需要定义一个度量。在测试模型的集合所有可能的损坏类型是不可能的,我们认为一个有用的近似评估模型在各种各样的恶略情况没有训练数据的一部分:如果一个模型处理与十几个恶略情况,它从未见过的,我们希望它能够很好地应对另一个类型的恶略情况。在这个工作中,我们提出三个易于使用的数据集分别为PascalC、Coco-C和Cityscapes-C来评估目标检测中的失真鲁棒性。Cityscapes-C 评估失真的鲁棒性每个数据集包含原始对象检测数据集的版本,这些数据集有15个失真,每个失真度跨越5个严重级别。这种方法直接受到Hendrycks和Dietterich的启发,他们引入了常用分类数据集(ImageNet-C、CIFAR10-C)的损坏版本作为标准基准。在对这些基准数据集上的标准目标检测算法进行评估之后,我们展示了一种简单的数据增强技术——对训练图像进行风格化——如何在破坏类型、严重程度和数据集之间显著提高鲁棒性。
1.1、贡献
我们的贡献可以总结如下:
- 我们证明了广泛的目标检测和实例分割模型在损坏的图像上存在严重的性能损失。
- 为了量化这种行为并跟踪未来的进展,我们提出了鲁棒的检测基准,它由三个基准数据集组成,称为Pascal-C、co- c和cityscaps - c。
- 我们展示了一种简单的数据增强技术——对训练数据进行风格化——可以在不增加任何额外标签成本或架构更改的情况下,对所有评估的错误进行大规模的鲁棒性改进。
- 我们使我们的基准,恶略情况和程式化代码公开可用,在一个易于使用的范式。
- 基准,数据和数据分析在
https://github.com/bethgelab/robust-detection-benchmark
- 我们的pip可安装映像损坏库在
https://github.com/bethgelab/imagecorruptions
- 代码,以风格化任意数据集提供在
https://github.com/bethgelab/stylize-datasets
1.2、相关工作
基准测试恶劣环境鲁棒性:近年来,有几篇论文研究了DNN对常见恶略性的脆弱性的效果。道奇和卡拉姆测试了四种最先进的图像识别模型在非分布数据上的性能,结果表明,DNNs特别容易受到模糊和高斯噪声的影响。Geirhos等研究表明,当扰动水平在大范围的相关类型中增加时,DNN在识别损坏图像时的性能下降得比人类快得多。Azulay和Weiss研究了几种最先进的DNN对小变换的不变性。Hendrycks和Dietterich最近提出了一个评估常见恶略环境识别模型鲁棒性的基准。
提升恶略环境鲁棒性:恢复损坏数据的性能下降的一种方法是对数据进行预处理,以消除损坏。Mukherjee等提出了一种基于CNN的方法来恢复多雨和多雾图像的质量。Bahnsen和Moeslund以及Bahnsen等人提出了一种从图像中去除降雨的算法作为预处理步骤,并报告了随后识别率的提高。这些方法面临的一个挑战是,噪声去除目前只针对某一种失真类型,因此不能推广到其他类型的失真。另一项工作是通过数据扩充来提高分类器的性能,即直接将损坏的数据包含到训练中。Vasiljevic等研究了分类器对模糊图像的脆弱性,并通过对模糊图像进行微调来提高其性能。Geirhos等研究了不同恶劣类型之间的泛化,发现对一种恶劣类型进行微调并不会提高其他腐败类型的绩效。Geirhos等人在ImageNet数据集的一个样式化版本上训练了一个识别模型,报告说由于更倾向于忽略纹理和关注目标形状,增强了对不同腐蚀的总体鲁棒性。Hendrycks和Dietterich报告了几种提高恶劣基准性能的方法:直方图均衡化、多尺度网络、对抗Logit配对、特征聚合和更大的网络。
评估自动驾驶对环境变化的鲁棒性:近年来,天气状况已经成为目前最先进的自动驾驶系统的一个主要限制因素。虽然有许多具体的方法,如模拟天气条件或收集具有不同天气条件的真实和人工数据集,但还没有出现针对这个问题的通用解决方案。Volk等人考虑了自动驾驶环境下CNNs的鲁棒性分析和优化问题。Volk等人以Hospach等人的研究为基础,研究了雨图像目标检测模型的脆弱性,识别出模型失效的角点,并将人工降雨变化的图像纳入训练集,他们报告了真实雨图像的性能增强。von Bernuth等人报道了一个训练在KITTI数据集上的循环滚动卷积网络的AP下降,当摄像机图像被挡风玻璃上的模拟雨滴修改时。von Bernuth等人模拟了逼真的雪和雾条件,以增强真实和虚拟视流。当对损坏的数据进行评估时,它们报告了对象检测模型的显著性能下降。Pei等人介绍了VeriVis框架,该框架使用真实世界中的图像损坏(如亮度、对比度、旋转、平滑、模糊等)来评估不同目标识别模型的安全性和鲁棒性。
2、方法
2.1、鲁棒检测基准
我们在ImageNet-C目标分类基准的启发下引入了鲁棒性检测基准,以评估对损坏图像的对象检测鲁棒性。
恶劣类型:在Hendrycks和Dietterich之后,我们提供了15种恶劣环境,每种恶劣环境的严重程度各为5个级别(见图3),以评估各种不同类型的腐败对目标检测模型的影响。腐败分为四类:噪声、模糊、数字和天气。需要注意的是,损坏类型不是用来作为训练数据增强工具箱的,而是用来度量模型对以前不可见的错误的健壮性。为了模型验证的目的,还提供了ImageNet-C中额外的四种out -out损坏类型,尽管它们没有用于评估鲁棒检测基准上的性能。
基准数据集:在众多可用的目标检测数据集中,我们选择使用Pascal VOC和Cityscapes作为最常用的目标检测和街景数据集。我们按照常规选择测试分割(VOC2007测试集用于Pascal-C, Coco 2017验证集用于Coco- C, Cityscapes验证集用于Cityscaps - c)。
性能度量:由于原始数据集之间的性能度量不同,因此采用数据集特定性能(P)度量,定义如下:
mathrm{P}:=left{begin{array}{ll} operatorname{AP}^{50}(%) & text { Pascal VOC } \ operatorname{AP}(%) & text { MS Coco } \ operatorname{AP}(%) & text { Cityscapes } end{array}right.
其中AP代表“平均精度”度量。在损坏的数据上,基准测试的表现以损坏情况下的平均表现(mPC)来衡量:
mathrm{mPC}=frac{1}{mathrm{~N}_{c}} sum_{c=1}^{mathrm{N}_{c}} frac{1}{mathrm{~N}_{s}} sum_{s=1}^{mathrm{N}_{s}} mathrm{P}_{c, s}
其中,P_c,s为在严重级别s下,对c破坏的测试数据进行的数据集特异性性能度量,N_c = 15, N_s = 5分别表示破坏的数量和严重级别。为了度量损坏下的相对性能下降,引入损坏下的相对性能(rPC)定义如下:
mathrm{rPC}=frac{mathrm{mPC}}{mathrm{P}_{text {clean }}}
rPC度量损坏数据的性能相对于干净数据的性能的相对下降。
递交:提交给基准测试的内容应该作为一个简单的拉请求提交给健壮检测基准测试4,并且需要包含所有三个性能度量:清洁性能(P)、腐败下的平均性能(mPC)和腐败下的相对性能(rPC)。而mPC的指标用于等级模型健壮的检测基准,其他措施提供额外的洞察性能增加的原因,因为他们解决收益更高的清洁性能(以P)和收益更好的泛化性能损坏数据(以rPC)。
Baseline模型:我们提供了一组常见目标检测模型的baseline结果,包括Faster R-CNN、Mask R-CNN、Cascade R-CNN、Cascade Mask R-CNN、RetinaNet和Hybrid Task Cascade。我们使用ResNet50和Feature Pyramid Networks作为所有模型的骨干,除了Faster R-CNN,我们还测试了ResNet101、ResNeXt101-32x4d和ResNeXt-64x4d的骨干。附录C中我们还提供了Faster R-CNN和Mask R-CNN模型的结果。我们将稳健性基准集成到mmdetection toolbox中,并训练和测试所有具有标准超参数的模型。详细信息可以在附录A部分和健壮检测基准页面中找到。
2.2、类型迁移作为数据增强
在图像分类方面,样式转移(将图像的内容与另一图像的样式相结合的方法)已被证明可以极大地提高鲁棒性。在这里,我们将此方法转移到对象检测数据集,测试两个设置:1.用程式化的版本替换每个训练图像。2. 将每个图像的风格化版本添加到现有数据集。我们应用AdaIN超参数hyperparameterα= 1训练数据,替换原有的纹理与随机选择纹理Numbers5 Kaggle的画家的信息数据集。图4给出了Coco图像风格化的例子。我们在https://github.com/bethgelab/styliize -datasets上为任意数据集的样式化提供了现成的代码。
3、结果
3.1、图像损坏会降低模型性能
为了评估图像损坏的影响,我们在第2节定义的三个基准数据集上评估了一组常见的目标检测模型。相对于Pascal VOC中相对简单的图像,Faster R-CNN可以保留大约60%的相对性能(rPC),而同样的模型在Cityscapes数据集上的相对性能(rPC)却大幅降低到33%,而Cityscapes数据集包含许多小目标。通过一些变化,这种效果出现在所有测试的模型中,也适用于实例分割任务(实例分割结果请参见附录3)。
3.2、用骨干容量来提升鲁棒性
加强骨干力量建设。似乎几乎所有的损坏(除了模糊类型)都会对编码器造成固定的惩罚,这与baseline性能无关。对于两种不同骨架∆mPC≈∆P的模型(对比表1和附录图10)。因此,在损坏的情况下,更强大的骨干导致相对性能的提高。支持这一发现在调查模型与可变形的旋转(见附录C)和当前最先进的模型混合任务级联,它不仅在干净数据上比最强的基线模型高出9% AP,而且在损坏数据上与自己的距离也相差相似,在损坏(rPC)下达到领先的相对性能64.7%。然而,并不是所有的变更都导致类似的改进。Cascade R-CNN从复杂的头部结构中获得性能提升,但相对于Faster R-CNN,它并没有表现出相对的性能提升。这说明改进的鲁棒性主要来自于图像编码,如果原始编码受到足够的破坏,较好的头部结构无法提取更多的信息。
3.3、对程式化数据的训练提高了鲁棒性
为了减少上述模型性能受到的严重影响,我们测试了一种简单的方法(对训练数据进行风格化)是否能够提高鲁棒性。我们用三种不同的训练数据方案评估了完全相同的模型(Faster R-CNN)(如图4所示):
- 标准:各数据集未经修改的训练数据
- 程式化:训练数据完全程式化
- 组合:将标准和程式化的训练数据连接起来
图5显示了我们的三个数据集Pascal-C、Coco-C 和Cityscapes-C 的结果。我们观察到Geirhos等人报道的在ImageNet上进行目标分类的类似模式——一个训练于样式化数据的模型比只训练于原始“干净”数据的模型受到更少的损坏。然而,它在干净数据上的性能要低得多。将风格化的数据和干净的数据结合起来似乎可以达到两全俱美的效果:干净数据上的高性能,以及损坏下的性能显著提高。从表2的结果可以看出,程式化训练和组合训练都提高了损坏(rPC)下的相对绩效。在损坏(mPC)条件下,对所有三个数据集,联合训练的绝对性能最高。这种模式对于每种损坏类型和严重程度都是一致的,只有一个例外。附录中报告了不同损坏类型的详细结果(图7、图8和图9)。
3.4、性能下降并不简单地随微扰大小伸缩
我们研究了损坏对图像像素值的影响与损坏对模型性能的影响之间是否存在直接关系。图6显示了Faster R-CNN对Pascal-C中腐蚀的相对性能,依赖于用均方根误差(RMSE)测量的扰动大小。可以看出,没有这样简单的关系。例如,脉冲噪声只改变了少量的像素,但对模型的性能有很大的影响,而亮度或雾改变了所有的像素值,但对模型的性能影响很小。然而,腐败对模型性能的影响似乎与腐败组(噪音、模糊、数字或天气)之间存在关系。例如,与模糊腐蚀相比,数字腐蚀对性能的影响似乎要小得多。
4、讨论
我们在这里展示了目标检测和实例分割模型在损坏的图像上遭受了严重的性能损失,这种模式以前在图像识别模型中已经被观察到。为了跟踪这一重要问题的未来进展,我们提出了鲁棒检测基准,其中包含三个易于使用的基准数据集Pascal-C、Coco-C和Cityscaps - C。除了提供用于比较未来模型和技术的基线之外,我们还演示了一个简单的数据增强技术(添加一个训练数据的程式化副本,以减少模型对纹理信息的关注)如何带来强大的健壮性改进。对于损坏的图像,我们一致地观察到性能的提高(大约10 0 40%),而干净数据的损失很小(0-0.2%)。这种方法的优点是它可以应用于任何图像数据集,不需要额外的标签或模型调优,因此基本上是免费的。与此同时,我们的基准数据显示,还有改进的空间,而最有希望的健壮性增强技术是需要架构修改、数据增强方案、对损失函数的修改,还是这些技术的组合,还有待确定。我们鼓励读者以新颖的损坏类型扩展基准。为了实现健壮的模型,对各种不同的图像损坏进行测试是必要的,没有“太多”。由于我们的基准是开源的,我们欢迎新的损坏类型,并期待您的拉请求https://github.com/bethgelab/imagecorruptions!我们设想我们的综合基准来跟踪未来的进展,以建立可靠的目标检测模型,可以“在野外”可靠地部署,最终使它们能够应对意想不到的天气变化、各种损坏,如果有必要,甚至偶尔的蜻蜓。