论文笔记:A survey on Image Data Augmentation for Deep Learning
摘要:
深度学习在计算机视觉任务许多方面都表现得非常好。然而,这些网络严重依赖大数据以避免过度传输,不幸的是,许多应用领域无法访问大数据,如医学图像分析。这项调查的重点是数据扩充,一种解决有限数据问题的数据空间解决方案。数据增强这一技术,可以提高训练数据集的大小和质量,从而可以使用它们构建更好的深度学习模型。这篇论文讨论的图像增强算法包括几何变换、颜色空间增强、核函数、混合图像、随机删除、特征空间增强、对抗训练、生成对抗网络、神经风格转换和元学习等。并且介绍了基于gans的增强方法的应用。除了增广技术外,本文还将简要讨论数据增广的其他特性,如测试时间增广、分辨率影响等。
图像数据增强技术
*Data Augmentations based on basic image manipulations
-
Geometric transformations 几何变换
-
Flipping 翻转
-
Color space 色彩空间
-
Cropping 裁剪
-
Rotation 旋转
-
Translation 平移
-
Noise injection 噪声
-
Color space transformations 色彩空间转换
Geometric transformations 几何变换
图像的几何变换又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新生位置。几何变换不改变图像的像素值,只是在图像平面上进行像素的重新安排。一个几何变换需要两部分运算,首先是空间变换所需的运算,如平移、镜像、缩放、旋转、仿射等,需要用它来表示输出图像和输入图像之间的像素映射关系;此外,还需要灰度差值算法,因为这种变换关系进行计算出的输出图像的像素很可能被映射到非整数坐标上。
Flipping 翻转
对于图像而言,水平翻转比垂直翻转更常见。
Color space 色彩空间
数字图像数据通常被编码为一个维度的张量(height×width×color channels)。在颜色通道空间中执行增强,这是非常常见的数据增强方法。非常简单的图像增强包括隔离单色通道,如R、G或B,或者是对其直方图进行改变。(用的比较多)
方法:调节亮度,对比度,饱和度,直方图均衡化,白平衡,clahe等Cropping 裁剪
改变图片center的大小。(对于商品识别,识别目标多的图片用的少)
Rotation 旋转
图像可以被旋转0-360°,顺时针,逆时针都可以,轻微旋转在1°-20°和-1°到-20°,注意,如果是有标签的数据,xml要跟着进行旋转。
Translation 平移
向左、向右、向上或向下移动图像可以是非常有用的转换,以避免数据中的位置偏移。
Noise injection 噪声
图片增加噪声提高模型的鲁棒性,常见的有高斯模糊,椒盐噪声,均值滤波等。
Color space transformations 色彩空间转换
将图像在rgb,hsv,lab等色彩空间之间相互转换。对于某些任务,颜色是非常重要的特征。
import tensorlayer as tl
image = tl.vis.read_image(r"2.jpg")
#缩放,缩小0.8倍
xx = tl.prepro.zoom(image, zoom_range=0.8)
#axis=1,水平翻转,axis=0,垂直翻转
xx = tl.prepro.flip_axis(image, axis=1, is_random=False)
# 调整亮度 gamma小于1,变亮,越小越亮
xx =tl.prepro.brightness(image, gamma=1.2, is_random=False)
#裁剪
xx=tl.prepro.crop(image, 400,400, is_random=False, row_index=0, col_index=1)
#调整亮度,饱和度,对比度
xx=tl.prepro.illumination(image, gamma=0.7, contrast=1.0 , saturation=1, is_random=False)
#随机调整亮度,饱和度,对比度
xx = tl.prepro.illumination(image