赞
踩
摘要: 我们提出了一种使用合成图像训练深度神经网络进行物体检测的系统。为了处理现实世界数据的可变性,系统依赖于域随机化技术,其中模拟器的参数 - 例如照明,姿势,对象纹理等 - 在非现实中随机化强迫神经网络学习感兴趣对象的基本特征的方法。我们探讨了这些参数的重要性,表明只使用非艺术生成的合成数据就可以生成具有引人注目的性能的网络。通过对实际数据进行额外微调,网络比单独使用真实数据产生更好的性能。这一结果开辟了使用廉价的合成数据来训练神经网络的可能性,同时避免了收集大量手工注释的现实世界数据或产生高保真合成世界的需要 - 这两者都是很多应用。该方法在KITTI数据集上对汽车的边界框检测进行评估。
训练和测试深度神经网络是一项耗时且昂贵的任务,通常涉及收集和手动注释大量数据以进行监督学习。当任务需要专家知识,难以手动指定的标签或难以大量捕获且具有足够多样性的图像时,此要求是有问题的。例如,一个人可能会花费大量的时间去标注单个图像用于3D姿势或者像素分割。
克服此限制的有希望的方法是使用图形模拟器来生成自动标记的数据。近年来已经创建了几个这样的模拟数据集[1,9,4,18,24,36,19,27,26,7,21,33]。在大多数情况下,这些数据集的生成成本很高,需要艺术家详细模拟特定环境。这些数据集已成功用于训练网络中的几何问题,如光流,场景流,立体视差估计和相机姿态估计。
即使对这种前所未有的高保真地面实况数据进行访问,如何有效地利用这些数据训练神经网络在真实图像上运行并不明显。特别是,产生光学质量所需的费用否定了合成数据的主要卖点,即任意大量的标记数据基本上是免费的。为了解决这个问题,域随机化[32]是最近提出的一种低成本的方法,它通过以非真实感方式随机扰动环境(例如,通过添加随机纹理)来强制放弃照片写实,以迫使网络学习专注于图像的基本特征。这种方法在诸如检测桌子上均匀彩色立方体的3D坐标[32]或确定室内四轴飞行器的控制命令[28]以及光流[4]和场景流[18]等任务中已经成功地展示出来。
在本文中,我们将域随机化(DR)扩展到检测现实世界对象的任务中。特别是,我们有兴趣回答以下问题:1)合成数据的DR能否在真实数据上获得令人信服的结果? 2)在训练期间使用真实数据增加DR能提高准确度吗? 3)DR的参数如何影响结果? 4)DR如何与更高质量/更昂贵的合成数据集进行比较?在回答这些问题时,这项工作有以下几点:
•将DR扩展到有意义的任务里,例如在复杂背景前检测真实物体;
•引入新的DR组件,即飞行干扰器,提高检测/估计精度;
•调查DR的参数以评估其对这些任务的重要性;
如实验结果所示,当仅使用合成DR数据进行训练时,我们可以在实际任务中获得竞争结果。例如,我们的基于DR的汽车探测器在KITTI数据集上获得的结果比在虚拟KITTI [7]上训练的相同架构更好,即使后一数据集与测试集高度相关。此外,通过微调实际数据来增加合成DR数据比仅仅对真实KITTI数据的训练产生更好的结果。
近年来,用于训练和测试深度神经网络的合成数据的使用越来越受欢迎,大量此类数据集的可用性证明了这一点:飞行椅[4],FlyingThings3D [18],MPI Sintel [1], UnrealStereo [24,36],SceneNet [9],SceneNet RGB-D [19],SYNTHIA [27],GTA V [26],Sim4CV [21]和Virtual KITTI [7]等。这些数据集是为了几何问题而生成的,例如光流,场景流,立体视差估计和相机姿态估计。
虽然这些数据集中的一些还包含用于对象检测和语义分割的标签,但是几乎没有网络在面对这些任务时只使用合成数据训练。 Hinterstoisser等人[11]使用通过将高斯噪声添加到感兴趣对象并且在构成背景图像之前高斯模糊对象边缘而生成的合成数据。得到的合成数据用于训练神经网络的后期层,同时冻结在实际数据(例如,ImageNet)上预训练的早期层。相比之下,我们发现这种冻结重量的方法是有害的,而不是有用的,如后面所示。
Johnson-Roberson等人的工作[15]使用真实照片的合成数据来训练在KITTI数据集上测试的汽车探测器。这项工作与我们的工作密切相关,主要区别在于我们使用域随机化而真实感图像。我们的实验结果揭示了类似的结论,即合成数据可以匹敌,在某些情况下,可以击败用于训练神经网络的真实数据。此外,我们通过在合成数据训练后对实际数据进行微调,显示出明显的好处。其他非深度学习工作使用合成3D模型的强度边缘来检测孤立的汽车,可以在[29]中找到。
作为高保真合成图像的替代方案,Tobin等人引入了域随机化(DR)[32],他建议通过生成具有足够变化的合成数据来弥合现实差距,网络将现实世界数据视为另一种变化。使用DR,他们训练神经网络来估计各种基于形状的物体相对于固定在桌子上的机器人臂的3D世界位置。 DR的引入受到了Sadeghi和Levine [28]的早期工作的启发,他们使用合成图像训练四轴飞行器在室内飞行。用于光学流和场景流算法的飞行椅[4]和FlyingThings3D [18]数据集可以看作是域随机化的版本。
还探索了DR的使用以训练机器人控制策略。詹姆斯等人的网络[13]用于使机器人挑选一个红色立方体并将其放在一个篮子里,而Zhang等人的网络[35]用于将机器人定位在蓝色立方体附近。其他工作探讨了从高保真渲染引擎学习机器人策略[14],通过程序方法生成高保真合成数据[33],或者从3D CAD模型中训练对象分类器[22]。与此研究相比,我们的目标是使用合成数据来训练检测复杂的现实世界对象的网络。
域随机化的类似方法是将对象的真实图像(而不是合成图像)粘贴在背景图像上,如Dwibedi等人所提出的[5]。这种方法的一个挑战是以时间有效的方式从背景中准确地分割对象。
我们使用域随机化(DR)生成用于训练神经网络的合成数据的方法如图1所示。我们从感兴趣对象(如汽车)的3D模型开始。随机数量的这些对象被放置在随机位置和方向的3D场景中。为了更好地使网络学会忽略场景中不感兴趣的对象,将随机数量的几何形状添加到场景中。我们称之为飞行干扰者。然后将随机纹理应用于感兴趣的对象和飞行干扰物。在随机位置插入随机数量的不同类型的灯光亮度,并从随机的摄像机视点渲染场景,之后将结果组合在随机背景图像上。具有自动生成的地面实况标签(例如,边界框)的所得图像用于训练神经网络。特别的,图片是通过改变场景的以下几个方面随机生成的:
•从一组36个已下载的通用轿车和舱口车的3D模型中挑选出目标的数量和类型。
•从一组3D模型(锥体,金字塔,球体,圆柱体,部分环形线圈,箭头,行人,
树木等)中选择的干扰物的数量,类型,颜色和比例;
•感兴趣对象上的纹理和背景照片,均来自Flickr 8K [12]数据集;
•虚拟摄像机相对于场景的位置(方位角从0°到360°,仰角从5°到30°);
•相机相对于场景的角度(平移,倾斜,从-30°到30°滚动);
•点光源的数量和位置(从1到12),以及用于环境照明的平面灯;
•地平面的可见度。
请注意,所有这些变化虽然使网络能够实现更复杂的行为,但仍然非常容易实现,除了以前的DR方法之外,只需要很少的额外工作。我们的管道使用内部创建的虚幻引擎插件(UE4),该插件能够以30 Hz的频率输出1200×400图像。
TczNTg1OQ==,size_16,color_FFFFFF,t_70)
我们的DR版本生成的合成图像与高保真虚拟KITTI(VKITTI)数据集[7]的比较如图2所示。尽管我们的原始图像(以及几乎卡通化的图像)并不具有美学上的赏心悦目,但这种明显的限制可以说是一种有利条件:我们的图像不仅可以更快地创建数量级(需要更少的专业知识),而且还包括强制深层神经网络专注于手头问题的重要结构而不是可能存在或不存在的细节的变化在测试时的真实图像中。
为了量化域随机化(DR)的性能,在本节中,我们比较了使用基于DR方法生成的图像训练的DNN与使用虚拟KITTI数据集中的合成图像训练的相同DNN(深度神经网络)这两种方法的结果。现实世界的KITTI数据集[8]用于测试。这三个数据集的统计分布如图3所示。请注意,与现有方法相比,基于DR的方法可以更容易地生成具有大量变化的数据集。
4.1. 物体检测
我们使用开源实现培训了三个最先进的神经网络.在每种情况下,我们都使用了各自作者推荐的特征提取器。这三种网络架构简要描述如下。
Faster R-CNN [25]分两个阶段检测物体。第一阶段是使用提取的特征以及在每个提出的区域中找到对象的可能性的区域提议候选感兴趣区域。在第二阶段,使用建议的区域从图像中裁剪特征并将其馈送到特征提取器的其余部分,该特征提取器预测对象类的概率密度函数以及每个提议的精炼的特定类的边界框。该架构采用端到端的方式,使用多任务损失进行培训。对于训练,我们使用动量[23]值为0.9,学习率为0.0003。在ImageNet [3]上预训练的Inception-Resnet V2 [30]被用作特征提取器。
R-FCN [2]类似于Faster R-CNN。但是,不是从预测区域建议的同一层中裁剪特征,而是在预测之前从最后一层特征中裁剪。这种方法背后的主要思想是尽量减少必须完成的每区域计算量。推理时间比Faster R-CNN快,但精度相当。对于训练,我们使用RmsProp [31],初始学习率为0.0001,衰减步长为10000,衰减因子为0.95,动量和衰减值为0.9,epsilon为1.0。与Faster R-CNN一样,我们使用在Ima- geNet上预训练的Inception-Resnet V2作为特征提取器。 SSD [17]使用单个前馈卷积网络直接预测类和锚定偏移,而不需要第二阶段的每个提议分类操作。然后在预测之后进行非最大抑制步骤以产生最终检测。该架构使用与Faster R-CNN相同的培训策略。我们使用在ImageNet上预训练的Resnet101 [10]作为特征提取器。
SSD [17]使用单个前馈卷积网络直接预测类和锚定偏移,而不需要第二阶段的每个提议分类操作。然后在预测之后进行非最大抑制步骤以产生最终检测。该架构使用与快速R-CNN相同的培训策略。我们使用在ImageNet上预训练的Resnet101 [10]作为特征提取器。
对于我们的DR数据集,我们生成了100K图像,每个图像包含不超过14辆汽车。如前一节所述,每组汽车实例是从一组36个模型中随机挑选的,并且应用了来自8K选项的随机纹理。为了比较,我们使用了由Unity 3D游戏引擎[7]生成的2.5K图像组成的VKITTI数据集。 (虽然我们的方法使用了更多的图像,但这些图像基本上是免费的,因为它们是自动生成的。)请注意,此VKITTI数据集是专门渲染的,目的是尽可能地重新创建原始的真实世界KITTI数据集(用于测试)。
在训练期间,我们应用了以下数据增强:随机亮度,随机对比度和随机高斯噪声。我们还在训练过程中加入了更多经典的增强功能,例如随机翻转,随机调整大小,盒子抖动和随机裁剪。对于所有体系结构,当测试集上的性能得到满足时,停止训练以避免过度拟合,并且仅报告最佳结果。每个架构都在NVIDIA DGX Station上以4为batch大小进行训练。 (我们还训练了Titan X,批量较小,结果相似。)
我们从KITTI数据集中随机抽取的500张图像[8]用于测试。使用平均精度(AP)评估检测性能[6],通过IoU至少0.5测量边界框重叠来判断检测结果为真/假阳性。在这些实验中,我们只考虑具有高度大于40像素且截断低于0.15的边界框的评估对象,如[8] .
表1比较了在使用VKITTI和DR数据集进行训练时三个架构的性能。得分最高的方法,Faster R-CNN,在用VKITTI数据集时比在用我们的数据集时有更好的表现。相比之下,其他方法使用我们的DR数据集获得比使用VKITTI更高的AP,尽管事实上后者与测试集密切相关,而前者是随机生成的。
图4显示了在我们的DR或VKITTI数据集上训练后,KITTI测试装置上最佳检测器(Faster R-CNN)的样本结果。请注意,即使我们的网络从未见过真实的图像(超出ImageNet上早期图层的预训练),它也能够成功检测到大多数汽车。这一惊人的结果说明了DR这样一种简单技术的力量,可以弥合现实差距。
在DR和VKITTI上训练的三种体系结构的查准率-查全率曲线如图5所示。从这些图中可以看出,在所有结构的大多数查全率值相同时,DR实际上始终比VKITTI具有更高的查准率。这有助于解释表1中的明显不一致性。
另一方面,对于高查全率,DR一致地实现了比VKITTI更低的查准率。这可能是由于我们基于DR的数据的分布与真实的KITTI数据之间的不匹配。我们假设我们的简化DR程序可以防止在测试集中观察到的某些变化被生成。例如,我们的程序忽略了图像背景,因此不考虑停放的汽车中的结构。
在另一个实验中,我们探索了在对合成图像进行首次训练后对实际图像进行微调[34]的好处。对于微调,学习率降低了十倍,同时保持其余的超参数不变,允许梯度从端到端完全流动,并且Faster R-CNN网络是训练直到收敛。 VKITTI与DR作为所用实际数据量的函数的结果如图6所示。(作为比较,该图还显示了仅在原始学习率为0.0003的实际图像上训练后的结果。)随着真实图像数量的增加,DR超过VKITTI,可能是由于后者的优势变得不那么重要,因为添加了类似于合成图像的真实图像。通过对所有6000张真实图像进行微调,我们基于DR的方法获得了98.5的AP值,比VKITTI好1.6%,比仅使用2.1%的实际数据更好。
4.2 消融研究
为了研究各个DR参数的影响,本节通过系统地一次一个地省略它们来提供消融研究。对于这项研究,我们使用Faster R-CNN [25]和Resnet V1 [10]在ImageNet上预训练作为特征提取器[3]。对于训练,我们使用50K图像,动量[23]值为0.9,学习率为0.0003。我们使用与早期检测评估相同的性能标准,即在同一KITTI测试集上的AP @ 0.5。
图7显示省略DR方法的各个随机分量的结果,显示这些对检测性能的影响,与基线(“完全随机化”)相比,其达到了73.7的AP。下面详细描述这些分量。
灯光变化. 当灯光随机化但亮度和对比度关闭时(“无光增强”),AP几乎没有下降,AP为73.6。然而,当探测器在固定光(“固定光”)上训练时,AP下降到67.6,因此表明了使用随机光的重要性。
纹理. 当没有随机纹理应用于感兴趣的对象 (“无纹理”) 时, AP下降到 69. 0。当一半的可用纹理 (“4K 纹理”) (即4K 而不是 8K) 被使用时, AP 就会下降到71.5.
数据增强. 这包括随机对比度、亮度、裁剪、翻转、调整大小和加性高斯噪声。该网络实现了72.0 的 AP 时, 增强关闭 (“无增强”)。
飞行干扰物. 这些迫使网络学会了解附近的模式, 并处理感兴趣的对象的部分遮挡。没有它们 (“不干扰”), 性能下降了1.1%。
4.3. 培训策略
我们还研究了预训练权重的重要性、在训练时冻结这些权重的策略以及数据集大小对性能的影响。
预训练. 在这个实验中, 我们使用Faster R-INN 与初始 ResNet V2 作为特征提取器。为了与 ImageNet 上的预训练 (前面描述过)做比较, 这次我们使用COCO [16] 初始化了网络权重。由于 COCO 权重是通过对已经包含汽车的数据集进行训练获得的, 因此我们希望它们能够以合理的精度执行。然后, 我们在 VKITITI 和 DR 数据集上用该初始化开始了对网络进行了训练。
结果如表2所示。首先, 请注意, 仅 COCO 权重就仅达到56.1 的 AP 值, 这表明真正的 COCO 图像对于培训网络在 KITI 数据集上运行不是很有用。事实上, 这是当今网络的一个重大问题, 即它们往往无法从一个数据集转移到另一个数据集。合成数据, 特别是 DR, 有可能通过使网络能够学习特定数据集不变的要素来克服此问题。我们的 DR 方法在用于训练 COCO 预培训的网络时实现了83.7 的 AP, 而在 VKITTI 上的培训实现了79.7 的 AP。因此, DR 使 COCO 和 COCO + VKITTI 的性能分别提高了49% 和5%。
冻结权重. Hinterstorisser等人[11]最近建议在学习合成数据时, 冻结早期网络布局的权重 (即在 Imagenet 上预先训练的特征提取权重)。为了验证这一想法, 我们使用与4.1 节相同的超参数训练了Faster R-CNN 和 R-FCN, 只是我们冻结了从 ImageNet 初始化的权重, 而不是允许它们在训练期间进行更新。如表3所示, 我们发现, 与 [11] 的结果相反,冻结重量以这种方式实际上降低了性能, 而不是提升了性能。这种效果很显着,结果降低了13.5%。我们怀疑, 我们的数据种类繁多, 使我们能够进行充分的训练, 以有利的方式调整这些权重, 因此冻结权重会妨碍这种调整。
数据集大小. 在这个实验中, 我们使用了具有随机初始化权重或初始化 Resnet V2 权重的更快 R-CNN 体系结构。利用这两种模型, 探讨了数据集大小对预测性能的影响。我们使用了前面解释过的相同的数据生成过程。如图8所示的结果令人惊讶地显示, 在预训练过的图像中, 只有10K 左右性能饱和, 或者在没有预先训练的情况下, 在大约50K 之后, 性能会饱和。与 [20] 的发现有些冲突, 我们发现, 即便是1M 图像,预训练也是很有很大的帮助。这一结果可以用我们的训练图像不是逼真的这一事实来解释的。
我们已经证明了,域随机化 (DR) 是弥合现实差距的有效技术。仅使用合成 DR 数据, 我们就训练了一个神经网络来完成复杂的任务, 如对象检测, 其性能可与劳动密集型 (以及成本更高) 的数据集相媲美。DR 在训练过程中随机干扰合成图像, 故意利用光现实主义迫使网络学习关注相关特征。通过对真实图像的微调, 我们已经证明 dr 的性能优于更多的现实照片数据集, 并改进了仅使用真实数据获得的结果。因此, 使用 DR 训练深度神经网络是利用合成数据的力量的一种很有前途的方法。今后应探讨的方向包括使用更多的对象模型, 添加场景结构 (例如停放的汽车), 将该技术应用于纹理重要的物体 (如路标), 以及进一步调查合成数据和真实数据的混合情况从而利用两者的好处。
我们要感谢Jan Kautz,Gavriel State,Kelly Guo,Omer Shapira,Sean Taylor,Hai Lu Lu,Bryan Du-dash和Willy Lau,感谢他们为这项工作提供的宝贵见解。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。