这个方法是谷歌大脑Quoc Le团队,又训练出的一个目标检测模型,通过特别的数据扩增策略,再用自动扩增来的新数据集训练目标检测模型,使该算法在针对小数据集的目标检测上取得了很好的效果。该论文和开源代码如下:
论文传送门:
https://arxiv.org/abs/1906.11172
代码传送门:
https://github.com/tensorflow/tpu/tree/master/models/official/detection
这里是对这篇论文的简单介绍。为方便自己阅读,制作了如下翻译版,有不对的地方请指点。
摘要
数据增强是深度学习模型训练的关键组成部分。虽然数据增强已被证明能显著改善图像分类,但对于目标检测来说它的潜力尚未被彻底的研究。鉴于对图像进行标注以进行目标检测的额外成本,对计算机视觉任务来说,数据增强可能更为重要。在这项工作中,我们研究了数据增加对目标检测的影响。我们首先证明了从图像分类中借用的数据增强操作可能有助于训练检测模型,但改进是有限的。因此,我们研究如何学习,专业的数据增强策略提高通用性能的检测模型。重要的是,这些增强策略只会影响训练,并且在评估过程中不会改变一个经过训练的模型。coco数据集上的实验表明,优化后的数据扩增策略提高了+2.3mAP,并允许单一推理模型达到50.7mAP。更重要的是,在COCO上发现的最佳策略可以不变地转移到其他检测数据集和模型中,以提高预测的准确性。例如,用coco确定的最佳增强策略将pascal-voc提高了+2.7mAP以上。我们的研究结果还表明,即使在考虑强基线的情况下,学习到的增强策略也优于最先进的结构正则化方法。学习策略的训练代码可在网上查阅。
一、介绍
深层的神经网络是强大的机器学习系统,如果在大量数据上进行训练,它们的工作效果最好。为了增加神经网络的训练数据量,许多工作都致力于创造更好的数据增加策略[3,42,21]。在图像域中,常见的增强包括将图像translating(翻译)成几个像素,或水平翻转图像。大多数现代图像分类器都配有手工制作的数据增强策略[21, 44, 16, 18, 56].(论文21的概括说明)
最近的工作表明,从数据中学习最佳政策,而不是手工设计数据增加战略,可以大大改进图像分类模型的推广性能[22、45、8、33、31、54、2、43、37],5]。对于图像分类模型,可以通过一个可以从头创建数据的学习生成器[33、31、54、2、43]或通过学习适用于现有训练集样本的一组转换[5]来增加数据。[37]。对于对象检测模型而言,增加数据量更为重要,因为收集标记的数据用于检测成本更高,普通检测数据集的示例比图像分类数据集要少得多。然而,我们还不清楚如何增加数据:我们是否应该从图像分类直接重用数据增加策略?我们应该如何处理bounding box和包围箱的内容?
在本工作中,我们创建了一组简单的转换,可以应用于对象检测数据集,然后将这些转换转移到其他检测数据集和体系结构。这些转换只在训练期间使用,而不是测试时间。我们的转换包括那些可以应用到整个图像而不影响包围框位置的转换(例如从图像分类模型中借用的颜色转换),在改变包围框位置的同时影响到整个图像的转换(例如,翻译或剪切整个图像),以及只应用于包围框中的对象的转换。当转换的数量变大时,手动有效地组合它们就变得不平凡了。因此,我们搜索专为对象检测数据集设计的策略。实验表明,该方法在不同的数据集、数据集大小、主干体系结构和检测算法中具有很好的性能。另外,我们还研究了增强数据策略的性能如何依赖于搜索空间中包含的操作数量,以及增强技术的有效性如何随着数据集大小的变化而变化。
总之,我们的主要贡献如下:
- 设计并实现一种搜索方法,通过将新的运算与边界框标注相结合,组合和优化对象检测问题的数据增强策略。
- 在一系列检测体系结构和数据集中,显示出交叉验证的准确性的持续增长。特别是,对于单个模型,我们超越了CoCO的最新成果,并在Pascal VOC目标检测上取得了竞争的结果。
- 通过提供一个强大的正则化,以避免在小对象上的过度拟合,突出了所学的数据增强策略对小数据集是如何特别有利的。
二、相关工作
视觉模型的数据增强策略通常是特定的数据集,甚至是机器学习架构。例如,受过mnist训练的最先进的模型使用弹性扭曲,影响到尺度、翻译和旋转[42、4、47、40]。随机裁剪和图像镜像通常用于在自然图像上训练的分类模型[51,21]。在目标检测的数据增强策略中,图像镜像和多尺度训练是应用最广泛的[15]。以对象为中心的种植是一种流行的增加种植方法。有些方法不是把注意力放在图像的某些部分上,而是随机地擦除或添加噪声到图像的补丁中,以提高准确性[9,53,13],健壮性[50,12],或两者兼而有之[29]。同样的,[48]学习每个对象的闭塞模式来创建对抗的例子。除了裁剪和擦除,[10]通过剪切和粘贴在训练图像上添加新的对象。
为了避免数据扩增的数据特异性,最近的工作重点是直接从数据本身学习数据扩增战略。例如,智能增强使用一个网络,通过合并来自同一类别的两个或多个样本来生成新数据[22]。tran等人利用贝叶斯方法,根据从训练集合[45]中获得的分布,生成增强数据。DeVries和泰勒在所学的特征空间中使用了简单的变换,如噪声、插值和外推,以增加数据[8]。ratner等人使用生成对抗网络来生成数据增强操作的序列[37]。最近,一些论文使用了自动增强搜索空间,改进了优化算法,以更有效地找到自动增强策略。
虽然上述方法都在分类问题上起了作用,但我们采取了一种自动化的方法来寻找最佳的数据增强策略来进行对象检测。与分类不同的是,标记用于对象检测的数据更稀缺,因为对检测数据进行注释成本更高。与图像分类相比,开发用于对象检测的数据增强策略更加困难,因为通过扭曲图像、包围框位置和检测数据集中对象的大小引入了更多的方式和复杂性。我们的目标是使用验证集的准确性来帮助搜索新的检测增强程序,使用自定义操作在数据集、数据集大小、主干体系结构和检测算法之间进行推广。
三、方法
我们将数据增强搜索作为离散优化问题来处理,并优化了泛化性能。这项工作扩展了以前的工作重点是对象检测的增强策略。对象检测引入了在包围框位置和扭曲图像之间保持一致性的额外复杂性。包围框注释打开了引入增强操作的可能性,这种操作对每个包围框中的内容具有唯一的作用。另外,我们还探讨了几何变换应用于图像时如何改变包围盒的位置。
我们将扩增策略定义为k个子策略的无序集合。在训练过程中,k子策略之一将被随机选择,然后应用到当前图像中。每个子策略里,有N个图片变换,依次在同一张图上进行。我们通过创建一个搜索空间[5],将搜索一个学习到的增强策略的问题转化为一个离散的优化问题。搜索空间由k=5个子策略组成,每个子策略由n=2种图像变换,按顺序应用于单个图像。另外,每个操作还与两个超参数相关联,指定应用操作的概率和操作的大小。图2(下文本)显示了5门学习到的次级政策。该概率参数在增强策略中引入了一个坚忍的概念,选择的增强操作将被应用到具有指定概率的图像上。
图2:学习的扩充子策略示例。应用于一个示例映像的学习子策略的5个示例。每列对应于对应子的不同随机样本。 政策。增强子策略的每一步都由与操作、应用概率和幅度度量相对应的三重奏组成。对边框进行调整以维护CON。 与应用增强的一致性。注意概率和震级是离散的值(详见文本)。
在几个初步实验中,我们为搜索空间确定了22项操作,这些操作对目标检测是有益的。这些操作都是在张力流中进行的[1]。我们简要地总结了这些操作,但保留附录的细节:
- 色彩运算.扭曲颜色通道,而不影响包围框的位置(例如,均衡,对比,亮度)。
- 几何运算.几何上扭曲图像,相应地改变了包围框注释的位置和大小(如旋转、剪切、平移等)。
- 包围箱操作.只扭曲包围框注释中包含的像素内容(例如,框只相等,框只旋转,框只翻转)。
注意,对于影响图像几何形状的任何操作,我们同样修改了包围框的大小和位置以保持一致性。
我们与每个操作关联一个自定义的参数值范围,并将这个范围映射到一个从0到10的标准化范围。我们将梯度范围离散为L均匀间隔的值,这样这些参数就可以进行离散优化。类似地,我们离散了将操作应用到m均匀间隔值的概率。在初步实验中,我们发现用rl算法设置L=6和m=6可以很好地平衡计算的可跟踪性和学习性能。这样,找到一个好的子策略就变成了在一个包含(22Lm)^2基数的离散空间中的搜索。特别是,要搜索超过5个子策略,搜索空间大约包含(22×6×6)^2×5约等于9.6×10^28的可能性,并且需要有效的搜索技术来导航这个空间。
解决离散优化问题有许多方法,包括强化学习[55]、进化方法[38]和基于序列模型的优化[26]。在本工作中,我们选择将离散优化问题构建为rnn的输出空间,并使用增强学习来更新模型的权重[55]。rnn的训练设置与[55,56,6,5]相似。我们采用近端策略优化(pop)[41]搜索算法。rnn启动了30个步骤来预测单个增强策略。未滚动步骤的数目,30,对应于为枚举5个子策略而必须作出的离散预测的数目。每个子策略由2个操作组成,每个操作由3个预测组成,对应于选定的图像变换、应用概率和变换的大小。
为了训练每个子模型,我们从CoCo训练集中选取了5k图像,因为我们发现直接在整个CoCo数据集上搜索是非常昂贵的。我们发现用这个子集数据识别的策略在提供大量计算节约的同时,也推广到了完整的数据集。简单地说,我们从零开始对每个子模型进行了训练,这些模型是用resnet-50的主干[16]和retinanet探测器[24]用余弦学习速率衰减[30]拍摄的。控制器的奖励信号是一个定制的托管验证集上的mAP,该验证集包含7392图像,创建自CoCo训练集的子集。
rnn控制器接受了超过20K的增强策略训练。搜索使用了400TPU的[20]超过48小时,控制器的超参数与[56]相同。可以利用最近开发的基于人口训练[17]或密度匹配[23]的更有效的搜索方法来加快搜索速度。学习到的策略可以在附录中的表格中看到。
四、Results
我们将我们的自动扩增方法应用到了具有Resnet-50[16]骨干和retinanet[24]的coco数据集上,以便找到良好的扩增策略,推广到其他检测数据集。我们使用在coco上找到的*策略,并将其应用于不同的数据集、数据集大小和体系结构配置,以检查通用性以及策略在有限数据系统中的运行方式。
4.1学习数据增强策略
在5kcoco训练图像上寻找学习到的增强策略,最终产生了将用于我们所有结果的增强策略。在检查时,在良好策略中最常用的操作是旋转,旋转整个图像和包围框。在旋转之后,包围框会变得更大,包括所有旋转的物体。尽管旋转操作有这种效果,但它似乎是非常有益的:它是良好策略中最常用的操作。通常使用的另外两个操作是和(仅可翻译)的。将像素值的直方图对齐,并且不修改每个包围框的位置或大小。只以相等的概率将包围框中的对象垂直、向上或向下翻译。
4.2学习的增强策略系统地改善了对象检测
我们评估比较了CoCO数据集[25]在不同主干网结构和检测算法上的*增强策略的质量。我们从比较RetinaNet对象开始,检测器采用与[13]相同的训练协议。简单地说,我们从零开始训练,全局批量大小为64,图像大小调整为640×640,学习率为0.08,w衰减为1e-4,α= 0.25和γ=1.5的焦损参数,训练150个epoch,采用逐步衰减法,在120和140时,学习速率降低10倍。所有模型都接受了关于TPU的训练。 [20].
本节和后续章节中使用的基线RetinaNet架构主要采用了针对图像分类训练定制的标准数据扩展技术[24]。这包括进行50%概率的水平翻转和多尺度抖动,其中图像在训练期间随机调整大小在512和786之间,然后裁剪到640 x640。
表1和表2显示了我们在上述过程中使用增强策略的结果。在表1中,学习到的增强策略在多个骨干架构师中实现了系统增益。 改善范围从1.6mAP到2.3mAP。相比之下,应用于ResNet-50[13]的最先进的正则化技术获得了1.7%的MAP(表2)。
为了更好地理解增益来自何处,我们将应用到Resnet-50的数据增强策略分为三个部分:颜色操作、几何操作和bbox-only-operation(表 2)。采用颜色运算仅提高了+0.8mAP的性能。将搜索与几何操作相结合可通过+1.9mAP提高性能的提升。最后,在与前几次操作一起使用时,添加包围框特定操作会产生最好的结果,并比基线提高+2.3%mAP。请注意,该策略仅使用5kCoCo训练示例进行搜索,并且在对整个CoCo数据集进行训练时仍然能很好地推广。
4.3.利用所学的增强策略实现最先进的目标检测
一个好的数据增强策略是一种可以在模型之间、数据集之间进行传输的策略,并且可以很好地工作在不同图像大小的模型上。在这里,我们在一个不同的骨干架构和检测模型上实验学习到的增强策略。为了测试学习的策略如何转移到最先进的检测模型,我们用AmoebaNet-D[38]主干替换了ResNet-50主干网络。检测算法由RetinaNet[24]改为NAS-FPN[14].此外,我们还为AmoebaNetD骨干使用ImageNet预训练,因为我们发现在从头开始的训练中,我们无法取得竞争性的成绩。模型损耗为150个epoch,采用余弦学习率衰减,学习速率为0.08。设置的其余部分与ResNet-50相同。 主干模型除图像大小由640×640增加到1280×1280。
表3显示,在竞争、检测架构和设置的顶部,已学习的增强策略提高了+1.5%的mAP。这些实验还表明,增强策略在不同的主干网体系结构、检测算法、图像大小(即640个→1280像素)和训练过程(从头开始的训练→使用imagenet预训练)之间进行了很好的传输。我们可以通过将图像分辨率从1280增加到1536像素来进一步扩展这些结果,并同样增加[49]之后的探测锚的数量。由于这一模式比以前的模式大得多,我们通过将搜索中的前4个政策结合起来,增加了学习型政策中的子政策,从而导致了20个学习型政策的增加
这些简单修改的结果是第一个单阶段检测系统,实现了先进的单模型50.7mAP在coco上的结果。我们注意到,这一结果只需要图像的一次传递,而以前的结果要求在测试时间[32]的不同空间尺度上对同一图像进行多次评价。此外,这些结果是通过提高图像分辨率和增加锚锚的数量来获得的,这些锚都是为了提高目标检测性能[49,19]。与此相反,以前的最新成果依靠的是对模型结构和正则化方法的大致多重定制修改,以实现这些成果[32]。我们的方法在很大程度上依赖于一个更现代的网络架构和一个学习到的数据增强策略。
4.4.学习的增强策略转移到其他检测数据集。
为了评估完全不同的数据集和另一种不同的检测算法的可移植性,我们在PASCAL VOC数据集上用ResNet-101骨干网训练了一个Faster R_CNN模型。我们比较了Pascal VOC 2007和Pascal VOC 2012的训练集,并在Pascal VOC 2007测试集(4952张图像)上进行了测试。我们的评价标准是平均精度。对于基线模型,我们使用TensorFlow对象检测API[19]和默认的超参数:9个GPU工作者用于异步训练wh 每个工作人员都要处理1批。初始学习速率设置为3×10×4,500 K后下降0.1。训练从CoCO检测模型检查点开始。当崔 根据我们的数据增强策略,我们不会更改任何训练详情,并将我们的策略添加到Coco上,以便进行预处理。这导致在MAP50上改进了2.7%(表4)。
4.5.学习增强策略模拟大型注释数据集的性能
在本节中,我们进行了实验,以确定如果有更多或更少的训练数据,学习到的增强策略将如何执行。为了进行这些实验,我们使用了coco数据集的子集来制作具有以下图像数的数据集:5000,9000,14000,23000(见表5)。在这个实验中训练的所有模型都是使用resnet-50的有视网膜的骨干,并且在150个时代中不使用成像仪的预先训练。
正如我们所预期的那样,在对模型进行关于较小数据集的训练时,由于所学的扩充政策而得到的改进较大,如图3和表5所示。我们显示,对于在5,000个训练样本上训练的模型,学习到的增强策略可以比基线改善70%以上的mAP。随着训练人数的增加,增加学习的政策的效果下降,尽管改进仍然很显著。值得注意的是,受过学习增强策略训练的模型在检测较小的对象方面似乎做得特别好,尤其是当训练数据集中的图像较少的时候。例如,对于小对象,应用学习到的增强策略似乎比增加50%的数据集大小要好,如表5中所示。对于小物体,使用9000个例子的学习增强策略进行训练,当使用15000个图像时,效果比基线好。在这个场景中,使用我们的增强策略几乎和您的数据集大小加倍一样有效。
另一个有趣的行为是,受过学习增强策略训练的模型在ap75(平均精度iou=0.75)的难度任务上做得相对更好。在图4中,我们绘制了mAP、ap50和ap75的百分比改进图,用于学习增强策略(相对于基线增强)的模型。在所有训练集尺寸上,ap75的相对改进大于ap50。所学的数据增强在ap75上特别有用,这表明增强策略有助于更精确地调整包围框预测。这表明,增强策略特别有助于在包围框位置中学习精细的空间细节——这与观察到的小物体的增益是一致的。
4.6.改进模型正规化
在本节中,我们研究了学习数据增强的正则化效果。我们首先注意到,检测模型的最终训练损失是较低的,当训练在一个更大的训练集(见图5的黑色曲线)。当我们应用所学的数据增强时,所有数据集大小(红色曲线)的训练损失都会显著增加。正则化效应也可以通过观察训练模型的权值的L2范数来看出。在较大的数据集上训练的模型的L2准则较小,而在学习增强策略下训练的模型的L2准则比在基线增强训练下训练的模型的L2准则较小(见图6)。
五、讨论
在本工作中,我们研究了一个学习到的数据增强策略在对象检测性能上的应用。我们发现,在所有考虑的数据大小中,学习到的数据增强策略都是有效的,当训练集很小时,则有较大的改进。我们还观察到,由于学习到的数据增加策略在更难的任务上有更大的改进,即检测更小的对象和更精确的检测。
我们还发现,其他成功的正则化技术,如果与学习到的数据增强策略一起应用,是没有好处的。我们用输入错误[52],Manifold Mixup[46]和滴管[13]进行了几个实验。对于所有的方法,我们发现它们既没有帮助也没有伤害模型性能。这是一个有趣的结果,因为所提出的方法独立地优于这些正则化方法,但是很显然,当应用一个学习到的数据增强策略时,这些正则化方法是不需要的
今后的工作将包括将这种方法应用于其他感知领域。例如,学习增加策略的自然延伸将是语义[28]和实例分割[34,7]。同样,点云特性是另一个具有丰富的几何数据增强操作可能性的领域,并且可以从类似这里所采取的方法中受益。获取此类任务的训练实例所需的人工注释成本很高。根据我们的研究结果,所学的增强策略是可以转移的,并且对于在有限的训练数据上训练的模型更有效。因此,投资图书馆学习数据增加政策可能是获取附加人类注释数据的有效替代办法。