提升模型性能:结合自定义数据集与公开图像数据集

机器学习领域,经常会遇到模型性能不佳的问题。通常,会尝试改变模型架构、增加数据增强或者检查训练数据中的错误。但如果这些方法都不起作用呢?实际上,提升模型性能最有效的方法之一就是提供更多的训练数据。本文将探讨一种快速且简单的方法,通过结合自定义数据集和公开可用的图像数据集来提升模型性能。

收集更多数据的直接方法是派人带着相机去野外拍摄更多图片。正如所预料的,这是一个昂贵且耗时的过程。这就是为什么鼓励客户尽快将模型的初级版本投入生产,以便他们可以使用用户收集的真实世界数据,通过主动学习来迭代改进他们的模型。此外,还可以通过上下文增强、3D渲染或生成对抗网络(GANs)生成合成数据。但还有另一种方法可以快速带来改进:添加来自公共数据集的标注图像。本文将展示如何使用OpenImages的数据来提升模型在COCO类别上的准确度,最高可达7.5%。

将创建一个汽车检测模型。首先,将在COCO数据集中的1000张汽车图像上训练一个基线模型。仅在COCO上训练的结果已经相当不错,但可以做的更好。以下是模型在手机相册中的测试图像上的示例预测。

现在,将按照中的步骤,通过添加来自OpenImages的额外1000张汽车图像到数据集的训练集中,将数据集的规模扩大一倍(确保将Car映射为car,以便模型将它们视为同一类别)。

# 下载OpenImages中的额外汽车图像

使用这些新图像重新训练了模型,并在验证集上取得了7.5%的性能提升!(从47.2%的平均精度均值提升到50.8%)。当添加额外的1000张图像时,相同验证图像上的结果更好。主观上,模型的性能也更好。以下是来自手机相册的同一图像(注意,第一个模型没有将大众甲壳虫识别为汽车,但这个模型做到了)。

这种方法的有效性,可以理解的是,随着原始数据集的规模增加而降低。它只有在模型没有足够的多样化示例可供使用,并且输入的图像与自己的数据集足够相似,以至于模型可以从中提取有用信息时才有效。从所有12,000张COCO汽车图像开始,平均精度均值为63.4%;从OpenImages中再添加5,000张图像确实提高了结果,但只将平均精度均值提高到63.8%(提高了0.6%)。

在短短几分钟内,就能够通过添加来自公共数据集的更多数据,显著提升汽车模型。COCO和OpenImages为数百个类别提供了标注数据;如果正在寻找类似的对象,很幸运!如果它们没有相关图像,请查看,看看是否有另一个公共数据集可能符合要求。

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