DOMA数据科学的首要主题之一是概括性。这对于在我们的产品中成功实施我们的机器学习模型非常重要,因为我们的数据来源多种多样,并且支持新客户的快速入职(例如,冷启动问题)。在我们迈向改进模型性能的过程中,误报可能是一个主要障碍。简而言之,当计算确定实例包含导致模型将其与实例不同的东西混淆的特征时,机器学习模型预测中就会出现误报。一个简单的例子是一只猫被误认为是狗。两者都是四条腿的毛茸茸的生物,所以数学算法不能识别差异是情有可原的。但是,考虑到DOMA的每个订单都需要处理多达100页左右的文档,我们必须确保错误率很低。
在这篇博客文章中,我将关注如何使用数据增强来降低念力在计算机视觉模型中产生的假阳性。最近,我们独立发现所谓的数据增强的“复制-粘贴”技术对于提高在较小数据集上训练的计算机视觉模型的性能是非常有效的。复制-粘贴技术通过复制对应于要检测或识别的特定对象的图像片段并将其粘贴到其他图像上来生成附加的训练数据来增加数据集(参见下文以了解更多细节)。几乎与我们的发现同时,最近在谷歌大脑的arxiv研究人员上发表了一篇关于复制-粘贴技术的文章。本文关于arxiv的研究主要集中在实证意义上的整体模型绩效。在这里,我将重点介绍使用该技术来具体降低由于容易混淆的类而导致的误报率。arxiv
构建数据集
作为此技术的演示,我们从上下文中的通用对象(COCO)开源数据集构建一个小的数据集:https://cocodataset.org.这是一个非常大的行业标准数据集,用于对几个计算机视觉任务进行基准测试。对于当前的用例,重点将放在容易混淆的类的对象检测上。作为一个具体的例子,我将把重点放在自行车和摩托车上。从视觉的角度来看,这些物体显然是相似的:有两个轮子的车辆,通常在类似的环境中发现,而且经常有一两个人骑在上面。https://cocodataset.org
我们创建一个包含200幅自行车图像(包括边界框注释)的单一训练数据集。但是,我们将利用COCO数据集中也包含的遮罩批注(即指示图像中哪些像素包含感兴趣对象的多边形)来执行复制-粘贴技术。为了了解复制粘贴数据增强如何减少模型念力,我们将创建两个额外的训练集,这两个训练集使用复制粘贴技术增加图像,但使用两种不同类型的背景图像。这将使我们能够探索复制-粘贴技术中的选择如何影响整体性能。
使用复制-粘贴方法
我们可以建立自行车的扩展数据集,但要利用可可提供的面具。首先,我们选择了200张带注释的自行车图片,并使用Coco的工具进行了过滤,以确保这些图片中不存在摩托车。接下来,使用Coco注释为每幅图像提供的掩码,我们可以定位属于每辆自行车的所有像素。利用这一点,我们可以为每个图像生成每辆自行车的剪切图像。在选择的200个图像数据集中总共有491个自行车实例。接下来,我们选择了500张包含摩托车的图片,但过滤后排除了自行车。
我们的数据增强过程从我们从COCO中选择的200个图像数据集中提取了491个自行车实例中的每个实例,并将每个实例分别粘贴到最多5个包含摩托车和不包含自行车的不同图像上。如果有兴趣了解有关如何使用Python操作图像的更多信息,请参阅:https://automatetheboringstuff.com/chapter17/.图2显示了该过程结果的几个示例。由于某些摩托车图像比复制的自行车图像小,此过程偶尔会失败。一种解决方法是减小自行车的大小。然而,相反,我们选择了简单地忽略这些相对罕见的情况。https://automatetheboringstuff.com/chapter17/
每次迭代都会产生一个额外的图像和一个额外的自行车实例。在处理了500幅摩托车图像之后,复制粘贴的扩展数据集具有2557幅图像和2848个自行车实例。
实验细节
区域卷积神经网络(RCNN)
区域卷积神经网络最初是在2014年引入的(见R.Girshick等人的https://arxiv.org/pdf/1311.2524.pdf))。从那时起,已经有了许多迭代,并且许多当前技术水平的对象检测和实例分割模型都基于该体系结构。这使得RCNN成为演示如何使用复制粘贴数据增强方法来减少对象检测的误报的一个很好的选择。在这里的工作中,使用更快的RCNN方法。https://arxiv.org/pdf/1311.2524.pdf RCNN method
对于RCNN的高级介绍,我建议从一系列博客文章的第一部分开始,该系列博客文章介绍了从最初的RCNN到更快的RCNN的发展过程。对于开发,我们构建在Detectron2框架之上。blog posts detectron2 framework.
培训
我们训练了三种不同的更快的RCNN。其中一组在没有复制粘贴数据增强的情况下对200幅自行车图像进行了训练。在训练过程中,我们只做了一个简单的随机水平翻转的增强技术。将有效训练数据集大小增加到400个图像,这也使自行车实例的数量翻了一番,从491个增加到982个。从现在开始,我们将把它称为香草模型。
第二个更快的RCNN模型在相同的400张图像上进行了训练,但我们也包括了通过将自行车复制粘贴到摩托车图像上而产生的增强图像。还允许随机翻转,这导致自行车实例总数为5696个。然而,人们必须记住,在香草模型的意义上,这些并不是独一无二的。此模型将称为复制粘贴摩托车模型。
最后,第三个更快的RCNN模型以与复制-粘贴摩托车模型完全相同的方式进行训练,只有一个不同之处。背景图像不是使用摩托车粘贴自行车的背景图像,而是那些没有自行车的狗的背景图像。
为了进行公平的比较,所有模型都接受了5000次迭代的训练,批大小为2。在下一节中,我们将显示这些模型的结果。有关这三种型号的摘要,请参阅下表1:
评估
为了测试每个模型在多大程度上混淆了摩托车类别和自行车类别,对包含自行车和摩托车的200张图像进行了评估。此数据集中的自行车实例总数为965个。正如预期的那样,香草模型混淆了大量的摩托车和自行车,而复制粘贴模型很少预测摩托车是自行车。
为了便于目测,我们展示了五对结果,其中香草模型混淆了非常清晰的摩托车和自行车。
总体而言,香草模型正确检测到的自行车数量(真阳性)为321辆,被误认为自行车(假阳性)的摩托车数量为130辆。对于复制粘贴的摩托车模型,206辆自行车被正确识别,11辆摩托车被错误识别为自行车。请注意,我们没有考虑对这两个型号的实际不是摩托车的类进行任何误报。从本质上说,我们关注的是摩托车贴上自行车标签的念力费率。在这些方面,复制-粘贴模式的念力比率只有0.05%,而香草模式的比率要高得多,达到0.29%。当然念力越小越好。复制-粘贴狗模型也降低了假阳性率-它只错误地将38辆摩托车识别为自行车。然而,真正积极的人数是三个模型中最少的,只有193个。下表2汇总了这些结果:
最后的想法
我们对复制粘贴技术的演示表明,这种增强确实减少了自行车和摩托车之间的念力,并表明这是一种很有前途的技术,可以应用于其他容易混淆类别的情况。执行此技术的成本是构建一个额外的类(这里是摩托车)图像数据集,模型预计会将其与要检测的类(这里是自行车)混淆。但是,这个附加数据集不需要任何注释,因此构建成本相对较低。
我们还可以看到,念力通过复制粘贴技术的缩水,很大程度上依赖于粘贴实例的图片的选择。在只将自行车粘贴到摩托车或狗的图像上的情况下,我们发现对于前者,模型具有更多的真阳性和更少的假阳性-这两者都是理想的。当粘贴到狗身上时,假阳性的数量确实比香草模型减少了很多,只是没有复制粘贴的摩托车模型那么多。事实上,复制粘贴车型的念力使用率是复制粘贴摩托车模型的3倍多。
最后,如上所述,Coco数据集的带注释的掩码并不像人们希望的那样干净。如果使用具有更精确掩码的数据集,则预期复制-粘贴技术会给出更好的结果,因为模型可能会更少地了解注释方法中固有的特性,而更多地了解要检测的实际对象的特征。然而,尽管如此,我们的实验表明,复制-粘贴技术可以大大降低误报率。
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/20/%e6%95%b0%e6%8d%ae%e5%a2%9e%e5%bc%ba%ef%bc%9a%e5%a4%8d%e5%88%b6%e7%b2%98%e8%b4%b4%e8%bf%98%e5%8e%9f%e6%a8%a1%e5%9e%8b%e5%bf%b5%e5%8a%9b-2/