介绍
当在图像上训练深度神经网络模型时,通过对由数据增强生成的更多图像进行训练,可以使模型更好地泛化。常用的增强包括水平和垂直翻转/移位、以一定角度和方向(顺时针/逆时针)随机旋转、亮度、饱和度、对比度和缩放增强。
Python中一个非常流行的图像增强库是albumentations(https://albumentations.ai/),通过直观的函数和优秀的文档,可以轻松地增强图像。它也可以与PyTorch和TensorFlow等流行的深度学习框架一起使用。
域相关的数据增强
直觉
背后的想法来自于在现实中可能遇到的图像。例如,像雪或雨滴这样的增强是不应该在x射线图像中发现的增强,但胸管和起搏器是可以在x射线图像中发现的增强。
这个想法从何而来
改变了Roman (@ nroman on Kaggle)为SIIM-ISIC黑色素瘤分类比赛做增强的方法。有关他的方法的详细信息,请参见:https://www.kaggle.com/c/siim-isic-melanoma-classification/discussion/159176. 增强的一个片段如下所示:
原始图像(左上方)和头发增强图像(右上方)
此文确实在我们的模型训练中使用了他的增强函数,这有助于提高我们大多数模型的交叉验证(CV)分数。
想说的是,这种形式的增强可能在我们的最终排名中发挥了关键作用!从那时起,使用头发(或一般的人工制品)来增强图像数据的想法在我参加的后续比赛中非常接近,并尽可能地加以应用。
特别是,该方法被推广并应用于全球小麦检测、木薯叶病分类挑战赛。
昆虫增强
正如标题所示,这种方法包括用昆虫增强图像。这可以是数据中的一种自然设置,因为昆虫通常在空中或地面上被发现。
在本例中,在木薯和全球小麦检测竞赛中,蜜蜂被用作增强叶片图像时的首选昆虫。以下是增强图像的外观示例:
蜜蜂在叶子周围飞翔的增强图像
我们还可以使用掩码形式,导致图像中出现黑点(类似于相册中的脱落),即没有颜色和黑色的蜜蜂:
增强图像,黑色/黑色蜜蜂围绕树叶飞行