引言
随着深度学习在计算机视觉的广泛应用,以卷积神经网络为代表的深度学习模型取得了突破性的进展。然而,直至今日,尽管提出了以 ViT 为代表的新一代视觉网络架构,但数据问题仍然是构建深度学习模型最常见的挑战之一。在实际的应用场景中,足量且高保真的优质数据集通常是可遇不可求的,一方面费钱费时费力不说,由于隐私保护和极端概率问题,数据集的获取变得尤为困难。因此,一种低成本且有效的方法便是利用数据增强来减少对训练数据的依赖,从而帮助开发人员更好更快地构建高精度的 AI 模型。
今天,CVHub 将为大家集中盘点计算机视觉各大主流任务上的数据增强策略[1],欢迎转发、收藏和关注,感谢大家长久以来的关注,我们将竭诚为大家带来持续高质量的 CV 论文解读,以下是本文的大纲:
- 数据增强的定义
- 数据增强的作用
- 数据增强的方式
数据增强的定义
数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集。
这里我们需要区分两个概念,即增强数据和合成数据:
- 合成数据:指在不使用真实世界图像的情况下人工生成数据,合成数据可由
GAN
或者现如今大火的AGI
技术Diffusion Model
产生; - 增强数据:从原始图像派生而来,并进行某种较小的几何变换(例如翻转、平移、旋转或添加噪声等)或者色彩变换(例如亮度、对比度、饱和度或通道混洗等),以此来增加训练集的多样性。
数据增强的作用
省钱 · 省时 · 省心
在实际的应用场景中,数据集的采集、清洗和标注在大多数情况下都是一个非常昂贵且费时费力且乏味的事情。有了数据增强技术,一方面可以减轻相关人员的工作量,另一方面也可以帮助公司削减运营开支。此外,有些数据由于涉及到各种隐私问题可能用钱都买不到,又或者一些异常场景的数据几乎是极小概率时间,这时候数据增强的优势便充分的体现出来了。
提升模型性能
众所周知,卷积神经网络对平移、视点、大小或光照均具有不变性。因此,CNN 能够准确地对不同方向的物体进行分类。在深度学习中,CNN 通过对输入图像进行卷积运算来学习图像中的不同特征,从而在计算机视觉任务上表现非常出色。随着 ViT 的提出,一系列 Vision Transformer 模型被提出并被广泛地应用。然而,无论是 CNN 还是 Transformer,均离不开数据的支持。特别是,当数据量较小时 CNN 容易过拟合,Transformer 则无法学习到良好的表征。
数据增强的方式
数据增强方式大致可分为两类:基础数据增强和高级数据增强。
Image data augmentation taxonomy
基础数据增强方法
Image Manipulation
图像处理(Image Manipulation)是指在图像中对其位置或颜色所做的更改:
- 位置操作是通过调整像素的位置来进行的;
- 颜色操作是通过改变图像的像素值来进行的。
Overview of the geometric data augmentations
首先介绍下几何数据增强(Geometric Data Augmentation
),它是指对图像几何形状所做的更改。几何指的是位置,比如以一定角度移动等。这种技术改变了图像中像素值的位置,例如旋转、平移和剪切。主要包含以下三种:
- Rotation
旋转,其让图像在 0 到 360 度之间旋转。此处旋转度数是一个超参数,应该根据实际需要选择。举个例子,就像大家最熟悉的 MNIST
一样,我们不能旋转 180 度,不然数字 6 旋转 180 就变成 9,这就离谱了。
- Translation
平移,它是另一种几何类型的数据增强,通过向上、向下、向右或向左移动图像以提供不同的视图。
- Shearing
错切,其字面意思是沿轴扭曲图像。错切是一种数据增强技术,可以将图像的一部分向一个方向移动,而另一部分则向相反方向移动。从技术上讲,它分为两类,即沿x轴切和y轴切。对于 x 轴,图像的顶部沿一个方向移动,底部沿完全相反的方向移动。而在 y 轴中,图像的左侧部分沿一个方向移动,右侧部分沿相反方向移动。
Overview of the non-geometric data augmentations
其次,我们为大家介绍下非几何数据增强(Non-Geometric Data Augmentations
),这种增强方式侧重于图像的视觉外观而不是其几何形状。例如噪声注入、翻转、裁剪、调整大小和色彩空间操作是均是非几何增强技术的范畴。下面介绍一些经典的方法:
- Flipping
翻转,它是一种水平或垂直翻转图像的数据增强技术,几乎会应用在许多视觉任务上。一般来说,我们常用的是水平翻转,垂直翻转在大多数情况下会导致目标歧义,例如一个人翻转过来就很不协调和自然,当然还是那句话,根据你的实际应用场景调整。
- Cropping and resizing
裁剪,属于另一种数据增强技术,常用作预处理增强。使用随机裁剪或中心裁剪作为数据增强。该技术会减小图像的大小,然后执行调整大小以匹配图像的原始大小,同时不会平滑图像的标签。
- Noise Injection
注入噪声是另一种数据增强技术,它有助于神经网络学习稳健的特征,对抵御对抗性攻击非常有帮助。
- Color Space
一般来说,图像通常是由 RGB 三颜色通道组成的。这里如果我们单独操纵每个通道值以控制亮度也是一种数据增强方式,有时也称为光度增强。这种增强有助于避免模型偏向 lightning 条件。执行颜色空间增强的最简单方法是隔离任何通道并添加 2 个填充任何随机值或 0 或 255 的通道。颜色空间常用于照片编辑应用程序,即用于控制亮度或暗度。
- Jitter
扰动,是一种通过随机改变图像的亮度、对比度、饱和度和色调的数据增强方式。对于这四个是超参数,我们应仔细选择它们的取值范围。例如,如果我们不小心多度提高了肺部疾病检测的X光图像亮度,这会使肺部在X光中变白混杂,对疾病诊断实际是没有帮助的。
- Kernel Filters
这是一种用来锐化或模糊图像的数据增强方式。一开始,我们可以滑动大小为 n x n 的窗口 Kernel 或高斯模糊过滤器和边缘过滤器的矩阵。高斯模糊滤镜可以使图像变得更加模糊,而边缘滤镜则使图像的水平或垂直边缘锐化。
紧接着,我们继续介绍第三种基于图像擦除的数据增强方式(Image Erasing Data Augmentations
):
Overview of the Mixup, Cutout, and CutMix
- Cutout[2]
Cutout
是通过在训练期间随机擦除子区域并在图像中填充 0 或 255 的一种数据增强技术。
- Random erasing[3]
Random erasing examples for different tasks
Random erasing
是一种像剪切一样随机擦除图像中子区域的一种增强方式。但它也随机决定是否屏蔽,并决定屏蔽区域的纵横比和大小。例如,我们可以在人脸识别任务中,通过这项数据增强技术来模拟戴口罩的效果。
- Hide-and-Seek[4]
捉迷藏(Hide-and-Seek
)数据增强的关键思想是将图像划分为随机大小的均匀正方形,并随机删除随机数量的正方形。当重要信息被隐藏时,它迫使神经网络学习相关特征。在每个epoch,它都会给出图像的不同视图。
An example of Hide-and-Seek augmentation
- GridMask[5]
最后,我们向大家介绍基于网格掩码的数据增强方式。先前的方法尝试解决随机删除可能会存在完全擦除对象或删除上下文信息区域的问题。为了在这些问题之间进行权衡,GridMask
创建统一的掩码,然后将其应用于图像,如下图所示:
GridMask augmentation
此图显示了 GridMask 增强的过程,具体的做法是生成一个掩码,然后将其与输入图像相乘。
Image Mixing Data Augmentations
图像混合数据增强在过去几年一直是一个热门话题。图像混合数据增强是关于将图像与其他图像或相同图像混合。在本文中,我们将其大致分为两类,即单图像混合(Single image mixing
)增强和非单图像混合(Non-single image mixing
)增强。
首先,第一部分我们先介绍下基于单图像混合的数据增强方式。单一图像混合技术顾名思义便是仅使用一个图像,并从不同的视角对其进行处理。最近在单图增强方面做了很多工作,比如LocalAugment
、SelfAugmentation
、SalfMix
等,下面分别为大家介绍下。
- Local Augment[6]
An example of Global and Local Rotation Image
Local Augment
,即局部增强的原理是将图像切分成小块,并在每个小块上应用不同类型的数据增强,目的是潜在地改变目标偏差属性,但产生显着的局部特征,如上图所示。虽然这种增强并不主宰全局结构,但提供了非常多样化的图像特征,这对于神经网络以更通用的方式学习局部特征至关重要。
- Self Augmentation[7]
An example of self augmentation
在 Self Augmentation
中,图像的随机区域会被裁剪并随机粘贴到图像中,以提高小样本学习的泛化能力。
- SalfMix[8]
SalfMix
提出的背景主要是关注是否可以泛化基于单图像混合增强的神经网络?为此,其思想是找到图像的第一个显着部分来决定应该删除哪个部分以及应该复制哪个部分。
Conceptual comparison between SalfMix method and other single image-based data augmentation methods
如上图所示,SalfMix 是通过显着性图将图像中显著的区域裁剪出来并放入非显着区域。
- KeepAugment[9]
This image shows the example of KeepAugment with other augmentations
引入 KeepAugment
是为了防止分布偏移降低神经网络的性能。KeepAugment 的想法是通过保留图像的显着特征和增强非显着区域来提高保真度。其中,被保留的特征进一步允许在不改变分布的情况下增加多样性。
- YOCO[10]
An example of YOCO augmentation
YOCO
,即You Only Cut Once,它可以从部分信息中识别对象并提高增强的多样性,从而鼓励神经网络表现得更好。YOCO 制作了两张图像,每张都应用了一个增强,然后将每张图像连接成一张图像。YOCO 易于实现,且不会引入任何参数,同时也易于使用。
- Cut-Thumbnail[11]
Comparison between existing data augmentation methods with CutThumbnail
Cut-Thumbnail
,即缩略图,是一种新颖的数据增强,它将图像调整到一定的小尺寸,然后用调整后的图像随机替换图像的随机区域,旨在减轻网络的形状偏差。Cutthumbnail 的优点是它不仅保留了原始图像,而且在调整后的小图像中保持全局。
Cut-Thumbnail
此图像显示了缩略图的缩小图像示例。其方式是将图像缩小到一定尺寸 112×112 或 56×56 后,尽管丢失了很多局部细节,但图像中的目标(狗)仍然可以识别。
最后一部分我们向大家介绍非单图像的混合数据增强(Non-Single Image Mixing Data Augmentations)方式,这块涉及的内容比较丰富,包括大家所熟悉的 Mixup、CutMix、CopyPaste 等混合增强技术,下面让我们一起看看吧!
Overview of the Mixup, Cutout, and CutMix
- Mixup[12]
Mixup
是根据混合因子(alpha)来混合任意两个随机图像,这些图像的相应标签也以相同的方式混合。混合数据增强不仅在准确性方面而且在鲁棒性方面都可持续地提高了性能。
- CutMix[13]
CutMix
解决了信息丢失和区域丢失问题。它的灵感来自 Cutout,其中任何随机区域都用 0 或 255 填充,而在 cutmix 中,不是用 0 或 255 填充随机区域,而是用另一个图像的补丁填充该区域。相应地,它们的标签也根据混合的像素数按比例混合。
- SaliencyMix[14]
An example of SaliencyMix augmentation
SaliencyMix
基本上解决了 Cutmix 的问题,并认为用另一个补丁填充图像的随机区域并不能保证补丁具有丰富的信息,因此混合未保证补丁的标签会导致模型学习关于图像的不必要信息 修补。为了解决这个问题,SaliencyMix 首先选择图像的显着部分并将其粘贴到随机区域或另一幅图像的显着或非显着区域。
SaliencyMix data augmentation procedure
上面这张图展示了该方法的实现过程。
- Puzzle Mix[15]
Puzzle Mix 提出了一种拼图混合数据增强技术,该技术侧重于灵活地使用图像的显着信息和基本统计数据,目的是打破神经网络对现有数据增强的误导监督。
A visual comparison of the mixup methods.
uzzle Mix
确保包含足够的目标类信息,同时保留每个样本 的局部统计信息。
- SnapMix[16]
SnapMix
是一种基于语义比例的混合数据增强,它利用类激活图来降低标签噪声水平。SnapMix 根据实际参与增强图像的显着像素创建目标标签,确保增强图像和混合标签之间的语义对应。
A visual Comparison of Mixup, CutMix, and SnapMix
该图给出了一个基本示例,可以看出,与 CutMix 和 Mixup 相比,SnapMix 生成的标签在视觉上更符合混合图像的语义结构。
- FMix[17]
FMix
也是一种混合样本数据增强(MSDA),利用随机二分类掩码。这些随机二分类掩码是通过对从傅立叶空间获得的低频图像应用阈值来获取的。一旦获得掩码,一个颜色区域将应用于其中一个输入,另一个颜色区域将应用于另一个输入。整体流程如下图所示:
Example masks and mixed images from CIFAR-10 for FMix