【深度学习】图像恢复各种损失函数

目录

    • [1. `L1Loss` (平均绝对误差 Mean Absolute Error,MAE)](#1. L1Loss (平均绝对误差 Mean Absolute Error,MAE))
    • [2. `MSELoss` / `L2Loss`(均方误差 MSE )与 `Log_MSE_Loss`](#2. MSELoss / L2Loss(均方误差 MSE )与 Log_MSE_Loss)
    • [3. `CharbonnierLoss` (可微鲁棒 L1 损失)](#3. CharbonnierLoss (可微鲁棒 L1 损失))
    • [4. `PSNRLoss` (峰值信噪比损失)](#4. PSNRLoss (峰值信噪比损失))
    • [5. `FrequencyLoss`(频域幅度谱损失)](#5. FrequencyLoss(频域幅度谱损失))
    • [6. `SSIMloss`](#6. SSIMloss)
    • [7. `EdgeLoss`(边缘损失/拉普拉斯金字塔残差损失)](#7. EdgeLoss(边缘损失/拉普拉斯金字塔残差损失))
    • [8. `LPIPSloss`(学习型感知相似度损失)](#8. LPIPSloss(学习型感知相似度损失))
    • 9.`PerceptualLoss`
      • [9.1 `PerceptualLoss`(多层感知特征损失)](#9.1 PerceptualLoss(多层感知特征损失))
      • [9.2 `PerceptualLoss`(带 Style/Gram 矩阵损失的感知损失)](#9.2 PerceptualLoss(带 Style/Gram 矩阵损失的感知损失))

1. L1Loss (平均绝对误差 Mean Absolute Error,MAE)

  • 数学公式
    L L 1 = 1 N ∑ i = 1 N ∣ x i − y i ∣ \mathcal{L}{L1} = \frac{1}{N} \sum{i=1}^N |x_i - y_i| LL1=N1i=1∑N∣xi−yi∣
  • 原理与特点
    • 计算预测值与真实值差值的绝对值均值。
    • 对异常值(Outliers)的惩罚是线性的,相比 L2 损失更具有鲁棒性(Robustness)
    • 在图像超分和去模糊中,相比 L2 损失能生成更锐利、边缘更清晰的图像,是底层视觉中最常用的主干损失之一。

2. MSELoss / L2Loss(均方误差 MSE )与 Log_MSE_Loss

  • 数学公式
    L M S E = 1 N ∑ i = 1 N ( x i − y i ) 2 , L L o g M S E = ln ⁡ ( L M S E ) \mathcal{L}{MSE} = \frac{1}{N} \sum{i=1}^N (x_i - y_i)^2, \quad \mathcal{L}{LogMSE} = \ln(\mathcal{L}{MSE}) LMSE=N1i=1∑N(xi−yi)2,LLogMSE=ln(LMSE)
  • 原理与特点
    • MSELoss :对大误差施加二次方惩罚。由于其假设噪声服从高斯分布,优化 MSE 相当于寻找所有可能清晰解的"均值",容易导致恢复出的图像过于平滑、缺乏高频纹理(过度平滑/发糊)
    • Log_MSE_Loss:对 MSE 取对数。在训练后期当误差很小时,取对数后梯度的绝对量不会像纯 MSE 那样极速衰减,能够维持对微小残差的更新动力。

3. CharbonnierLoss (可微鲁棒 L1 损失)

  • 数学公式
    L C h a r b o n n i e r = 1 N ∑ i = 1 N ( x i − y i ) 2 + ϵ 2 \mathcal{L}{Charbonnier} = \frac{1}{N} \sum{i=1}^N \sqrt{(x_i - y_i)^2 + \epsilon^2} LCharbonnier=N1i=1∑N(xi−yi)2+ϵ2
  • 原理与特点
    • 经典的 L 1 L_1 L1 损失在差值为 0 处是不可导的。Charbonnier 损失引入平滑项 ϵ \epsilon ϵ(如 1e-121e-6),使损失函数在 0 处连续可微
    • 它在大误差时逼近 L 1 L_1 L1 损失(保持鲁棒),在微小误差时保持平滑可导,是当前顶会图像恢复网络(如 Restormer, NAFNet, MPRNet)中最标准的替代 L 1 L_1 L1 的损失。

4. PSNRLoss (峰值信噪比损失)

  • 数学公式
    PSNR = 10 ⋅ log ⁡ 10 ( MAX 2 MSE ) , L P S N R = − PSNR \text{PSNR} = 10 \cdot \log_{10}\left(\frac{\text{MAX}^2}{\text{MSE}}\right), \quad \mathcal{L}_{PSNR} = - \text{PSNR} PSNR=10⋅log10(MSEMAX2),LPSNR=−PSNR
  • 原理与特点
    • PSNR 是图像恢复最主流的评估指标(越大越好),将其取负数即可作为最小化损失。

5. FrequencyLoss(频域幅度谱损失)

原理与特点

  • 图像的模糊本质上是高频分量(纹理、边缘)的衰减与丢失
  • 该损失使用二维实数傅里叶变换 torch.fft.rfft2 将空间域图像转换到频域,提取幅度谱(Amplitude Spectrum): A ( u , v ) = ∣ F ( x ) ∣ = R ( u , v ) 2 + I ( u , v ) 2 A(u,v) = |\mathcal{F}(x)| = \sqrt{R(u,v)^2 + I(u,v)^2} A(u,v)=∣F(x)∣=R(u,v)2+I(u,v)2
  • 然后在频域上直接计算预测pred真实gt $L_1/L_2$ 差距。

作用:强制网络在全频段(尤其是高频段)与清晰图像对齐,有效抑制伪影并恢复丰富的高频纹理。

平时我们看到的图像都是在空间域(Spatial Domain) ,即图像是由一个个带有坐标 ( x , y ) (x, y) (x,y) 和 RGB 值的像素点组成的。

但傅里叶变换告诉我们:任何一张二维图像,都可以拆解为无数个不同方向、不同波长(频率)的正弦波/余弦波叠加而成。 这就是频域(Frequency Domain)

在图像中:

低频分量(Low Frequency) :对应图像中变化平缓的大面积区域 (如蓝天、平整的墙壁、整体光照、大体颜色基调)。

高频分量(High Frequency) :对应图像中剧烈变化的边缘和细节 (如物体的轮廓、发丝、布料微小纹理、文字边缘)。

通过傅里叶变换,图像上的每个像素点变成了频域上的一个复数:

F ( u , v ) = R ( u , v ) + i ⋅ I ( u , v ) F(u, v) = R(u, v) + i \cdot I(u, v) F(u,v)=R(u,v)+i⋅I(u,v)

其中:

幅度谱(Amplitude Spectrum, ∣ F ( u , v ) ∣ |F(u, v)| ∣F(u,v)∣) :表示该频率的正弦波能量有多大(强度/丰富程度)

∣ F ( u , v ) ∣ = R ( u , v ) 2 + I ( u , v ) 2 |F(u, v)| = \sqrt{R(u, v)^2 + I(u, v)^2} ∣F(u,v)∣=R(u,v)2+I(u,v)2

相位谱(Phase Spectrum) :表示该频率的波在空间中的位置分布(结构和位置信息)

FrequencyLoss 关注的就是幅度谱 ------即检查预测图在各个频率上的能量分布是否和清晰原图一致。在传统的图像去模糊、超分辨率任务中,我们通常只用像素级损失( L 1 L_1 L1 或 L 2 L_2 L2 损失)。但这会导致一个严重问题:图像过度平滑(发糊) 。在频域中,高频和低频被物理隔离开 在不同的频段坐标点上。通过计算幅度谱损失,网络能够清清楚楚地看到:"虽然低频颜色对上了,但高频频段的能量严重不足!",从而强迫网络去生成锐利的边缘和细致的纹理

6. SSIMloss

  • 数学公式
    L S S I M = 1 − SSIM ( x , y ) \mathcal{L}_{SSIM} = 1 - \text{SSIM}(x, y) LSSIM=1−SSIM(x,y)
  • 原理与特点
    • 传统像素级损失将每个像素视作相互独立的,忽略了局部结构。
    • SSIM 从**亮度(Luminance)、对比度(Contrast)、结构(Structure)**三个维度评估图像局部块的相似度(取值 − 1 , 1 -1, 1 −1,1,越接近 1 越好)。
    • 优化 1 − SSIM 1 - \text{SSIM} 1−SSIM 可以让生成的图像在人眼感知结构上更加协调,避免局部结构畸变。

7. EdgeLoss(边缘损失/拉普拉斯金字塔残差损失)

  • 原理与特点

    • 专门针对Deblurring任务设计。
    • 实现细节:
      1. 构建了一个可分离的高斯低通滤波核( 5 × 5 5\times 5 5×5 的近似高斯核)。
      2. 对图像进行高斯平滑滤波。
      3. 下采样后放大并再次滤波,得到低频图像。
      4. 用原图减去低频图像,提取出纯高频边缘图(Laplacian 残差) : D i f f = C u r r e n t − F i l t e r e d Diff = Current - Filtered Diff=Current−Filtered。

    作用:直接计算预测与真实图像在"边缘图"上的差异,促使模糊的边缘迅速恢复锐利。

8. LPIPSloss(学习型感知相似度损失)

LPIPS 衡量两张图像 x x x 和 x 0 x_0 x0 之间的距离,整体计算流程分为 4 个关键步骤:

图像 x ──> 预训练网络 (AlexNet/VGG) ──> 提取多层特征 ──> 通道 L2 归一化 ──> 乘以学习权重 w ──>

图像 x0 ──> 预训练网络 (AlexNet/VGG) ──> 提取多层特征 ──> 通道 L2 归一化 ──> 乘以学习权重 w──>

计算 L2 距离 ──> 空间平均 & 多层求和

数学公式 : d ( x , x 0 ) = ∑ l 1 H l W l ∑ h , w ∥ w l ⊙ ( y ^ h w l − y ^ 0 , h w l ) ∥ 2 2 d(x, x_0) = \sum_{l} \frac{1}{H_l W_l} \sum_{h, w} \left\| w_l \odot \left( \hat{y}^l_{hw} - \hat{y}_{0, hw}^l \right) \right\|_2^2 d(x,x0)=∑lHlWl1∑h,w wl⊙(y^hwl−y^0,hwl) 22

步骤拆解

  1. 多尺度特征提取(Feature Extraction)
    将图像 x x x 和 x 0 x_0 x0 输入到预训练网络中,提取第 l l l 层的特征图 y l , y 0 l ∈ R H l × W l × C l y^l, y_0^l \in \mathbb{R}^{H_l \times W_l \times C_l} yl,y0l∈RHl×Wl×Cl。
  2. 通道维度单位归一化(Unit-length Normalization)
    这是 LPIPS 最关键的设计之一。它将每个像素位置 ( h , w ) (h, w) (h,w) 上的通道特征向量归一化为单位长度(Unit Vector):
    y ^ h w l = y h w l ∥ y h w l ∥ 2 \hat{y}{hw}^l = \frac{y{hw}^l}{\| y_{hw}^l \|_2} y^hwl=∥yhwl∥2yhwl
    这一步消除了特征幅度的绝对量影响,只保留特征激活的相对模式。
  3. 学习到的通道权重缩放(Linear Scaling with w l w_l wl)
    引入一个可学习的向量 w l ∈ R C l w_l \in \mathbb{R}^{C_l} wl∈RCl(在真实人类主观评测数据集上训练拟合得到),对归一化后的特征按通道进行加权 ⊙ \odot ⊙。它代表了哪些通道的特征对人类主观感知更重要
  4. 计算空间距离并加和(Spatial Averaging & Layer Summing)
    计算加权后的 L 2 L_2 L2 范数平方,并在空间宽高 ( H l , W l ) (H_l, W_l) (Hl,Wl) 上求平均,最后把所有选取的卷积层 l l l 的距离累加起来,得到最终的标量距离 d d d。

数值含义 :LPIPS 越小(越接近 0),说明两张图片在人类感知上越相似;数值越大,感知差异越大 1

:论文中发现,在作为感知指标时,结构最简单的 AlexNet 反而比更深更复杂的 VGG / ResNet 表现更好且计算最快 1,因此代码中通常默认 net_type='alex' 1

特性 普通 VGGLoss(Perceptual Loss) LPIPS Loss
特征归一化 ❌ 无通道归一化,直接计算原始特征值差异 强制进行通道维度的 Unit-length 归一化
层/通道权重 凭经验手工设定(如 1 / 32 , 1 / 16 1/32, 1/16 1/32,1/16 等固定衰减系数) 基于人类主观实验数据(BAPPS)严格学习拟合出各通道权重 w w w 1
骨干网络选择 主要是 VGG-16 / VGG-19 支持 AlexNet(官方推荐首选,效果最好)、VGG、SqueezeNet 1
主要定位 训练时的感知损失函数 既可作为训练 Loss,也是目前超分辨率/图像生成领域公认的客观质量评测 Benchmark 1
对人类感知的贴合度 较好 极高(目前公认最贴近人眼主观评价的指标之一) 1

9.PerceptualLoss

9.1 PerceptualLoss(多层感知特征损失)

  • 数学公式
    L V G G = ∑ l = 1 5 w l ⋅ L c r i t ( ϕ l ( x ) , ϕ l ( y ) ) \mathcal{L}{VGG} = \sum{l=1}^5 w_l \cdot \mathcal{L}_{crit}(\phi_l(x), \phi_l(y)) LVGG=l=1∑5wl⋅Lcrit(ϕl(x),ϕl(y))
  • 原理与特点
    • 利用在 ImageNet 上预训练好的 VGG-19 网络提取图像的多层次语义特征(slice1slice5 对应不同深度的 ReLU 输出)。
    • 浅层特征包含低级纹理/边缘信息,深层特征包含高级语义信息。
    • 分别赋予不同层衰减权重(如 $1/32, 1/16, 1/8, 1/4, 1.0$)后计算特征间的 L 1 L_1 L1 或 L 2 L_2 L2 距离。
    • 作用:弥补像素损失只关注数值近似的缺陷,使生成图在"视觉认知"层面更加自然逼真。

9.2 PerceptualLoss(带 Style/Gram 矩阵损失的感知损失)

  • 原理与特点
    • 包含两部分:
      1. Content Loss(内容损失):约束特征图的直接差异。
      2. Style Loss(风格损失) :通过计算特征图的 Gram 矩阵 ( G = F ⋅ F T G = F \cdot F^T G=F⋅FT),捕捉特征通道之间的相关性(即图像的风格、光照和统计纹理分布)。
相关推荐
AI工具测评家18 分钟前
2026知网维普AIGC检测原理拆解:快降重、笔过AI、快将AI三款降AI工具底层技术对比
人工智能·aigc·降重·ai检测·查重·降ai
mftang26 分钟前
基于TiTan(RA8P1) BLDC电机运行状态缺陷AI监测系统
人工智能
今天AI了吗27 分钟前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
数据库·人工智能·python·sql·深度学习·机器学习·rust
长江后浪博客28 分钟前
农业无人机管理平台:构建“无人机巡检 + AI识虫 + GIS地块 + 精准作业”的智慧农业系统
人工智能·无人机·智慧农业·无人机巡检·农业无人机管理平台·ai识虫·gis地块
故七月31 分钟前
GEO服务不是一锤子买卖:万域智瞰售后保障体系如何为企业AI认知资产“保驾护航”
大数据·人工智能
luckystar513~37 分钟前
Hermes实战 :skill编写 + skill治理
人工智能·agent·智能体·hermes·实战专栏
IT古董41 分钟前
AI资讯日报 | 2026年8月31日:政策持续加码,大模型密集更新,开源生态快速扩张,AI智能体加速从实验室走向真实业务场景
人工智能
仙女修炼史43 分钟前
gradcam在yolo中的应用
人工智能·python·yolo
亚川楼宇自控系统数据中心厂家1 小时前
金融数据中心:能碳一体化管理的技术逻辑
人工智能·金融