ctrl c+v妙用-利用复制粘贴技术增强数据集

795 阅读11分钟

用复制粘贴进行数据增殖

减少类似类别之间的模型混淆

图片由Shutterstock.com授权使用,© Adnan Ahmad Ali/shutterstock.com

在Doma,数据科学的首要主题之一是可推广性。由于我们的数据来源广泛,以及支持新客户的快速入职(例如冷启动问题),这对我们在产品中成功实施机器学习模型非常重要。当我们向改善模型性能迈进时,假阳性反应可能是一个主要障碍。简单地说,当计算确定一个实例包含的特征导致模型将其混淆为该实例不是的东西时,机器学习模型预测中就会出现假阳性。一个简单的例子是将猫与狗混淆。两者都是四条腿的毛茸茸的动物,所以数学算法不能识别两者的区别可能是可以原谅的。然而,考虑到多玛的每一个订单都需要处理可能包含多达100页左右的文件,我们必须确保我们的错误率很低。

在这篇博文中,我将重点讨论如何利用数据增强来减少计算机视觉模型中产生假阳性的混乱现象。最近我们独立地发现,所谓的 "复制-粘贴 "的数据增强技术对于提高在较小数据集上训练的计算机视觉模型的性能非常有效。复制-粘贴技术通过复制与要检测或识别的特定对象相对应的图像片段并将其粘贴到其他图像上,产生额外的训练数据来增加数据集(更多细节见下文)。几乎在我们发现的同时,谷歌大脑的arxiv研究人员最近发布了一篇关于复制-粘贴技术的文章[1]。arxiv上的论文主要侧重于经验意义上的整体模型性能。在这里,我将专注于使用该技术来具体减少由于容易混淆的类而导致的假阳性率。

建立数据集

作为这项技术的演示,我们从Common Objects in Context(COCO)[2]开源数据集中建立了一个小型数据集:https://cocodataset.org。这是一个非常大的工业标准数据集,用于衡量几个计算机视觉任务的基准。对于目前的用例,重点将放在容易混淆的类别的对象检测上。作为一个具体的例子,我将专注于自行车和摩托车。从视觉角度来看,这些物体显然是相似的:有两个轮子的车辆,经常出现在类似的环境中,而且上面经常有一两个人在骑行。

我们创建了一个由200张自行车图像组成的单一训练数据集,包括边界框注释。然而,我们将利用COCO数据集中的遮罩注释(即表示图像中哪些像素包含感兴趣的物体的多边形)来执行复制粘贴技术。为了了解复制粘贴数据的增加如何能减少模型的混乱,我们将创建两个额外的训练集,用复制粘贴技术的图像来增加,但有两种不同类型的背景图像。这将使我们能够探索复制-粘贴技术的选择如何影响整体性能。

使用复制-粘贴方法

我们可以建立一个自行车的增强数据集,但是要利用COCO提供的掩码。首先,我们选择了200张有注释的自行车图片,使用COCO的工具对其进行过滤,以确保这些图片中没有摩托车存在。接下来使用COCO注释为每张图片提供的掩码,我们可以找到属于每辆自行车的所有像素。利用这一点,我们可以为每张图片制作每辆自行车的切割图像。在所选择的200张图像数据集中,总共有491个自行车实例。接下来,我们选择了500张包含摩托车但被过滤掉自行车的图像。

图1.左图:COCO中含有自行车的图像实例。中间:一辆自行车的面具。右图:使用掩膜提取(切出)的自行车图像。有一点需要注意的是,COCO中的遮罩并没有最高级别的精度。通常它们包括许多背景像素(注意自行车轮胎右边的额外像素)。改编自原始照片,其版权归ComradeCosmobot所有,并以署名2.0 Generic(CC BY 2.0)许可提供。

图2.左图:来自COCO的摩托车图片,并在图片上粘贴了之前提取的自行车随机图片。右图。从我们的粘贴代码中产生的掩码,显示了粘贴的自行车的位置。改编自原始照片,其版权归Paul Sableman所有,并在署名2.0通用(CC BY 2.0)许可下提供;以及原始照片,其版权归ComradeCosmobot所有,并在署名2.0通用(CC BY 2.0)许可下提供。

我们的数据增强过程从我们从COCO选择的200张图片数据集中抽取了491个自行车实例,并将每个实例单独粘贴到最多五张包含摩托车而没有自行车的不同图片上。对于那些有兴趣了解如何用python处理图像的人来说,请看:https://automatetheboringstuff.com/chapter17/。图2显示了该过程结果的几个例子。由于一些摩托车图像比复制的自行车图像要小,这个过程偶尔会失败。一个解决方法是减少自行车的尺寸。然而,我们选择简单地忽略这些相对罕见的情况。

每次迭代都会产生一个额外的图像和一个额外的自行车实例。在处理了500张摩托车图像后,复制粘贴的增强数据集有2557张图像,其中有2848个自行车实例。

实验细节

区域卷积神经网络(RCNN)

区域卷积神经网络 最初是在2014年引入的[3]。从那时起,已经有很多迭代,目前许多先进的物体检测和实例分割模型都是基于这种架构。这使得RCNN成为展示复制粘贴数据增强方法如何用于减少物体检测的假阳性的好选择。在这里的工作中使用更快的RCNN方法[4]。

对于RCNN的高水平介绍,我建议从一系列博文 中的第一篇开始,它介绍了从原始RCNN到更快RCNN的发展历程。对于开发,我们建立在detectron2框架之上

训练

我们训练了三个不同的快速RCNN。其中一个是在没有复制粘贴数据增强的情况下对200张自行车图像进行训练。在训练过程中,我们只做了一个简单的随机水平翻转的增强技术。这使有效的训练数据集大小增加到400张图像,这也使自行车实例的数量从491个增加到982个。从这里开始,我们将把它称为 "香草模型"。

第二个Faster RCNN模型是在同样的400张图片上训练的,但我们也包括了通过将自行车复制粘贴到摩托车图片上而产生的增强的图片。还允许随机翻转,这导致自行车实例的总数为5696。然而,人们必须记住,这些并不是香草模型意义上的唯一。这个模型将被称为复制粘贴的摩托车模型。

最后,第三个Faster RCNN模型的训练方式与复制粘贴的摩托车模型完全相同,但有一点不同。背景图像不是使用摩托车来粘贴自行车,而是那些没有自行车的狗的背景图像。

为了进行公平的比较,所有的模型都被训练了5000次迭代,批次大小为2。在下一节中,我们将展示这些模型的结果。关于这三个模型的总结,请看下面的表1。

表1:为比较而训练的模型。作者的图像

评价

为了测试出每个模型将摩托车类混淆为自行车类的程度,对200张同时包含自行车和摩托车的图像进行了评估。这个数据集中的自行车实例总数为965。正如预期的那样,香草模型将大量的摩托车混淆为自行车,而复制粘贴模型则很少将摩托车预测为自行车。

为了便于观察,我们展示了五对结果,其中香草模型将非常明显的摩托车混淆为自行车。

例1--左图:复制粘贴模型检测到一辆自行车的结果。右图:香草模型的结果检测到两辆自行车,其中一辆是摩托车。改编自原始照片,其版权归Ken所有,并以署名-非商业性2.0通用格式(CC BY-NC 2.0)提供。

例2--左图:复制粘贴模型的结果检测到一辆自行车。右图:香草模型的结果检测到5辆自行车,其中4辆是摩托车。改编自原始照片,版权归PSliceofNYC所有,并以署名2.0 Generic (CC BY 2.0)许可提供。

例3--左图:复制粘贴模型的结果检测到一辆自行车。右图:香草模型的结果检测到两辆自行车,其中一辆是摩托车。改编自原始照片,其版权归Ken所有,并以署名-非商业性-相同方式共享2.0通用版(CC BY-NC-SA 2.0)提供。

例4--左图:复制粘贴模型的结果检测到一辆自行车。右图:香草模型的结果检测到两辆自行车,其中一辆是摩托车。改编自原始照片,其版权归britt所有,并以署名-非商业性-相同方式共享2.0通用格式(CC BY-NC-SA 2.0)提供。

例5--左图:复制粘贴模型的结果检测到一辆自行车。右图:香草模型的结果检测到两辆自行车,其中一辆是摩托车。改编自原始照片,其版权归Stefano Arteconi所有,并以署名-非商业性-相同方式共享2.0通用格式(CC BY-NC-SA 2.0)提供。

总的来说,香草模型正确检测到的自行车数量(真阳性)为321辆,被误认为是自行车的摩托车数量(假阳性)为130辆。对于复制粘贴的摩托车模型,206辆自行车被正确识别,11辆摩托车被错误地识别为自行车。请注意,我们没有考虑这两个模型中实际上不是摩托车的类别的任何误报。从本质上讲,我们要看的是摩托车被标记为自行车的混淆率。在这些方面,复制-粘贴模型的混淆率只有0.05,而香草模型的混淆率要高得多,为0.29。当然,混淆度越小越好。复制粘贴狗模型的假阳性率也很低--它只把38辆摩托车错误地识别为自行车。然而,真阳性的数量是三个模型中最小的,只有193个。这些结果在表2中作了总结。

表2:模型评估。图片。作者的图像

最后的思考

我们对复制粘贴技术的演示表明,这种增强技术确实减少了自行车和摩托车之间的混淆,并表明这是一种很有前途的技术,可以应用于其他容易混淆的类别的情况。执行这项技术的代价是建立一个额外的数据集,即模型预计会与要检测的类别(这里是自行车)相混淆的类别(这里是摩托车)的图像的额外工作。然而,这个额外的数据集不需要任何注释,因此建立起来也相对便宜。

我们还可以看到,通过复制-粘贴增强技术来减少混淆,在很大程度上取决于粘贴实例的图像的选择。在将自行车粘贴在只有摩托车或只有狗的图像上的情况下,我们发现对于前者,模型有更多的真阳性和更少的假阳性--两者都是可取的。当粘贴在狗身上时,与香草模型相比,假阳性的数量确实明显减少,只是没有复制粘贴摩托车模型那么多。事实上,复制粘贴狗模型的混淆率比复制粘贴摩托车模型的混淆率高3倍以上。

最后,如上所述,COCO数据集的注释掩码并不像人们希望的那样干净。如果使用具有更精确面具的数据集,预计复制粘贴技术会得到更好的结果,因为该模型可能会减少对注释方法中固有的特异性的学习,而更多地学习实际要检测的物体的特征。然而,尽管如此,我们的实验表明,复制粘贴技术可以大大降低假阳性率。