本文主要在论文《A survey on Image Data Augmentation for Deep Learning》基础上做提炼和总结。
论文地址:https://link.springer.com/article/10.1186/s40537-019-0197-0
数据增强主要是为了应对训练集欠缺的情况,通过提升现有数据的数量和质量以训练更好的网络。主要的数据增强方法有:geometric transformations(几何变换), color space augmentations(色彩空间增强),kernel flters(内核过滤器),mixing images(图像混合),random erasing(随即擦除),feature space augmentation(特征空间增强),adversarial training(对抗训练),generative adversarial networks(生成对抗网络),neural style transfer(神经风格迁移)和 meta-learning(元学习)。这些方法大致可以分为基于图像处理和基于深度学习两个方向,以下简要总结基于图像处理的数据增强方法:
geometric transformations几何变换
下面讨论的增强方法特点是易于实施,同时还讨论了每种方法的“安全性”问题。数据增强方法的安全性是指其在转换后保留标签的可能性。
1、flipping翻转
一般都是水平方向翻转而少用垂直方向,即镜像变换。图像数据集上证实有用(CIFAR-10,ImageNet等),但无法应用在文本识别数据集(MNIST,SVHN等)
2、color space色彩空间
简单做法是隔离单个色彩通道,例如R,G或B,此外可以通过简单的矩阵运算以增加或减少图像的亮度。更高级的做法从颜色直方图着手,更改这些直方图中的强度值(想到了图像处理中的直方图均衡)。
3、cropping裁剪
分统一裁剪和随机裁剪。统一裁剪将不同尺寸的图像裁剪至设定大小,随机裁剪类似translation,不同之处在于translation保留原图尺寸而裁剪会降低尺寸。裁剪要注意不要丢失重要信息以至于改变图像标签。
4、rotation旋转
要注意旋转度数。以MNIST为例,轻微旋转(例如1°-20°)可能有用,再往后增加时数据标签可能不再保留。
5、translation位置变换(个人理解)
向左,向右,向上或向下移动图像可能是非常有用的转换,以避免数据中的位置偏差。例如人脸识别数据集中人脸基本位于图像正中,位置变换可以增强模型泛化能力。
6、noise injection添加噪声
添加高斯分布的随机矩阵
7、color space transformations色彩空间增强
照明偏差是图像识别问题中最常见的挑战之一,因此色彩空间转换(也称为光度转换)的比较直观有效。
①遍历图像以恒定值减少或增加像素值(过亮或过暗)
②拼接出(splice out)各个RGB颜色矩阵
③将像素值限制为某个最小值或最大值
④操作色彩直方图以改变图像色彩空间特征
注意将彩色图转换黑白虽然简化了这些操作,但精度会降低
geometric versus photometric transformations几何与光度转换
1、kernel flters内核过滤器
平滑和锐化,即图像处理中用卷积核滑过整幅图像的操作。这一点尚未开发,它和CNN中卷积机制非常相似(就一样啊),因此可以通过调整网络参数更好地改善网络,而不需要额外进行这样的数据增强操作。
2、mixing images图像混合
做法是通过平均图像像素值将图像混合在一起:
研究发现是当混合来自整个训练集的图像而不是仅来自同一类别的实例的图像时,可以获得更好的结果。其它一些做法:
①一种非线性方法将图像组合成新的训练实例:
②另一方法是随机裁剪图像并将裁剪后的图像连接在一起以形成新图像:
这类方法从人的视角看毫无意义,但确实提升了精度。可能解释是数据集大小的增加导致了诸如线和边之类的低级特征的更可靠表示。
3、random erasing随机擦除
这一点受到dropout正规化的启发,随机擦除迫使模型学习有关图像的更多描述性特征,从而防止过拟合某个特定视觉特征。随机擦除的好处在于可以确保网络关注整个图像,而不只是其中的一部分。最后随机擦除的一个缺点是不一定会保留标签(例如文本8->6)。