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=1NETp(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)=(wx,wy).

仿射变换的最后一行为 [ 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=W1x,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+(xcx)cosθ(ycy)sinθ,y=cy+(xcx)sinθ+(ycy)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(xx0),y=hcHt(yy0).

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=ThTsTcTb(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=(L1)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),nN(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)=1p.

它模拟脉冲干扰和坏点。现代自然图像中并不总是存在这种噪声,因此只应在部署设备可能出现相似故障时使用。

4.3 随机模糊

高斯、均值和中值模糊在本文中合并为随机模糊。线性模糊可以统一表示为

x ′ = K ∗ x , x'=K*x, x=Kx,

其中 K K K 是模糊核。中值模糊不是线性卷积,而是用邻域中位数替换中心像素,更适合去除脉冲噪声。

4.4 运动模糊

运动模糊同样可以表示为图像与模糊核的卷积,但卷积核的能量沿运动方向分布。随机采样核长度和方向,可以模拟相机抖动或目标运动。若训练图像本身非常清晰,应控制使用概率,避免模型过度适应模糊纹理。

4.5 图像锐化

非锐化掩模可以写成

x ′ = x + α ( x − G σ ∗ x ) , x'=x+\alpha\bigl(x-G_{\sigma}*x\bigr), x=x+α(xGσx),

其中 x − G σ ∗ x x-G_{\sigma}*x xGσ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=Mx+(1M)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~=Mxi+(1M)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,vMu,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~=Mjxj+(1Mj)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=tKtK1t1.

配图展示的是每种策略的一次代表性采样结果;实际结果由随机选择的算子和强度决定。

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=1KwkTk(x),wDirichlet(α),

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+(1m)xmix,mBeta(α,α).

原论文还对同一图像的多个增强视图施加一致性损失,以提高模型面对常见图像损坏时的鲁棒性。


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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐