Skip to content

图像复原与超分辨率

图像复原(Image Restoration)是从低质量图像(模糊、噪声、低分辨率、缺损)恢复出高质量图像的技术。从 SRCNN 开创深度学习超分,到 Real-ESRGAN 成为 ComfyUI 标配放大器,再到 LaMa 的一键去水印,图像复原已经从论文走向大众工具。前置阅读:CNN 卷积网络、GAN 生成对抗网络、Transformer。

把图像复原想象成修复一幅旧画:

  • 超分辨率 = 画布太小看不清细节,放大却看到马赛克——超分模型就像一个临摹大师,先理解内容,再在更大的画布上画出清晰版本,连毛孔和发丝都补出来。
  • 去噪 = 画上溅了墨点,去噪模型理解”干净画面应该长什么样”,把不符合自然的噪点擦掉。
  • 去模糊 = 画面因为抖动而拖影,去模糊模型反推运动的轨迹,把拖影”收”回来。
  • 图像修复(Inpainting) = 画破了个洞,修复模型看周围的内容”脑补”出缺失部分——就像你遮住一句话的一半,别人仍能猜出全句。

GAN 的引入让这些任务产生了质的飞跃:判别器逼迫生成器产出”以假乱真”的纹理细节,而不仅仅是平均模糊的结果。而近年来,扩散模型(Diffusion Model)又为图像复原带来了新一轮飞跃——预训练的文生图模型本身就有极强的图像先验,利用它来做超分和修复,感知质量远超 GAN。

超分辨率(Super-Resolution, SR)的目标是将低分辨率(LR)图像放大为高分辨率(HR)图像。核心难点是:放大是一个多对一的不可逆过程——一个 LR 像素可能对应多种 HR 纹理,模型需要”猜”出最合理的那种。

退化模型描述了真实世界中 HR 图像如何变成 LR 图像,这是超分的基础。一个典型的退化过程可以表示为:

LR=Downsamples(HR∗kblur)+n+JPEG\text{LR} = \text{Downsample}_s(\text{HR} * k_{\text{blur}}) + n + \text{JPEG}

即高分辨率图像先经过模糊核(blur kernel)做卷积模糊,再下采样(↓_s 表示 s 倍缩小),然后叠加噪声,最后经过 JPEG 压缩——每一步都丢失信息。超分模型的任务就是在不知道退化细节的情况下,尽可能”反推”出原始的 HR 图像。

双三次插值(Bicubic Interpolation)

Section titled “双三次插值(Bicubic Interpolation)”

在深度学习之前,最常用的放大方法是双三次插值(Bicubic Interpolation)——对目标像素周围 4×4 共 16 个邻域像素,用三次多项式插值函数加权求和:

f(x)={(a+2)∣x∣3−(a+3)∣x∣2+1当 ∣x∣≤1a∣x∣3−5a∣x∣2+8a∣x∣−4a当 1<∣x∣<20当 ∣x∣≥2f(x) = \begin{cases} (a+2)|x|^3 - (a+3)|x|^2 + 1 & \text{当 } |x| \leq 1 \\ a|x|^3 - 5a|x|^2 + 8a|x| - 4a & \text{当 } 1 < |x| < 2 \\ 0 & \text{当 } |x| \geq 2 \end{cases}

其中 a 通常取 -0.5。双三次插值比最近邻和双线性更平滑,但本质上是一种固定的数学运算,无法”脑补”丢失的细节——深度学习的优势正在于此。

SRCNN(2014):三层 CNN 的开山之作

Section titled “SRCNN(2014):三层 CNN 的开山之作”

SRCNN(Learning a Deep Convolutional Network for Image Super-Resolution)是深度学习超分的开山之作,仅用 3 层 CNN 就超越了传统方法。它的三步流程非常直觉:

  1. Patch 提取与表示(9×9, 64 通道):用 9×9 的大卷积核从插值放大的 LR 图像中提取 64 维特征图。相当于把图像从 RGB 三通道映射到一个更丰富的特征空间。
  2. 非线性映射(1×1, 32 通道):用 1×1 卷积对每个像素的 64 维特征做非线性映射,压缩到 32 维。这一步相当于逐像素的”特征变换”,学习低分辨率特征到高分辨率特征的对应关系。
  3. 重建(5×5, 3 通道):用 5×5 卷积将 32 维特征图映射回 3 通道(RGB)输出图像。

SRCNN 先用双三次插值将 LR 放大到目标尺寸,再让这 3 层 CNN 学习残差映射。虽然结构简单,但它证明了”端到端学习”可以超越手工设计的插值算法,开启了深度超分时代。

ESRGAN(2018):RRDB + 相对判别器 + 感知损失

Section titled “ESRGAN(2018):RRDB + 相对判别器 + 感知损失”

ESRGAN(Enhanced SRGAN)的三大改进让超分质量有了质的飞跃:

  1. RRDB(Residual-in-Residual Dense Block):这是 ESRGAN 的核心模块,结构上有多层嵌套——内部是密集块(Dense Block),每个卷积层的输入都拼接了前面所有层的输出(密集连接,Dense Connection);多个密集块之间再用残差连接串联,最后外层再套一层残差连接。这种”残差中套残差”的设计让信息流动非常充分。关键改进是去掉了 Batch Normalization(BN 层)——原因有二:① BN 在测试时使用训练集的统计量,导致训练和测试之间存在分布不一致;② 超分任务中,BN 会引入不必要的缩放偏移,限制模型的表达能力。实验表明去掉 BN 后 PSNR 明显提升。

  2. 相对判别器(Relativistic Discriminator, RaGAN):标准 GAN 的判别器预测”这张图是真实的概率”,而相对判别器预测”真实图像比生成图像更真实的概率”。换句话说,它同时看真实图和生成图,判断两者的相对真假程度。这让生成器即使已经做得很好,仍然能从判别器获得有用的梯度信号——训练更稳定,结果更逼真。

  3. 感知损失改进:使用 VGG 网络激活层之前的特征做感知损失,而不是激活层之后。激活函数(ReLU)会截断负值,丢失约一半的特征信息;用激活前的特征能保留更丰富的纹理信息,输出更锐利。

**感知损失(Perceptual Loss)**的核心思想是:与其在像素层面比较两张图像,不如在”人类感知”的语义特征空间里比较。具体做法是用预训练的 VGG 网络提取特征,计算特征距离:

Lperc=∑∥ϕ(xsr)−ϕ(xhr)∥2L_{\text{perc}} = \sum \|\phi(x_{\text{sr}}) - \phi(x_{\text{hr}})\|^2

其中 φ\varphi 是 VGG 网络的某一层特征提取函数,xsrx_{\text{sr}} 是超分输出,xhrx_{\text{hr}} 是真实高分辨率图像。VGG 在 ImageNet 上训练过,它的特征已经”理解”了什么是边缘、什么是纹理、什么是物体结构——所以基于 VGG 特征的距离比像素级 MSE 更符合人眼感受。

相比之下,传统的像素损失(MSE)直接计算逐像素差值的平方平均:

Lmse=1N∑(xsr−xhr)2L_{\text{mse}} = \frac{1}{N} \sum (x_{\text{sr}} - x_{\text{hr}})^2

MSE 的问题是:当存在多种合理的高频纹理时,MSE 会迫使模型输出所有可能纹理的”平均值”,结果就是一张平滑模糊的图——因为模糊图到所有清晰图的平均距离最小。这就是为什么 ESRGAN 系列同时使用感知损失和对抗损失来恢复锐利纹理。

超分网络需要将低分辨率特征图放大到高分辨率尺寸。早期方法(如 SRCNN)先在输入端用双三次插值放大,再做卷积——计算量很大。ESRGAN 使用 PixelShuffle(像素重排) 实现高效上采样:

输入特征图: C × H × W
↓ 卷积扩展通道数
中间特征图: (C × r²) × H × W (r 为放大倍数)
↓ PixelShuffle 重排
输出特征图: C × (rH) × (rW)

PixelShuffle 的原理是将通道维度的值”折叠”到空间维度:把 r² 个通道按 r×r 的空间排列展开。例如 4 倍放大时,1 个输出像素位置需要 16 个通道值来填充 4×4 的区域,PixelShuffle 直接将 16 个通道重排为 4×4 空间块。这种方式比反卷积(Transposed Convolution)更不容易产生棋盘格伪影(checkerboard artifact)。

**感受野(Receptive Field)**是指输出特征图上一个像素对应输入图像上的区域大小。感受野越大,模型能利用的上下文信息越多。超分需要理解全局结构才能合理”脑补”细节,因此大感受野至关重要——ESRGAN 通过深层 RRDB 和大卷积核获得大感受野。

Real-ESRGAN(2021):真实世界退化

Section titled “Real-ESRGAN(2021):真实世界退化”

ESRGAN 在干净的双三次下采样数据上训练,遇到真实世界的低质量图片(老照片、截图、压缩图)效果就大打折扣。Real-ESRGAN 的核心贡献不在网络结构,而在于更真实的退化模拟:

二阶退化模型:
第一阶:HR → 模糊 → 下采样 → 加噪 → JPEG压缩 → 一阶LR
第二阶:一阶LR → 模糊(更小核) → 下采样 → 加噪 → JPEG压缩(或sinc滤波) → 最终LR

通过”退化两次”,合成的低质量图像更接近真实世界中经历多次劣化的图片。退化参数的随机采样范围很广:

  • 高斯模糊核:大小 1–21 像素,标准差 0.2–4.0
  • 噪声:高斯噪声 σ ∈ [1, 30],或泊松噪声
  • JPEG 压缩:质量因子 30–95
  • 下采样:面积插值、双线性、双三次随机选择

Real-ESRGAN 是目前最广泛使用的通用超分模型,在 ComfyUI、AUTOMATIC1111 等 AI 绘图工具中都是默认放大器。

图像去噪(Denoising)的目标是从含噪图像 y=x+ny = x + n 中恢复干净图像 xx,其中 nn 是噪声。

  • DnCNN(2017):采用**残差学习(Residual Learning)**策略——网络不直接学习干净图 xx,而是学习噪声 nn 的映射,然后从输入中减去:x=y−f(y)x = y - f(y)。因为噪声通常比干净图像更”简单”(结构更少),学习残差更容易。DnCNN 使用统一的网络结构处理不同噪声级别,甚至可以处理 Blind 去噪(不知道噪声强度)。残差学习的核心优势是:网络学习输入与输出之间的差异(残差),而非直接学习输出本身,让优化更容易收敛。

  • Noise2Noise(2018):突破性发现——不需要干净训练数据!用两张同样内容但含不同噪声的图(如同一场景的两次曝光),训练网络从一张预测另一张,效果与有干净数据相当。原理很优雅:只要噪声的期望为零(即噪声是随机的,正负抵消),网络的最优解就是干净图像——因为对所有噪声样本取平均就是无噪声图。这个思想催生了一系列自监督/无监督去噪方法。

  • BM3D:经典非深度学习方法,通过相似块匹配 + 3D 变换域滤波去噪。它先把图像分成小块,找到所有相似的小块(即使在远处),然后把这些相似块堆叠成 3D 阵列做变换域滤波——至今仍是深度学习方法的对比基线。

**去噪自编码器(Denoising Autoencoder)**是更早期的去噪思路:将干净图加噪后输入网络,训练它重建干净图。这种”加噪-去噪”的范式后来影响了扩散模型的训练方式——扩散模型本质上就是一种逐步去噪的生成模型(参见扩散模型)。

去模糊(Deblurring)需要反推模糊核(blur kernel),这是一个典型的病态逆问题。

  • DeblurGAN(2018):用 GAN 做运动去模糊。生成器采用 U-Net 结构——编码器逐步下采样提取多尺度特征,解码器逐步上采样恢复分辨率,中间用**跳跃连接(Skip Connection)**将编码器同尺度的特征直接传递给解码器,保留低层细节。这种”编码器-解码器+跳跃连接”的结构后来成了图像复原的通用范式。关键在于训练数据生成——用随机运动轨迹模拟模糊核。

    U-Net 的核心设计可以概括为:

    输入 → [Conv↓, Conv↓, Conv↓] → 瓶颈层 → [Conv↑+Skip, Conv↑+Skip, Conv↑+Skip] → 输出
    编码器(逐步压缩) 特征最抽象 解码器(逐步恢复,融合细节)

    跳跃连接(Skip Connection)的作用是将编码器中某一层的特征直接加到(或拼接到)解码器中对应的层,让网络既保留低层的空间细节(边缘、纹理),又利用高层的语义信息。

  • MPRNet:多阶段渐进式恢复,将去模糊分解为多个子任务,先粗后精。每个阶段都在特征域(通道注意力)和空间域(空间注意力)同时操作,逐步将模糊图像”拉”向清晰。

图像修复(Image Inpainting)要补全图像中被遮挡或缺失的区域。

  • Context Encoder(2016):用编码器-解码器 + 对抗训练填补中心缺失区域,开创了深度学习 inpainting 方向。结构类似一个早期的去噪自编码器——输入带洞的图,输出完整的图,靠判别器保证填充区域看起来真实。

  • Partial Convolution(NVIDIA, 2018):标准卷积会把缺失区域的零值纳入计算,导致填充区域出现颜色偏移。Partial Convolution 修改卷积操作使其自动忽略被遮挡区域,仅用有效像素计算——通过一个掩码(mask)加权卷积核的覆盖范围,再按有效面积归一化。这解决了不规则掩码(如随意涂鸦遮挡)的修复问题。

  • LaMa(2021):大感受野 inpainting 模型,核心创新是快速傅里叶卷积(Fast Fourier Convolution, FFC)。传统卷积是局部操作,一个 3×3 卷积核只能看到周围 3 像素;即使堆叠很多层,感受野的增长也有限。LaMa 利用傅里叶变换(Fourier Transform)——将信号从空间域转换到频率域,使卷积运算变为逐元素乘法——在频率域中做卷积,一个操作就能”看到”整张图像的全局信息。这种全局感受野让 LaMa 能修复大面积缺失,效果惊艳,是开源 inpainting 的标杆。

    **傅里叶变换(Fourier Transform)**将信号从空间域转换到频率域,使卷积运算变为逐元素乘法。直观理解:图像可以分解为不同频率的正弦波叠加——低频对应大尺度的平滑区域(天空、皮肤),高频对应细节和边缘(发丝、文字)。在频率域操作可以高效地捕获全局模式。

老照片修复是一个综合任务:同时处理褪色、划痕、模糊、噪声。典型方案:

  1. 划痕检测(分割或检测)→ 去除
  2. 超分辨率增强 → 恢复细节
  3. 色彩恢复(给黑白照片上色)

GFPGAN 和 CodeFormer 专注于人脸区域的修复,能让模糊的人脸恢复清晰五官——老照片修复工具的核心组件。GFPGAN 用一个预训练的人脸生成模型(StyleGAN2)提供先验,将模糊人脸”投影”到清晰人脸的流形上;CodeFormer 则更进一步,在极端退化条件下(如 16×16 的极低分辨率人脸)仍能恢复出合理的五官结构,鲁棒性优于 GFPGAN。

图像复原的训练有许多经验性的技巧,往往决定了模型的最终效果。

对于 Real-ESRGAN 这类方法,退化模型的参数设计比网络结构更重要:

  • 模糊核:过大(>21)会让图像过度模糊,训练数据不真实;过小(<7)退化和真实差距大。通常在 1–21 之间均匀采样。
  • 噪声标准差 σ:范围 1–30 覆盖了大多数真实场景;太大的噪声(σ > 50)几乎无法恢复,不应占太大比例。
  • JPEG 压缩质量:30–95,低质量 JPEG 会引入块状伪影(blocking artifact),训练模型处理这类伪影很有必要。
  • 下采样方式:面积插值、双线性、双三次随机选择,模拟不同场景。

Charbonnier Loss 是 MSE 的平滑替代,公式为:

Lchar=(xsr−xhr)2+ϵ2L_{\text{char}} = \sqrt{(x_{\text{sr}} - x_{\text{hr}})^2 + \epsilon^2}

其中 ϵ\epsilon 是一个小常数(如 1e-3)。与 MSE 相比,Charbonnier Loss 在误差较大时不会产生过大的梯度(L2 的梯度随误差线性增长),训练更稳定;在误差较小时又类似于 L1 损失,对异常值更鲁棒。几乎所有 ESRGAN 系列模型都使用 Charbonnier Loss 作为像素级损失。

  • Warmup:训练前几千步使用很小的学习率线性增长到目标值,防止初始阶段梯度太大导致训练崩溃。
  • Cosine Annealing:学习率按余弦曲线从初始值缓慢降到很小(如 1e-7),比阶梯式衰减更平滑,效果更稳定。
  • 典型配置:初始学习率 2e-4,warmup 5000 步,cosine annealing 总计 500K–1000K 步。
  • 基础增强:随机裁剪(HR 块大小通常 256 或 512)、随机水平/垂直翻转、随机 90° 旋转。这是几乎所有复原模型的标配。
  • 多尺度训练:在不同分辨率上训练同一模型,或在不同尺度的 patch 上采样,增强模型对不同输入尺寸的适应能力。
  • Mixup / Mosaic:部分新方法引入更激进的数据增强策略来提升泛化。

GAN 训练的稳定性是老大难问题,以下技巧被广泛使用:

  • 谱归一化(Spectral Normalization):约束判别器每一层权重矩阵的最大奇异值(谱范数),使判别器的 Lipschitz 常数不超过 1。直观理解:它限制了判别器对输入变化的敏感程度,让判别器不会”过于强大”导致生成器学不动。实现简单,效果显著,几乎所有现代 GAN 复原模型都使用谱归一化。
  • 梯度惩罚(Gradient Penalty):对判别器输入-输出之间的梯度范数施加惩罚,鼓励判别器在真实样本和生成样本之间表现平滑。WGAN-GP 是经典代表。
  • 判别器更新比例:生成器每更新一次,判别器可以更新 1–5 次,确保判别器始终”领先”生成器一步——这样生成器获得的梯度信号才足够有信息量。
# pip install realesrgan pillow
from PIL import Image
import numpy as np
from realesrgan import RealESRGANer
# 加载 Real-ESRGAN 模型(默认 x4 放大)
upsampler = RealESRGANer(
scale=4, model_path="RealESRGAN_x4plus.pth",
tile=0, half=True # half=True 用 FP16 加速
)
img = np.array(Image.open("old_photo.jpg").convert("RGB"))
result, _ = upsampler.enhance(img, outscale=4) # 放大 4 倍
Image.fromarray(result).save("old_photo_hd.png")
# 褪色老照片 → 清晰高清图

如果需要同时修复人脸,可以叠加 GFPGAN:

# pip install gfpgan
from gfpgan import GFPGANer
# 在 Real-ESRGAN 之上包装人脸修复
restorer = GFPGANer(
model_path="GFPGANv1.4.pth",
upscale=2, arch='clean',
bg_upsampler=upsampler # 背景用 Real-ESRGAN 超分
)
result, _, _ = restorer.enhance(img, paste_back=True)
# 人脸区域用 GFPGAN 恢复五官,背景用 Real-ESRGAN 超分,再拼回去
import cv2
import numpy as np
img = cv2.imread("noisy.png") # 读取含噪图像
# 方法1:非局部均值去噪(OpenCV 内置)
denoised = cv2.fastNlMeansDenoisingColored(img, None, 10, 10, 7, 21)
cv2.imwrite("denoised.png", denoised)
# 方法2:BM3D(需要 bm3d 包)
# import bm3d; out = bm3d.bm3d(img, sigma_psd=25/255)
# DnCNN/Noise2Noise 效果更好,但需 PyTorch 环境

使用 PyTorch 加载 DnCNN 模型做深度去噪的简单示例:

import torch
import cv2
import numpy as np
# 假设已加载预训练 DnCNN 模型
model.eval()
img = cv2.imread("noisy.png", cv2.IMREAD_COLOR).astype(np.float32) / 255.0
tensor = torch.from_numpy(img).permute(2, 0, 1).unsqueeze(0) # HWC → 1CHW
with torch.no_grad():
out = model(tensor) # 残差学习:out 是估计的噪声
clean = (tensor - out).clamp(0, 1) # 去噪 = 含噪图 - 噪声
cv2.imwrite("clean.png", (clean[0].permute(1, 2, 0).numpy() * 255).astype(np.uint8))
  • 退化模型决定泛化能力:Real-ESRGAN 成功的关键不是网络结构,而是更真实的退化模拟。如果你的超分模型在真实图片上效果差,多半是训练数据的退化模型与实际不符。
  • 感知损失 vs 像素损失:像素损失(MSE)让输出平均模糊(趋向均值);感知损失(VGG 特征距离)让输出更锐利但可能出现伪影。ESRGAN 系列同时用两者,权衡效果。在实际调参中,增大感知损失权重 → 更锐利但可能多伪影;增大像素损失权重 → 更保守但更平滑。
  • 放大倍数要合理:2x、4x 超分效果好;8x 以上属于”脑补”,结果可能与原图不符。人脸超分(GFPGAN)在极端低分辨率下仍有效,因为人脸结构先验很强。
  • Inpainting 的掩码比例:小面积缺失(少于 25%)效果好;大面积缺失(超过 50%)模型会”放飞”,结果可信度下降。LaMa 在大面积修复上是目前最好的。
  • 不要过度处理:超分和去噪都可能”创造”原图不存在的细节。在医学影像、安防取证等场景要谨慎使用——生成的人脸纹理可能不是真实的。
  • 时序一致性:视频超分要逐帧处理,如果每帧独立超分,放大的视频会出现闪烁。需要加入时序一致性约束(如光流引导),Real-ESRGAN 的视频模式 --tile 分块处理可以缓解但不能根治。
  • 老照片/老电影修复:Remini、美图秀秀等 APP 用 GFPGAN + Real-ESRGAN 让模糊老照片恢复清晰,用户量数亿。
  • 视频增强:将标清视频提升到 4K(如 Topaz Video AI),经典影视作品的数字化修复。
  • 医学影像增强:低剂量 CT 去噪(减少辐射同时保持图像质量)、超声图像超分。
  • 卫星图像处理:将低分辨率遥感图像超分,提升地物识别精度。
  • ComfyUI / Stable Diffusion 工作流:Real-ESRGAN / ESRGAN 是 AI 绘图的标配放大器(upscaler),将生成的 512×512 图像放大到 4K 再细化。
  • 游戏纹理增强:用 AI 超分提升经典游戏(如 Morrowind、GTA SA)的贴图分辨率。
  • 电商/直播画质增强:低带宽视频通话实时超分,手机端实时画质增强芯片(如联发科 APU、高通 NPU)。
  • 文档/文字增强:低分辨率截图、扫描件超分后做 OCR 识别率显著提升。

图像复原领域在 2024-2026 年经历了从 GAN 到扩散模型的范式转移,同时 Transformer 架构也占据了重要位置。

预训练的文生图扩散模型(如 Stable Diffusion)拥有极强的图像先验——它”知道”真实图像应该长什么样。利用这个先验做超分,在感知质量上大幅超越 GAN 方法:

  • StableSR(2023):直接微调 Stable Diffusion 的 UNet 做超分,输入低分辨率图作为条件,利用扩散模型的生成能力补全细节。
  • DiffBIR(2024):两阶段方法——第一阶段用 Restormer 恢复全局结构和纹理(把严重退化的图”拉”到可接受范围),第二阶段用 Stable Diffusion 的潜在扩散模型补细节。两阶段解耦了”恢复正确结构”和”生成逼真纹理”,效果惊艳。
  • SUPIR(Scaling Up Image Restoration, 2024):使用更大的扩散模型(SDXL 级别)做超分,在感知质量上达到了新的 SOTA,能恢复极其精细的纹理。缺点是计算量巨大,难以实时使用。
  • PASD(Pixel-Aware Stable Diffusion, 2024):在扩散超分中引入像素感知注意力,平衡了感知质量和像素保真度。
  • SwinIR(2021):基于 Swin Transformer 的通用图像复原模型,将超分、去噪、去雨等任务统一到 Transformer 框架下,成为经典基线。
  • HAT(Hybrid Attention Transformer, 2023):将窗口注意力(window attention,关注局部区域)和通道注意力(channel attention,关注跨通道关系)结合用于超分,在多个基准上超越了 SwinIR。核心思想是不同类型的注意力互补——窗口注意力捕获局部纹理,通道注意力捕获全局语义。
  • Restormer(2022):基于 Transformer 的高效图像复原模型,通过转置注意力(attention on channel dimension 而非 spatial dimension)避免了标准 self-attention 的高计算复杂度,在去噪、去模糊、去雨等多个任务上达到 SOTA。
  • NAFNet(Nonlinear Activation Free Network, 2022):去掉了非线性激活函数(如 ReLU、GELU),用简单的逐元素乘法替代,结构更简洁高效。性能却达到了 SOTA——这启示我们很多”标配”组件其实是冗余的。
  • DDRM(Denoising Diffusion Restoration Models, 2022)和 DDNM(Denoising Diffusion Null-Space Model, 2023):利用预训练的无条件扩散模型做零样本(zero-shot)复原——不需要针对特定退化重新训练,直接用预训练扩散模型处理超分、去噪、inpainting、着色等任务。原理是将复原问题映射到扩散采样过程中,利用扩散模型学到的图像先验做约束。
  • anime 模型:Real-ESRGAN 的 anime 变体(如 realesr-animevideov3)针对动漫图像优化,保留线条清晰度和色彩,被动漫/漫画放大工具广泛使用。
  • 各种微调变体:社区在 CivitAI 等平台发布了大量针对特定风格(3D 渲染、像素画、水彩画等)微调的 ESRGAN/Real-ESRGAN 模型。
  • Spandrel:将各种研究者训练的 .pth 模型统一转换为通用格式的项目,方便在 ComfyUI 等工具中无缝使用。
  • AI 画质增强芯片:联发科(天玑系列 APU)、高通(骁龙 NPU)、苹果(Neural Engine)均在手机 SoC 中集成实时超分能力,用于拍照增强、视频通话、游戏画质提升等场景,延迟在毫秒级。
类库语言说明
Real-ESRGANPython通用图像超分 SOTA,真实退化场景首选
GFPGANPython人脸专用修复,模糊人脸恢复清晰五官
CodeFormerPython人脸修复,鲁棒性优于 GFPGAN
LaMaPython大面积图像修复(inpainting)SOTA
SwinIRPython基于 Swin Transformer 的图像复原,多任务通用
HATPython混合注意力 Transformer 超分,当前 Transformer SOTA
RestormerPython高效 Transformer 复原,多任务通用
NAFNetPython无非线性激活函数的高效复原网络
StableSR / DiffBIRPython扩散模型驱动超分,感知质量最高
OpenCVPython/C++传统去噪/去模糊算法(BM3D、NLMeans、维纳滤波)
rembg + Real-ESRGANPython电商商品图增强常用组合
术语英文解释
超分辨率Super-Resolution (SR)将低分辨率图像放大为高分辨率图像
图像复原Image Restoration从退化图像恢复高质量图像的统称
退化模型Degradation Model模拟低质量图像的生成过程(模糊+噪声+压缩)
残差学习Residual Learning网络学习输入与输出之间的差异(残差)而非直接学输出,让优化更容易
感知损失Perceptual Loss用预训练 VGG 特征计算距离,比像素损失更符合人眼感知
对抗损失Adversarial LossGAN 判别器的损失,逼迫生成器产出逼真纹理
Charbonnier LossCharbonnier LossMSE 的平滑替代,对异常值更鲁棒
RRDBResidual-in-Residual Dense BlockESRGAN 的核心模块,深层残差密集连接,去掉了 BN
PixelShufflePixelShuffle (Pixel Rearrangement)将通道维度重排为空间维度实现高效上采样
双三次插值Bicubic Interpolation用三次多项式对 4×4 邻域加权插值,经典放大方法
感受野Receptive Field一个输出像素能”看到”的输入区域大小,越大越能利用全局信息
谱归一化Spectral Normalization约束权重矩阵最大奇异值,稳定 GAN 判别器训练
跳跃连接Skip Connection将编码器特征直接传递给解码器,保留低层细节
去噪自编码器Denoising Autoencoder输入加噪图训练重建干净图,“加噪-去噪”范式影响了扩散模型
快速傅里叶卷积Fast Fourier Convolution (FFC)在频率域做卷积获得全局感受野,LaMa 的核心
图像修复Image Inpainting补全图像中缺失或被遮挡的区域
部分卷积Partial Convolution自动忽略掩码区域的卷积操作,用于不规则修复
去噪Denoising去除图像中的随机噪声
去模糊Deblurring消除运动模糊或散焦模糊
  • Dong et al.,「Learning a Deep Convolutional Network for Image Super-Resolution」(ECCV 2014):SRCNN 论文,深度学习超分开山之作,仅 3 层 CNN 就超越传统方法。
  • Wang et al.,「ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks」(ECCVW 2018):ESRGAN 论文,引入 RRDB 和相对判别器,超分质量大幅提升。
  • Wang et al.,「Real-ESRGAN: Training Real-World Blind Super-Resolution with Pure Synthetic Data」(ICCVW 2021):Real-ESRGAN 论文,复杂退化模拟,真实世界超分 SOTA。
  • Lehtinen et al.,「Noise2Noise: Learning Image Restoration without Clean Data」(ICML 2018):Noise2Noise 论文,证明无需干净数据即可训练去噪模型,突破性思想。
  • Suvorov et al.,「Resolution-robust Large Mask Inpainting with Fourier Convolutions」(WACV 2022):LaMa 论文,用快速傅里叶卷积获得全局感受野,大面积修复 SOTA。
  • Zamir et al.,「Restormer: Efficient Transformer for High-Resolution Image Restoration」(CVPR 2022):Restormer 论文,高效 Transformer 架构在多任务上达到 SOTA。
  • Chen et al.,「Simple Baselines for Image Restoration」(ECCV 2022):NAFNet 论文,去掉非线性激活函数,更简洁高效。
  • Lin et al.,「DiffBIR: Towards Blind Image Restoration with Generative Diffusion Prior」(arXiv 2023):DiffBIR 论文,两阶段扩散超分方法。
  • Wang et al.,「Exploiting Diffusion Prior for Real-World Image Super-Resolution」(arXiv 2023):SUPIR 论文,利用大扩散模型做高质量超分。
  • GFPGAN GitHub:https://github.com/TencentARC/GFPGAN——腾讯开源的人脸修复工具,老照片修复核心组件。
  • Real-ESRGAN GitHub:https://github.com/xinntao/Real-ESRGAN——真实世界超分的官方实现及预训练模型。