数据增强在视觉识别中的应用

在现代计算机视觉领域,模型的性能往往受限于可用数据的质量和数量。为了提升模型的泛化能力和鲁棒性,数据增强技术成为了一种有效的手段。YOLOv4,作为最新的图像检测模型,通过多种数据增强技术,在COCO这一流行的图像检测基准测试中取得了显著的性能提升。本文将详细介绍数据增强的概念、重要性以及如何在实际项目中应用这些技术。

数据增强主要涉及对训练图像进行一系列变换操作,以生成一个比原始数据集更大的合成数据集,从而提高模型的下游性能。这些变换包括翻转、旋转、裁剪、添加噪声、遮挡图像部分等。过去,已经在博客文章中讨论了如何为计算机视觉创建合成数据集、使用翻转增强的原因和方法、模糊增强的重要性以及随机裁剪增强的用途。在关于YOLOv4的数据增强策略的文章中,介绍了一些旨在通过正则化改善训练的遮挡技术。

在视觉任务中使用数据增强的原因有很多。首先,增强后的图像可以创建一个更大的数据集,这将更好地泛化到模型在生产环境中可能遇到的各种情况。不同的增强技术在不同的设置中更有用或不那么有用。例如,在自动驾驶汽车数据集中,添加随机噪声可能使模型对相机伪影更具弹性,但垂直翻转可能没有用,因为道路永远不会倒置。

简单的增强策略可以帮助填补模型的空白。例如,模型通常定位对象类别,猜测它们只出现在训练集中出现的位置。例如,在教程示例中,有一个表示不足的类别(血小板),它出现的热图如下所示。通过一些翻转和旋转增强,应该能够使图像看起来更好、更分散。

更复杂的增强,如遮挡策略,是为了迫使模型学习更多关于被检测到的整个对象的信息,而不仅仅是容易识别的特征。例如,在检测狗时,模型可能会收敛于识别狗的头部作为一个有用的特征。这种收敛可以通过类激活映射(CAM)来证明。但如果狗的头部被灌木丛遮挡在图片中,会发生什么呢?在下面的"Cutout"中,可以看到狗现在也被其背部识别了。

为了亲身体验图像增强,需要训练一个目标检测模型。然后,将在测试集上评估模型,以确定所做的增强是否提高了模型的性能。在本教程中,将使用EfficientDet,这是Google Brain发布的最新目标检测器。有关深入指南,请参见关于如何训练EfficientDet进行目标检测的文章。

现在,将提供一个高层次的训练过程视图。如果渴望立即进入代码,这是一个使用计算机视觉中的数据增强的Colab笔记本。首先,将在Google Colab中设置训练环境。然后,将下载通过一个易于使用的用户界面增强的数据。下载链接将在下面的教程中生成。

将在笔记本中进行一些文件夹重构,然后开始训练。对于评估,将使用模型进行推理,并在测试集上获取模型预测的mAP。有关mAP的深入介绍,请参见文章。以下是输出结果!对于最先进的检测来说,这个结果相当不错!如果像一样,可以设置多个Colab笔记本,同时运行多个实验。

为了在Colab笔记本中测试增强,需要将数据导出为COCO json格式。如果模型需要另一种格式,别担心,所有格式都可供导出。然后将数据从Roboflow下载。然后将那个链接粘贴到笔记本中缺失的数据集链接的地方,然后运行所有单元格!笔记本训练30个周期(大约10分钟),然后在增强的数据上进行推理(30毫秒)。推理结果被传递到一个评估脚本中,发现了增强后的mAP性能。

现在这是一个从基础数据集中获得的很大改进!不必收集更多数据,也不必等待新的最先进的图像检测模型发布。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485