【深度学习】
2D图像数据增强方法
文章目录
前言
图像数据增强通过对训练样本施加具有随机性的变换,扩大模型在训练阶段看到的数据分布。它不能凭空增加真实信息,却能够把任务中合理的先验写入训练过程:目标左右移动后类别通常不变,摄像头产生轻微噪声后目标仍应被识别,部分区域被遮挡时模型也不应完全失效。
增强并非越强越好。若变换破坏了标签语义,模型学到的就不再是不变性,而是错误监督。例如,水平翻转可能改变文字、交通标志和医学图像中的左右方位;大角度旋转可能不适用于具有固定重力方向的场景;过强的颜色扰动也可能删除病理染色或遥感波段中的判别信息。
本文只讨论二维静态图像,筛选出6类、30种常用方法。相近操作已经合并:亮度、对比度、饱和度和色相归入Color Jitter;Cutout、Random Erasing和CoarseDropout归入随机区域擦除;高斯、均值和中值模糊归入随机模糊。文中所提及的增强效果示例图仅为方法原理示意。
1. 数据增强的统一表达
设训练集为
D = { ( x i , y i ) } i = 1 N , \mathcal D=\{(x_i,y_i)\}_{i=1}^{N}, D={(xi,yi)}i=1N,
T T T 是从增强分布 p ( T ) p(T) p(T) 中随机采样的变换, T x T_x Tx 和 T y T_y Ty 分别作用于图像与标签。带数据增强的经验风险可以写成
R ^ ( ω ) = 1 N ∑ i = 1 N E T ∼ p ( T ) [ ℓ ( f ω ( T x ( x i ) ) , T y ( y i ) ) ] . \hat R(\omega)=\frac{1}{N}\sum_{i=1}^{N} \mathbb E_{T\sim p(T)} \left[ \ell\bigl(f_{\omega}(T_x(x_i)),T_y(y_i)\bigr) \right]. R^(ω)=N1i=1∑NET∼p(T)[ℓ(fω(Tx(xi)),Ty(yi))].
对普通图像分类,许多变换满足 T y ( y i ) = y i T_y(y_i)=y_i Ty(yi)=yi。目标检测、实例分割和关键点任务不同:只要图像的几何坐标发生变化,检测框、掩码和关键点就必须执行同一变换。Mixup和CutMix还会改变监督目标,需要同步计算混合标签。
本文保留的30种方法如下。
| 类别 | 数量 | 方法 |
|---|---|---|
| 几何空间增强 | 8 | 翻转、旋转、平移、缩放、错切、随机裁剪、透视变换、弹性形变 |
| 颜色与光照增强 | 6 | Color Jitter、Gamma、RGB偏移、随机灰度、直方图均衡/CLAHE、白平衡/色温 |
| 噪声与图像质量增强 | 6 | 高斯/传感器噪声、椒盐噪声、随机模糊、运动模糊、锐化、压缩/分辨率退化 |
| 遮挡增强 | 2 | 随机区域擦除、GridMask |
| 多图像混合增强 | 4 | Mixup、CutMix、Mosaic、Copy-Paste |
| 自动增强策略 | 4 | AutoAugment、RandAugment、TrivialAugment、AugMix |
2. 几何空间增强

几何增强改变像素的位置。使用齐次坐标后,常见二维变换可以统一写成
[ x ′ , y ′ , w ′ ] T = H [ x , y , 1 ] T , ( u , v ) = ( x ′ w ′ , y ′ w ′ ) . [x',y',w']^{\mathsf T}=\mathbf H[x,y,1]^{\mathsf T},\qquad (u,v)=\left(\frac{x'}{w'},\frac{y'}{w'}\right). [x′,y′,w′]T=H[x,y,1]T,(u,v)=(w′x′,w′y′).
仿射变换的最后一行为 [ 0 , 0 , 1 ] [0,0,1] [0,0,1];透视变换允许最后一行的前两个元素非零。旋转、平移、缩放和错切都属于仿射变换,因此本文不再把“仿射变换”重复计为一种独立方法。
2.1 翻转(Flip)
宽度为 W W W 的图像做水平翻转时,横坐标变为
x ′ = W − 1 − x , y ′ = y . x'=W-1-x,\qquad y'=y. x′=W−1−x,y′=y.
水平翻转是自然图像分类和目标检测中最常见的增强之一。垂直翻转只适合方向不敏感的对象,例如部分遥感、显微或工业表面图像。文字、人脸不对称属性、道路方向和医学左右标记需要单独判断。
2.2 旋转(Rotation)
绕图像中心 ( c x , c y ) (c_x,c_y) (cx,cy) 旋转 θ \theta θ 时,坐标满足
x ′ = c x + ( x − c x ) cos θ − ( y − c y ) sin θ , y ′ = c y + ( x − c x ) sin θ + ( y − c y ) cos θ . x'=c_x+(x-c_x)\cos\theta-(y-c_y)\sin\theta,\qquad y'=c_y+(x-c_x)\sin\theta+(y-c_y)\cos\theta. x′=cx+(x−cx)cosθ−(y−cy)sinθ,y′=cy+(x−cx)sinθ+(y−cy)cosθ.
小角度旋转可以模拟拍摄姿态偏差。若任务具有固定朝向,应限制角度范围;旋转后产生的空白区域还需要选择常数、反射或边缘填充方式。
2.3 平移(Translation)
x ′ = x + t x , y ′ = y + t y . x'=x+t_x,\qquad y'=y+t_y. x′=x+tx,y′=y+ty.
平移降低模型对目标绝对位置的依赖。位移过大会将主体移出画面,导致标签与实际内容不一致,因此平移幅度应根据目标尺寸和图像边界确定。
2.4 缩放(Scaling)
x ′ = s x x , y ′ = s y y . x'=s_xx,\qquad y'=s_yy. x′=sxx,y′=syy.
s x = s y s_x=s_y sx=sy 时是等比例缩放,否则会改变目标长宽比。检测任务中,适度尺度抖动能够改善多尺度目标的识别,但过度缩小会直接删除小目标细节。
2.5 错切(Shear)
以水平方向错切为例:
x ′ = x + k x y , y ′ = y . x'=x+k_xy,\qquad y'=y. x′=x+kxy,y′=y.
错切可以模拟轻微的视角和姿态变化。自然图像一般采用较小的错切角;过大的错切会产生不真实的目标形状。
2.6 随机裁剪与缩放裁剪
先从原图裁出区域 [ x 0 , x 0 + w c ) × [ y 0 , y 0 + h c ) [x_0,x_0+w_c)\times[y_0,y_0+h_c) [x0,x0+wc)×[y0,y0+hc),再缩放到目标尺寸 W t × H t W_t\times H_t Wt×Ht:
x ′ = W t w c ( x − x 0 ) , y ′ = H t h c ( y − y 0 ) . x'=\frac{W_t}{w_c}(x-x_0),\qquad y'=\frac{H_t}{h_c}(y-y_0). x′=wcWt(x−x0),y′=hcHt(y−y0).
Random Resized Crop同时引入位置和尺度变化,是ImageNet训练中的经典配置。目标检测和分割必须检查裁剪后仍有多少目标可见,并删除面积过小或完全落在裁剪区域之外的标注。
2.7 透视变换(Perspective Transformation)
透视变换使用一般单应矩阵 H \mathbf H H:
u = h 11 x + h 12 y + h 13 h 31 x + h 32 y + h 33 , v = h 21 x + h 22 y + h 23 h 31 x + h 32 y + h 33 . u=\frac{h_{11}x+h_{12}y+h_{13}} {h_{31}x+h_{32}y+h_{33}},\qquad v=\frac{h_{21}x+h_{22}y+h_{23}} {h_{31}x+h_{32}y+h_{33}}. u=h31x+h32y+h33h11x+h12y+h13,v=h31x+h32y+h33h21x+h22y+h23.
它适合文档校正、道路场景和具有明显视角变化的目标。透视强度必须符合真实相机能够产生的范围。
2.8 弹性形变(Elastic Deformation)
弹性形变为每个像素增加平滑位移场:
p ′ = p + α ( G σ ∗ r ) ( p ) , \mathbf p'=\mathbf p+\alpha \bigl(G_{\sigma}*\mathbf r\bigr)(\mathbf p), p′=p+α(Gσ∗r)(p),
其中 r \mathbf r r 是随机位移, G σ G_{\sigma} Gσ 是高斯平滑核, α \alpha α 控制形变幅度。Simard等人在手写数字识别中使用弹性形变模拟书写变化。该方法也常用于医学图像、OCR和非刚性对象,但不适合几何结构必须严格保持的测量任务。
3. 颜色与光照增强

颜色与光照增强通常只改变像素值,不移动目标坐标,因此分类标签、检测框、掩码和关键点一般无需修改。它假设任务语义不依赖精确颜色;当颜色本身就是标签依据时,应缩小扰动范围。
3.1 颜色抖动(Color Jitter)
Color Jitter随机组合亮度、对比度、饱和度和色相操作:
x ′ = T h ∘ T s ∘ T c ∘ T b ( x ) . x'=T_{h}\circ T_{s}\circ T_{c}\circ T_{b}(x). x′=Th∘Ts∘Tc∘Tb(x).
实际实现通常还会随机改变四个操作的顺序。它适合自然图像分类和检测;病理染色、皮肤颜色识别以及多光谱数据需要更谨慎的参数。
3.2 Gamma变换
将像素归一化到 [ 0 , 1 ] [0,1] [0,1] 后,Gamma变换为
x ′ = x γ . x'=x^{\gamma}. x′=xγ.
γ < 1 \gamma<1 γ<1 通常使中间亮度变亮, γ > 1 \gamma>1 γ>1 使其变暗。它能够模拟相机响应和曝光差异,但不是简单的线性亮度平移。
3.3 RGB通道偏移
x c ′ = clip ( x c + δ c , 0 , 1 ) , c ∈ { R , G , B } . x'_c=\operatorname{clip}(x_c+\delta_c,0,1), \qquad c\in\{R,G,B\}. xc′=clip(xc+δc,0,1),c∈{R,G,B}.
每个通道使用独立偏移量可以模拟传感器和照明色偏。偏移过大会产生训练分布中不存在的颜色。
3.4 随机灰度化
常见亮度加权公式为
Y = 0.299 R + 0.587 G + 0.114 B . Y=0.299R+0.587G+0.114B. Y=0.299R+0.587G+0.114B.
灰度结果可以复制到三个通道,以保持网络输入形状不变。该方法迫使模型减少对颜色线索的依赖,但不适合需要颜色判别的任务。
3.5 直方图均衡化与CLAHE
全局直方图均衡化使用像素累计分布函数重新映射灰度:
x ′ = ( L − 1 ) CDF ( x ) , x'=(L-1)\operatorname{CDF}(x), x′=(L−1)CDF(x),
其中 L L L 是灰度级数。CLAHE在局部网格中执行均衡化,并裁剪过高的直方图峰值,避免把局部噪声无限放大。它常用于低对比度医学、工业和灰度图像。
3.6 白平衡与色温扰动
x c ′ = clip ( g c x c , 0 , 1 ) , x'_c=\operatorname{clip}(g_cx_c,0,1), xc′=clip(gcxc,0,1),
g R , g G , g B g_R,g_G,g_B gR,gG,gB 分别控制三个颜色通道的增益。提高红色并降低蓝色会产生偏暖效果,反之则偏冷。这类增强比任意RGB偏移更接近真实照明变化。
4. 噪声与图像质量增强

这一类方法模拟传感器噪声、失焦、运动、压缩和低分辨率输入。它们主要用于提高模型对成像质量变化的鲁棒性。增强参数应来自真实部署条件:手机拍摄、监控摄像头和工业相机面对的退化分布并不相同。
4.1 高斯噪声与传感器噪声
最简单的加性噪声模型为
x ′ = clip ( x + n , 0 , 1 ) , n ∼ N ( 0 , σ 2 ) . x'=\operatorname{clip}(x+n,0,1), \qquad n\sim\mathcal N(0,\sigma^2). x′=clip(x+n,0,1),n∼N(0,σ2).
真实传感器噪声还可能与亮度相关,并包含散粒噪声和读出噪声。若没有相机标定信息,适度高斯噪声通常是更稳妥的近似。
4.2 椒盐噪声
对每个像素,椒盐噪声可以写成
P ( x ′ = 0 ) = p 2 , P ( x ′ = 1 ) = p 2 , P ( x ′ = x ) = 1 − p . P(x'=0)=\frac{p}{2},\qquad P(x'=1)=\frac{p}{2},\qquad P(x'=x)=1-p. P(x′=0)=2p,P(x′=1)=2p,P(x′=x)=1−p.
它模拟脉冲干扰和坏点。现代自然图像中并不总是存在这种噪声,因此只应在部署设备可能出现相似故障时使用。
4.3 随机模糊
高斯、均值和中值模糊在本文中合并为随机模糊。线性模糊可以统一表示为
x ′ = K ∗ x , x'=K*x, x′=K∗x,
其中 K K K 是模糊核。中值模糊不是线性卷积,而是用邻域中位数替换中心像素,更适合去除脉冲噪声。
4.4 运动模糊
运动模糊同样可以表示为图像与模糊核的卷积,但卷积核的能量沿运动方向分布。随机采样核长度和方向,可以模拟相机抖动或目标运动。若训练图像本身非常清晰,应控制使用概率,避免模型过度适应模糊纹理。
4.5 图像锐化
非锐化掩模可以写成
x ′ = x + α ( x − G σ ∗ x ) , x'=x+\alpha\bigl(x-G_{\sigma}*x\bigr), x′=x+α(x−Gσ∗x),
其中 x − G σ ∗ x x-G_{\sigma}*x x−Gσ∗x 提取高频细节。锐化可以模拟不同相机处理管线,但过强时会产生光晕并放大噪声。
4.6 压缩与分辨率退化
低分辨率退化可以表示为
x ′ = U s ( D s ( x ) ) , x'=U_s(D_s(x)), x′=Us(Ds(x)),
D s D_s Ds 表示降采样, U s U_s Us 表示恢复到原尺寸。JPEG压缩还会进行分块离散余弦变换、量化和反变换。它们适合网络图片、视频帧和远距离监控场景,但质量下限不应低到目标已经无法被人工识别。
5. 遮挡增强

遮挡增强主动隐藏图像的一部分,减少模型只依赖某个局部判别区域的倾向。设二值掩码 M M M 中的1表示保留区域,填充值或随机噪声为 v v v,则
x ′ = M ⊙ x + ( 1 − M ) ⊙ v . x'=M\odot x+(1-M)\odot v. x′=M⊙x+(1−M)⊙v.
5.1 随机区域擦除
Cutout、Random Erasing和CoarseDropout都在随机位置删除一个或多个区域,主要区别在区域数量、长宽比分布和填充值。本文将它们合并为一种方法。分类任务通常保持原标签;检测任务如果大面积遮住唯一目标,可能需要限制擦除区域与目标框的重叠比例。
5.2 GridMask
GridMask使用周期性网格生成掩码,并可随机改变网格间距、遮挡比例、偏移和旋转角度。它比单个矩形擦除覆盖得更均匀,但遮挡比例过高会造成明显的信息损失。
6. 多图像混合增强

多图像混合直接组合两个或更多训练样本。它不再满足“图像变化但标签保持不变”的假设,因此必须明确图像与标签如何共同生成。
6.1 Mixup
从Beta分布采样混合系数
λ ∼ Beta ( α , α ) , \lambda\sim\operatorname{Beta}(\alpha,\alpha), λ∼Beta(α,α),
然后同时混合图像和标签:
x ~ = λ x i + ( 1 − λ ) x j , y ~ = λ y i + ( 1 − λ ) y j . \tilde x=\lambda x_i+(1-\lambda)x_j, \qquad \tilde y=\lambda y_i+(1-\lambda)y_j. x~=λxi+(1−λ)xj,y~=λyi+(1−λ)yj.
Mixup使类别之间的函数变化更平滑,常用于图像分类。它生成的半透明图像不一定符合真实视觉分布,但训练目标是正则化决策边界,而不是合成逼真照片。
6.2 CutMix
设 M M M 是二值区域掩码:
x ~ = M ⊙ x i + ( 1 − M ) ⊙ x j , \tilde x=M\odot x_i+(1-M)\odot x_j, x~=M⊙xi+(1−M)⊙xj,
λ = 1 H W ∑ u , v M u , v , y ~ = λ y i + ( 1 − λ ) y j . \lambda=\frac{1}{HW}\sum_{u,v}M_{u,v}, \qquad \tilde y=\lambda y_i+(1-\lambda)y_j. λ=HW1u,v∑Mu,v,y~=λyi+(1−λ)yj.
CutMix保留了局部真实纹理。分类标签按保留面积混合;检测和分割任务需要根据粘贴区域同步裁剪、保留或更新实例标注。
6.3 Mosaic
Mosaic把多张图像缩放、裁剪后放入同一画布的不同区域:
x ~ ( u , v ) = T k ( x k ) ( u , v ) , ( u , v ) ∈ Ω k . \tilde x(u,v)=T_k(x_k)(u,v), \qquad (u,v)\in\Omega_k. x~(u,v)=Tk(xk)(u,v),(u,v)∈Ωk.
{ Ω k } \{\Omega_k\} {Ωk} 是互不重叠的画布区域。该方法常见于单阶段目标检测器,可以在一张训练图中引入多个尺度和上下文。每个检测框必须经过对应的缩放、平移和裁剪。
6.4 Copy-Paste
使用源图像中的实例掩码 M j M_j Mj 把目标粘贴到另一张图像:
x ~ = M j ⊙ x j + ( 1 − M j ) ⊙ x i . \tilde x=M_j\odot x_j+(1-M_j)\odot x_i. x~=Mj⊙xj+(1−Mj)⊙xi.
Copy-Paste特别适合实例分割和目标检测。高质量实现需要真实实例掩码,并处理遮挡顺序、粘贴位置、尺度、边缘融合以及目标之间不合理的重叠。图中的Copy-Paste只用于说明组合形式。
7. 自动增强策略

自动增强不是新的像素算子,而是从旋转、颜色调整、剪切、直方图均衡等操作池中选择操作、概率和强度。一次策略可以写成
T = t K ∘ t K − 1 ∘ ⋯ ∘ t 1 . T=t_K\circ t_{K-1}\circ\cdots\circ t_1. T=tK∘tK−1∘⋯∘t1.
配图展示的是每种策略的一次代表性采样结果;实际结果由随机选择的算子和强度决定。
7.1 AutoAugment
AutoAugment使用强化学习搜索增强子策略,每个子策略包含操作、执行概率和强度。它能为特定数据集寻找有效组合,但搜索成本高,迁移到新任务时也不一定保持最优。
7.2 RandAugment
RandAugment删除复杂的策略搜索,只保留两个主要超参数:每张图像使用的操作数量 N N N 和统一强度 M M M。它从操作池中随机抽取 N N N 个操作,因此实现和调参成本明显低于AutoAugment。
7.3 TrivialAugment
TrivialAugment每次只随机选择一个操作及其强度,不需要单独搜索策略。它适合作为低成本基线,也便于判断复杂自动增强是否真的带来收益。
7.4 AugMix
AugMix生成若干随机增强链,再用Dirichlet权重混合各分支,最后与原图插值:
x m i x = ∑ k = 1 K w k T k ( x ) , w ∼ Dirichlet ( α ) , x_{mix}=\sum_{k=1}^{K}w_kT_k(x), \qquad \mathbf w\sim\operatorname{Dirichlet}(\alpha), xmix=k=1∑KwkTk(x),w∼Dirichlet(α),
x ′ = m x + ( 1 − m ) x m i x , m ∼ Beta ( α , α ) . x'=m x+(1-m)x_{mix}, \qquad m\sim\operatorname{Beta}(\alpha,\alpha). x′=mx+(1−m)xmix,m∼Beta(α,α).
原论文还对同一图像的多个增强视图施加一致性损失,以提高模型面对常见图像损坏时的鲁棒性。
8. 不同任务如何选择增强
| 任务 | 推荐起点 | 需要谨慎的增强 |
|---|---|---|
| 自然图像分类 | Random Resized Crop、水平翻转、Color Jitter、RandAugment | 过强弹性形变、与类别相关的颜色删除 |
| 目标检测 | 翻转、尺度抖动、裁剪、Mosaic、Copy-Paste | 几何变换后未更新检测框,CutMix后标注处理错误 |
| 语义/实例分割 | 裁剪、翻转、轻度弹性形变、Copy-Paste | 图像与掩码使用不同插值;掩码采用双线性插值导致类别污染 |
| OCR与文档 | 小角度旋转、透视、模糊、压缩、亮度变化 | 水平翻转、过强裁剪、改变字符结构的形变 |
| 医学图像 | 任务允许的翻转、旋转、弹性形变、Gamma、CLAHE | 改变左右方位、病灶形态或定量强度关系 |
| 低质量/跨设备图像 | 噪声、模糊、JPEG、分辨率退化、白平衡、AugMix | 与真实设备无关的极端退化 |
9. 总结
二维图像数据增强可以按作用对象归纳为六类:几何增强改变坐标,颜色增强改变像素分布,噪声与质量增强模拟成像退化,遮挡增强删除局部证据,多图像增强联合样本与标签,自动增强策略负责组合基础算子。
真正决定效果的不是方法数量,而是增强是否符合部署环境、是否保持标签正确,以及是否经过验证集和消融实验检验。对大多数任务,裁剪、允许方向上的翻转和轻度Color Jitter已经构成有效基线;数据不足、遮挡明显或成像条件复杂时,再加入Random Erasing、Mixup/CutMix、噪声退化或RandAugment。
参考文献
[1] Shorten, C., & Khoshgoftaar, T. M. A Survey on Image Data Augmentation for Deep Learning. Journal of Big Data, 2019. https://doi.org/10.1186/s40537-019-0197-0
[2] Simard, P. Y., Steinkraus, D., & Platt, J. C. Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis. ICDAR, 2003. https://doi.org/10.1109/ICDAR.2003.1227801
[3] DeVries, T., & Taylor, G. W. Improved Regularization of Convolutional Neural Networks with Cutout. 2017. https://arxiv.org/abs/1708.04552
[4] Zhong, Z., Zheng, L., Kang, G., Li, S., & Yang, Y. Random Erasing Data Augmentation. AAAI, 2020. https://arxiv.org/abs/1708.04896
[5] Chen, P., Liu, S., Zhao, H., & Jia, J. GridMask Data Augmentation. 2020. https://arxiv.org/abs/2001.04086
[6] Zhang, H., Cisse, M., Dauphin, Y. N., & Lopez-Paz, D. mixup: Beyond Empirical Risk Minimization. ICLR, 2018. https://arxiv.org/abs/1710.09412
[7] Yun, S., et al. CutMix: Regularization Strategy to Train Strong Classifiers with Localizable Features. ICCV, 2019. https://arxiv.org/abs/1905.04899
[8] Bochkovskiy, A., Wang, C.-Y., & Liao, H.-Y. M. YOLOv4: Optimal Speed and Accuracy of Object Detection. 2020. https://arxiv.org/abs/2004.10934
[9] Ghiasi, G., et al. Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segmentation. CVPR, 2021. https://arxiv.org/abs/2012.07177
[10] Cubuk, E. D., et al. AutoAugment: Learning Augmentation Strategies from Data. CVPR, 2019. https://arxiv.org/abs/1805.09501
[11] Cubuk, E. D., et al. RandAugment: Practical Automated Data Augmentation with a Reduced Search Space. CVPR Workshops, 2020. https://arxiv.org/abs/1909.13719
[12] Müller, S. G., & Hutter, F. TrivialAugment: Tuning-free Yet State-of-the-Art Data Augmentation. ICCV, 2021. https://arxiv.org/abs/2103.10158
[13] Hendrycks, D., et al. AugMix: A Simple Data Processing Method to Improve Robustness and Uncertainty. ICLR, 2020. https://arxiv.org/abs/1912.02781
[14] Buslaev, A., et al. Albumentations: Fast and Flexible Image Augmentations. Information, 2020. https://doi.org/10.3390/info11020125
[15] Torchvision Documentation. Transforming and Augmenting Images. https://docs.pytorch.org/vision/stable/transforms.html
更多推荐




所有评论(0)