有研究称,他们使用一种技术在一周内清理了PASCALVOC2012数据集中的17,120张图像,结果发现在PASCAL6.5%的图像有各种错误(缺少标签、错误的类别标签等)。他们以创纪录的时间修复了这些错误,并将模型的性能提高了13%mAP。通常,训练数据质量差可能导致模型性能差。即使在2022年,数据已成为公司最重要的资产之一,开发人员也常常为糟糕的数据质量而苦恼。在这篇文章中,总部位于德国柏林的视觉人工智能从业者下一代标注工具提供商Hasty希望通过更快、更高效地清理数据来简化和降低视觉人工智能解决方案开发的风险。他们开发了AI共识评分(AICS)功能,该功能是Hasty生态系统的一部分(Hasty是该公司开发的端到端AI平台,可帮助ML工程师和领域缩短产品上市时间和服务),这一功能通过将AI集成到质量控制过程中,使手动共识评分成为过去,从而随着用户添加更多数据,使其更快、更便宜和可扩展,性能扩展就越好。在本文中,研究人员将利用AICS功能改进、更新和升级最流行的对象检测基准数据集PASCALVOC2012。我们先简单介绍一下PASCAL,这是一个著名的学术数据集,可以作为视觉AI任务的基准模型,如对象检测和语义分割。PASCAL已有十多年的历史,至今仍在广泛使用,过去4年有160篇论文使用它。PASCAL在过去的十年里没有改变,世界各地的团队在科学研究中都保持数据集“原样”。但是这个数据集很久以前就有标注了,当时的算法还没有现在这么准确,标注要求也没有那么严格,会出现很多错误。例如,如下图所示:虽然马在前景中并且可见,但是没有马标签。这些质量问题在PASCAL中很常见。如果手动处理PASCAL数据集,既费钱又费时。本研究使用人工智能进行质量控制,提高了PASCAL的质量。他们的目的是,如果数据质量足够好,模型性能会不会提升?为了执行此测试,他们设置了一个实验,包括以下步骤:使用Hasty平台上的AIConsensusScoring功能清洁PASCALVOC2012;使用FasterR-CNN架构在原始PASCAL训练集上训练自定义模型;使用相同的FasterR-CNN架构和参数,在清理后的PASCAL训练集上准备自定义模型;经过实验,得出结论。以下是实验过程,以第一人称整理整理,看看他们是怎么做的,结果如何?清理PASCALVOC2012我们的首要任务是改进数据集。我们从Kaggle获取数据集,上传到Hasty平台,导入标注,并安排了两次AICS运行。对于那些不熟悉我们的AICS功能的人,此功能支持类、对象检测和实例分割审查,因此它会检查带注释的类标签、边界框、多边形和掩码。在审查时,AICS会查找额外或缺失的标签、伪像、错误类别的注释,以及形状不精确的边界框或实例。PASCALVOC2012包含20个不同类别的17.120张图像和大约37.700个标签。我们为28.900(OD)和1.320(Class)潜在错误任务运行了对象检测和类审查。AICS让您发现潜在问题。然后,您可以专注于修复错误,而不是花费数天或数周的时间来解决问题。我们想要检查这些潜在的错误并修复它们,最重要的是,我们希望修改后的注释比原始注释器更准确。具体来说:当AICS检测到潜在错误时,我们尝试修复每张图像上所有可能出现的这些错误;我们不打算对每个可能的对象进行注释,如果注释遗漏了一个对象,并且在前景中或在没有对象的情况下,如果肉眼按比例可见,我们将对其进行注释;我们尝试使边界框像像素一样完美;我们还注释了部分(类似数据集的目标未注释部分),因为原始数据集具有它们的属性。考虑到上述目标,我们首先检查了现有带注释类标签的类审查运行,试图找出潜在的错误。超过60%的AICS建议是有用的,因为它们有助于识别原始数据集中不明显的问题。例如,注释者混淆了沙发和椅子。我们通过重新标记整个数据集的500多个标签来解决这个问题。原始注释示例。图为两张沙发和两把扶手椅。两把扶手椅中的一张标为沙发,而另一张标为椅子。修改标签,扶手椅是椅子,沙发是沙发。在分析OD和Classreview时,我们发现PASCAL最突出的问题不是错误分类的注释、奇怪的边界框或额外的标签。它最大的问题是缺少许多潜在的注释。我们很难估计确切的数量,但我们觉得有成千上万个未标记的目标应该被标记。OD审查遍历数据集,寻找额外或缺失的标签以及形状错误的边界框。并非所有缺失的注释都被AICS高亮显示,但我们尽最大努力改进AICS对所有至少有一个缺失标签的图像的预测。结果,OD审查帮助我们在1.140张图像中找到了6.600个缺失的注释。我们花了大约80个小时审查所有提案并清理数据集,这是一个了不起的结果。在原始PASCAL上训练自定义模型如上所述,我们决定设置两组实验并训练两个模型,一个在原始PASCAL上,一个在清洁版PASCAL上。对于神经网络训练,我们使用另一个Hasty功能:ModelPlayground,这是一种无编码解决方案,允许您在简化的UI中构建AI模型,同时保持对架构和每个关键神经网络参数的控制。在整个工作过程中,我们多次迭代模型,试图找到最适合任务的超参数。最终,我们选择了:以ResNet101FPN为骨干的FasterR-CNN架构;使用R101-FPNCOCO权重进行模型初始化;模糊、水平翻转、随机剪切、旋转和颜色抖动作为增强功能;解决ReduceLROnPlateau的AdamW是调度器;与其他OD任务一样,使用损失的组合(RPN边界框损失、RPN分类损失、最终边界框回归损失和最终分类损失);作为指标,我们有COCOmAP,幸运的是,最重要的是,它直接在ModelPlayground中实现。大约一天半的时间来训练。假设架构的深度、网络正在处理的图像数量、计划的训练迭代次数(10.000)以及COCOmAP是在5.000张图像上每50次迭代计算一次的事实,它不会花费太长时间。以下是该模型取得的结果:原始模型训练迭代的平均损失。用于验证原始模型迭代的COCOmAP图。使用该架构获得的最终COCOmAP结果在验证时为0.42mAP。在原始PASCAL上训练的模型表现不及最先进的架构。尽管如此,考虑到我们构建模型所花费的时间和精力很少(3次迭代,每次1小时),这仍然是一个不错的结果。无论如何,这样的结果会使我们的实验更有趣。让我们看看是否可以在不调整模型参数的情况下改进数据以获得所需的指标值。在更新的PASCAL上训练的自定义模型在这里,我们采用相同的图像进行训练和验证,以训练以下模型作为基线。唯一的区别是拆分中的数据更好(添加了更多标签并固定了一些标签)。不幸的是,原始数据集并未包含其训练/测试拆分中的17120张图像中的每一张,并且遗漏了一些图像。因此,尽管在原始数据集中添加了6600个标签,但我们在训练/测试拆分中仅获得了大约3000个新标签和大约190个固定标签。尽管如此,我们继续使用PASCALVOC2012修改后的训练/测试拆分来训练和验证模型,以查看其性能。在模型的训练迭代中更新AverageLoss图。在模型的验证迭代中更新COCOmAP图。直接比较正如我们所见,新模型优于原始模型。它在验证时达到0.49COCOmAP,而之前的模型为0.42。这样看来,显然实验是成功的。结果在45-55COCOmAP范围内,这意味着更新后的模型比原始模型效果更好,并提供了所需的指标。是时候得出一些结论并讨论我们刚刚目睹的事情了。结论本文展示了以数据为中心的AI开发的概念。我们的想法是改进数据以获得更好的模型,进而获得想要的结果。今天,当模型开始接近性能上限时,调整模型以将关键指标的结果提高1-2%以上可能具有挑战性且代价高昂。但是,您不应忽视构建机器学习不仅仅是关于模型和参数,而是两个关键组件——算法和数据。在这项研究中,我们没有试图击败任何SOTA或取得比以前的研究更好的结果。我们希望通过实验结果表明,花时间改进数据有利于模型性能。希望通过添加3000个缺失标签使COCOmAP增加13%足以令人信服。通过清理数据和向图像添加更多标签可以获得的结果很难预测。性能在很大程度上取决于您的任务、NN参数和许多其他因素。即使在本文的例子中,我们也不确定多3000个标签会带来额外的13%mAP。尽管如此,结果不言自明。虽然有时很难确定如何通过获得更好的数据来改进模型指标的上限,但这是一个值得尝试的方向。
