第五章:感知失真度量与率失真感知权衡

本章讨论超越MSE的失真度量,特别是与人类感知相关的失真度量。我们将探索率失真感知(Rate-Distortion-Perception, RDP)三角权衡理论,这是理解现代生成模型和图像压缩的关键。

学习目标:

  • 理解MSE的局限性和感知失真的必要性
  • 掌握SSIM、LPIPS等感知度量
  • 了解率失真感知(RDP)不可能三角
  • 建立感知质量与失真、码率之间的权衡直觉

5.1 传统失真度量的局限性

5.1.1 MSE的问题

均方误差(MSE)是最常用的失真度量:

$$\text{MSE} = \frac{1}{N} \sum_{i=1}^N (x_i - \hat{x}_i)^2$$ 优点:

  • 数学性质好(可微、凸)
  • 计算简单
  • 有清晰的率失真理论(高斯源)

致命缺陷:与人类感知质量相关性差

示例:

  • 图像整体平移1像素:MSE可能很大,但视觉上几乎无差别
  • 高斯模糊 vs 高频噪声:相同MSE,但感知质量差异巨大
  • 颜色轻微失真 vs 结构严重失真:MSE相同,但后者感知上更差

根本原因:MSE对所有像素一视同仁,忽略了人类视觉系统(HVS)的特性:

  • 对高频细节不敏感
  • 对边缘和结构很敏感
  • 具有掩蔽效应(亮区的噪声不易察觉)

详细分析MSE的缺陷:

  1. 空间不变性假设: - MSE假设所有位置的误差同等重要 - 实际上:面部区域的失真 > 背景的失真;边缘的失真 > 平坦区域的失真 - 人眼注意力集中在语义重要区域(人脸、文字、主体),MSE无法区分

  2. 频率不变性假设: - MSE在空域计算,对所有频率一视同仁 - 人类视觉系统的对比敏感度函数(CSF)表明:对中频最敏感,对极低和极高频不敏感 - 示例:天空中的高频噪声 vs 人脸上的低频模糊,MSE相同但后者更严重

  3. 像素独立性假设: - MSE逐像素计算,忽略像素间关系 - 人眼感知结构信息:边缘、纹理、几何形状的改变比像素值改变更显著 - 示例:将图像所有像素随机微调 vs 破坏一条重要边缘,MSE可能相同但后者感知更差

  4. 忽略上下文和掩蔽效应: - 亮度掩蔽:亮区域的噪声不易察觉 - 对比度掩蔽:高对比度区域的失真不易察觉 - 纹理掩蔽:复杂纹理可以"隐藏"噪声 - MSE无法捕捉这些心理物理现象

具体数值例子:

考虑256×256灰度图像(值域[0, 255]):

| 失真类型 | MSE | PSNR (dB) | 感知质量 |

失真类型 MSE PSNR (dB) 感知质量
整体+1灰度值 1 48.1 完全察觉不到
高斯模糊(σ=1) ~50 31.1 轻微模糊,可接受
块效应(8×8) ~50 31.1 明显压缩伪影,难以接受
随机噪声(σ=7) ~50 31.1 颗粒感,但结构清晰,尚可
破坏所有边缘 ~50 31.1 严重失真,完全不可接受

观察:相同MSE(~50)的5种失真,感知质量从"完全察觉不到"到"完全不可接受"跨越巨大范围!

MSE与感知的相关性研究:

在大规模图像质量评估数据库(如TID2013、LIVE)上:

  • MSE/PSNR与人类主观评分(MOS)的Spearman相关性:约0.6-0.7
  • SSIM的相关性:约0.8-0.85
  • LPIPS的相关性:约0.85-0.9

MSE的相关性显著低于现代感知度量。

为什么MSE仍然广泛使用?

尽管缺陷明显,MSE仍在实践中大量使用,原因包括:

  1. 历史惯性:几十年的标准和基准都基于PSNR
  2. 计算简单:无需深度网络,可以实时计算
  3. 理论完善:率失真理论主要围绕MSE建立
  4. 可优化性:凸函数,易于优化,收敛性好
  5. 无歧义性:不同实现结果一致,可重复

但在现代压缩和生成模型中,感知度量正在逐步替代MSE。

Rule of thumb:MSE适合作为"保真度"的粗略下界(确保不出现大误差),但不应作为唯一优化目标。实际系统应结合感知度量(SSIM、LPIPS)或人类评分。

5.1.2 PSNR的同样问题

峰值信噪比(PSNR)定义为: $$\text{PSNR} = 10 \log_{10} \frac{\text{MAX}^2}{\text{MSE}}$$ 其中MAX是像素最大值(如8位图像MAX=255)。

PSNR本质上是MSE的对数变换,具有同样的局限性。虽然在压缩领域广泛使用(因为历史和简单性),但作为感知质量指标并不理想。

Rule of thumb:PSNR > 40 dB通常视觉上很好,30-40 dB可接受,< 30 dB质量差。但这只是粗略估计,具体取决于内容。


5.2 感知失真度量

5.2.1 SSIM(结构相似性)

SSIM(Structural Similarity Index)考虑图像的亮度、对比度、结构三个成分: $$\text{SSIM}(x, y) = \frac{(2\mu_x\mu_y + C_1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)}$$ 其中:

  • $\mu_x, \mu_y$:局部均值(亮度)
  • $\sigma_x^2, \sigma_y^2$:局部方差(对比度)
  • $\sigma_{xy}$:局部协方差(结构)
  • $C_1, C_2$:稳定性常数

值域:SSIM $\in [-1, 1]$,完全相同时SSIM = 1

失真形式:$D_{\text{SSIM}} = 1 - \text{SSIM} \in [0, 2]$

优势:

  • 与人类感知相关性更好(比MSE提升显著)
  • 对平移、旋转等几何变换不敏感
  • 关注结构信息

局限:

  • 仍是手工设计的度量
  • 对某些失真类型(如纹理丢失)不够敏感

SSIM的三个成分分解:

SSIM可以分解为三个独立比较函数的乘积: $$\text{SSIM}(x, y) = l(x,y)^\alpha \cdot c(x,y)^\beta \cdot s(x,y)^\gamma$$ 其中:

  • 亮度比较:$l(x,y) = \frac{2\mu_x\mu_y + C_1}{\mu_x^2 + \mu_y^2 + C_1}$
  • 对比度比较:$c(x,y) = \frac{2\sigma_x\sigma_y + C_2}{\sigma_x^2 + \sigma_y^2 + C_2}$
  • 结构比较:$s(x,y) = \frac{\sigma_{xy} + C_3}{\sigma_x\sigma_y + C_3}$

标准SSIM取 $\alpha = \beta = \gamma = 1$, $C_3 = C_2/2$。

各成分的物理意义:

  1. 亮度成分 $l(x,y)$: - 衡量平均灰度的相似性 - 对整体明暗变化敏感 - 例子:图像过曝或欠曝会降低 $l$

  2. 对比度成分 $c(x,y)$: - 衡量标准差(对比度)的相似性 - 对整体对比度拉伸/压缩敏感 - 例子:去雾算法通常增加对比度

  3. 结构成分 $s(x,y)$: - 衡量归一化后的相关性 - 去除了亮度和对比度影响,只看"形状" - 这是SSIM最核心的创新,捕捉结构信息

计算细节:

实际应用中,SSIM在局部窗口(patch)上计算,然后平均: $$\text{MSSIM}(X, Y) = \frac{1}{M} \sum_{i=1}^M \text{SSIM}(x_i, y_i)$$ 其中 $x_i, y_i$ 是第 $i$ 个窗口(通常 11×11,使用高斯窗)。

稳定性常数的选择:

  • $C_1 = (K_1 L)^2$,$K_1 = 0.01$
  • $C_2 = (K_2 L)^2$,$K_2 = 0.03$
  • $L$ 是动态范围(8位图像为255)

这些常数避免分母接近0时的数值不稳定。

SSIM vs MSE的对比:

| 特性 | MSE | SSIM |

特性 MSE SSIM
计算复杂度 O(N) O(N·W²) (W=窗口大小)
值域 [0, ∞) [-1, 1]
完美匹配 MSE=0 SSIM=1
亮度不变性 否 近似
对比度不变性 否 近似
与感知相关性 0.6-0.7 0.8-0.85

SSIM的应用实例:

  1. 图像压缩评估:JPEG、WebP质量评估时,SSIM比PSNR更接近主观感受
  2. 视频质量监控:Netflix等流媒体使用SSIM的变体(如VMAF)评估视频质量
  3. 超分辨率:SR算法常用SSIM作为优化目标或评估指标
  4. 去噪:图像去噪算法的质量评估

SSIM的局限性案例:

尽管SSIM优于MSE,仍有局限:

  • 纹理损失:去除细小纹理但保留结构,SSIM可能仍然很高
  • 颜色失真:SSIM通常只在亮度通道计算,忽略色彩信息
  • GAN生成图像:GAN生成的图像可能SSIM不高(逐点不准确),但感知质量好

Rule of thumb:

  • SSIM > 0.95:几乎无法察觉的失真
  • SSIM 0.90-0.95:轻微失真,高质量
  • SSIM 0.80-0.90:可察觉失真,中等质量
  • SSIM < 0.80:明显失真

SSIM适合评估传统压缩(JPEG、H.264)但对GAN-based方法仍有不足。

5.2.2 MS-SSIM(多尺度SSIM)

MS-SSIM在多个尺度(通过下采样)计算SSIM并加权平均: $$\text{MS-SSIM} = L_M^\alpha \cdot \prod_{j=1}^M C_j^{\beta_j} S_j^{\gamma_j}$$ 其中 $L, C, S$ 分别是亮度、对比度、结构分量,$M$ 是尺度数。

优势:捕捉不同尺度的结构信息,更接近人类多尺度视觉处理。

多尺度的动机:

人类视觉系统在多个空间尺度上处理图像:

  • 粗尺度:识别整体结构、物体轮廓、场景布局
  • 中尺度:识别纹理模式、局部对比度
  • 细尺度:识别精细细节、边缘锐度

单尺度SSIM只能捕捉固定分辨率下的信息,MS-SSIM通过多尺度分析更全面地评估质量。

计算过程:

  1. 从原始分辨率开始(尺度1)
  2. 迭代下采样 $M-1$ 次(每次 2×2 下采样)
  3. 在每个尺度 $j$ 计算对比度 $C_j$ 和结构 $S_j$
  4. 仅在最粗尺度 $M$ 计算亮度 $L_M$
  5. 加权组合所有成分

标准参数设置:

  • $M = 5$ 个尺度
  • 权重:$\beta_1=\gamma_1=0.0448$, $\beta_2=\gamma_2=0.2856$, ..., $\alpha=\beta_5=\gamma_5=0.3046$
  • 这些权重通过主观实验优化得到

MS-SSIM vs SSIM:

| 特性 | SSIM | MS-SSIM |

特性 SSIM MS-SSIM
计算复杂度 低 中等
与感知相关性 0.80-0.85 0.85-0.88
对分辨率敏感性 高 低
对多尺度失真 弱 强

应用场景:

MS-SSIM特别适合评估:

  • 不同分辨率的压缩:如自适应流媒体中切换分辨率
  • 超分辨率:SR算法改变分辨率,需要多尺度评估
  • 抗锯齿/滤波:这些操作在多尺度上有影响

Rule of thumb:如果计算资源允许,MS-SSIM优于SSIM。对于快速评估(实时应用),SSIM足够;对于离线质量分析,使用MS-SSIM。

5.2.3 LPIPS(学习的感知度量)

LPIPS(Learned Perceptual Image Patch Similarity)使用深度网络学习感知度量: $$d_{\text{LPIPS}}(x, \hat{x}) = \sum_l w_l |\phi_l(x) - \phi_l(\hat{x})|^2$$ 其中 $\phi_l$ 是预训练深度网络(如VGG、AlexNet)第 $l$ 层的特征,$w_l$ 是权重。

思想:深度网络的中间层特征编码了人类视觉感知,特征空间的距离对应感知距离。

优势:

  • 与人类判断高度相关(目前最好的感知度量之一)
  • 自动从数据学习,无需手工设计

局限:

  • 计算复杂(需要深度网络前向传播)
  • 依赖特定网络架构

LPIPS的详细机制:

  1. 特征提取: - 使用预训练网络(如VGG16)作为特征提取器 - 提取多层特征:conv1_2, conv2_2, conv3_3, conv4_3, conv5_3 - 这些层从低级特征(边缘、纹理)到高级特征(物体、语义)

  2. 归一化: - 对每层特征进行L2归一化:$\hat{\phi}_l = \phi_l / |\phi_l|$ - 避免高激活值主导距离

  3. 逐层距离: - 计算每层的L2距离:$d_l = |\hat{\phi}_l(x) - \hat{\phi}_l(\hat{x})|^2$ - 空间上求和(对所有位置)

  4. 加权聚合: - 学习权重 $w_l$(通过2AFC实验数据训练) - 最终距离:$d = \sum_l w_l d_l$

为什么深度特征能反映感知?

核心洞察:在ImageNet等大规模数据集上训练的深度网络,其中间层特征捕捉了人类视觉系统关注的模式:

  • 低层(conv1-2):边缘、角点、简单纹理
  • 中层(conv3-4):复杂纹理、局部形状
  • 高层(conv5):物体部件、语义结构

感知相似性很大程度上由这些模式的相似性决定,因此特征空间距离近似感知距离。

LPIPS的变体:

  • LPIPS-VGG:使用VGG16(最常用)
  • LPIPS-Alex:使用AlexNet(更快)
  • LPIPS-Squeeze:使用SqueezeNet(轻量级)

不同backbone的性能略有差异,VGG通常最好但也最慢。

与其他度量的对比:

| 度量 | 计算时间 (256×256) | 与MOS相关性 | 可微性 | 适用场景 |

度量 计算时间 (256×256) 与MOS相关性 可微性 适用场景
PSNR < 1ms 0.6-0.7 是 快速评估
SSIM ~5ms 0.8-0.85 近似 传统压缩
MS-SSIM ~20ms 0.85-0.88 近似 多尺度评估
LPIPS ~50ms 0.85-0.92 是 深度学习、GAN

LPIPS在不同失真类型上的表现:

LPIPS对以下失真特别敏感(优于SSIM):

  • 语义失真:物体形状改变、场景结构破坏
  • 纹理伪影:GAN引入的幻觉纹理
  • 颜色偏移:色彩失真

LPIPS不如SSIM的场景:

  • 几何变换:平移、旋转(深度网络不是完全平移不变)
  • 极简图像:纯色、简单几何图形(深度特征不适用)

在优化中使用LPIPS:

LPIPS作为损失函数的优势:

  • 可微分,支持反向传播
  • 引导网络生成感知上更真实的图像
  • 广泛用于图像超分辨率、风格迁移、GAN训练

示例损失: $$\mathcal{L} = \lambda_1 |\mathbf{x} - \hat{\mathbf{x}}|^2 + \lambda_2 d_{\text{LPIPS}}(\mathbf{x}, \hat{\mathbf{x}})$$ Rule of thumb:

  • 在图像质量评估中,LPIPS > MS-SSIM > SSIM > PSNR(相关性排序)
  • 计算成本:LPIPS > MS-SSIM > SSIM > PSNR
  • 实际应用选择:研究/离线评估用LPIPS,实时应用用SSIM,简单基准用PSNR
  • LPIPS特别适合评估GAN/深度学习方法,这些方法可能PSNR/SSIM不高但感知质量好

5.3 感知约束下的率失真

5.3.1 用感知度量替换MSE

将率失真问题中的失真度量从MSE替换为感知度量 $d_p(x,\hat{x})$(如SSIM、LPIPS): $$R(D_p) = \min_{p(\hat{x}|x): \mathbb{E}[d_p(X,\hat{X})] \leq D_p} I(X; \hat{X})$$ 挑战:

  1. 感知度量通常非凸、不可微
  2. 没有闭式解
  3. Blahut-Arimoto算法仍可用,但收敛性不保证

实际策略:

  • 用MSE率失真函数作为起点
  • 在编码器设计中引入感知损失(加权MSE +感知损失)
  • 端到端优化(深度学习方法,第八章)

理论与实践的差距:

理论(经典率失真理论):

  • 基于MSE或汉明失真
  • 有闭式解(高斯源、伯努利源)
  • 凸优化问题,收敛性保证
  • 测试信道 $p(\hat{x}|x)$ 通常是高斯或对称分布

实践(感知度量):

  • SSIM、LPIPS等非凸、复杂度量
  • 无闭式解,依赖数值优化
  • 优化可能陷入局部最优
  • "最优"编码器可能是深度神经网络

数值计算方法:

  1. Blahut-Arimoto的推广: - 原算法假设失真度量可加且简单 - 对于SSIM等复杂度量,每次迭代需要数值积分或蒙特卡洛 - 计算成本显著增加

  2. 梯度下降: - 如果失真度量可微(如LPIPS),可以用梯度方法 - 参数化 $p(\hat{x}|x)$(如神经网络),直接优化: $$\min_\theta I(X; \hat{X}_\theta) \quad \text{s.t.} \quad \mathbb{E}[d_p(X,\hat{X}_\theta)] \leq D_p$$

  • 使用拉格朗日松弛或投影梯度法
  1. 经验风险最小化: - 在数据集上直接最小化: $$\min_\theta \frac{1}{N}\sum_{i=1}^N \left[R_\theta(x_i) + \lambda d_p(x_i, \hat{x}_i)\right]$$
  • $R_\theta$ 是编码器的率(通过熵估计)

与MSE率失真的对比:

| 特性 | MSE率失真 | 感知率失真 |

特性 MSE率失真 感知率失真
理论基础 完善 发展中
闭式解 存在(特定信源) 几乎不存在
计算难度 低 高
实用性 有限(与感知脱节) 高(接近人类判断)
应用 传统压缩理论基准 现代神经压缩、GAN

为什么仍然重要?

尽管感知度量的率失真理论不完善,但框架思想仍然有价值:

  • 指导我们思考率-质量权衡
  • 提供性能上界(即使难以精确计算)
  • 启发实际算法设计(如神经压缩的损失函数)

Rule of thumb:在理论分析中使用MSE率失真(可计算、有基准);在实际系统设计和评估中使用感知度量(SSIM、LPIPS)。两者结合可以兼顾理论洞察和实用性。

5.3.2 感知与失真的分离

关键观察:低失真(高PSNR)不一定等于高感知质量

例子(图像超分辨率):

  • 高PSNR方法:重建平滑,细节模糊,失真小但感知质量一般
  • 高感知质量方法(GAN):细节清晰,纹理真实,但可能引入幻觉细节(PSNR降低)

这提示失真和感知是两个不同的维度。


5.4 率失真感知(RDP)权衡

5.4.1 感知的定义

感知(Perception)衡量重建分布与真实分布的差异: $$P = d(P_X, P_{\hat{X}})$$ 常用度量:

  • KL散度:$D_{KL}(P_X | P_{\hat{X}})$
  • Wasserstein距离:$W_1(P_X, P_{\hat{X}})$
  • 总变差距离:$d_{TV}(P_X, P_{\hat{X}})$

直觉:感知度量关心"重建看起来像真实数据吗",而非"重建与特定样本 $x$ 有多接近"。

5.4.2 RDP不可能三角

Blau-Michaeli定理(2019):对于给定码率 $R$,失真 $D$ 和感知 $P$ 存在基本权衡: $$D + \lambda P \geq D^*(R) + \lambda P^*(R)$$ 其中 $D^*(R), P^*(R)$ 是各自的最优曲线。更强的形式:

不可能三角:无法同时达到低码率、低失真、低感知距离。必须在三者中权衡:

率失真感知不可能三角:
          低失真 (High PSNR)
               /\
              /  \
             /    \
            /      \
           /        \
          /          \
    低感知距离──────────低码率
  (High Perceptual  (Low Rate)
     Quality)

深入理解不可能三角:

这个三角形的每条边代表一个二元权衡:

  1. 底边:感知 vs 码率 - 保持低失真(PSNR高),在感知和码率之间权衡 - 传统率失真理论的领域 - 例如:JPEG质量因子从10到95

  2. 左边:失真 vs 感知 - 保持低码率,在失真和感知之间权衡 - 关键洞察:这是一个基本限制!给定码率,无法同时达到低失真和高感知 - Blau-Michaeli证明了:$P \geq f(D, R)$,即感知距离有下界

  3. 右边:失真 vs 码率 - 保持高感知质量(分布匹配),在失真和码率之间权衡 - 经典率失真理论,但约束变为感知而非失真

为什么存在这个三角形?核心原因:

失真(Distortion)和感知(Perception)测量不同的东西:

  • 失真 $D$:测量重建 $\hat{X}$ 与原始 $X$ 的逐点差异 $$D = \mathbb{E}[d(X, \hat{X})]$$ 这是一个依赖于配对的度量:每个原始样本 $x$ 对应一个特定的重建 $\hat{x}$。

  • 感知 $P$:测量重建分布 $P_{\hat{X}}$ 与真实分布 $P_X$ 的分布差异 $$P = d(P_X, P_{\hat{X}})$$ 这是一个边缘分布的度量:不关心哪个 $\hat{x}$ 对应哪个 $x$,只关心 $\hat{X}$ 的整体分布是否像 $X$。

矛盾的根源:

假设我们想同时达到低 $D$ 和低 $P$:

  • 低 $D$:要求 $\hat{X} \approx X$(逐点接近)
  • 这意味着 $\hat{X}$ 必须"跟随" $X$ 的具体值
  • 重建是确定性或近确定性的:$\hat{X} = f(X) + \text{小噪声}$

  • 低 $P$:要求 $P_{\hat{X}} \approx P_X$(分布匹配)

  • 这意味着 $\hat{X}$ 的变化模式要和 $X$ 一样丰富
  • 重建应该包含真实数据的所有统计特性(纹理、细节、边缘分布等)

冲突:如果 $\hat{X}$ 是 $X$ 的确定性(或低噪声)函数,则 $P_{\hat{X}}$ 比 $P_X$ 更"平滑"、更"模糊"。要让 $P_{\hat{X}} \approx P_X$,需要在重建中引入足够的随机性或细节,但这会增大与原始 $X$ 的距离(失真)。

数学表述(Blau-Michaeli的核心结果):

对于固定码率 $R$,存在感知-失真曲线: $$D(P, R) = \inf \{\mathbb{E}[d(X, \hat{X})] : I(X;\hat{X}) \leq R, \, d(P_X, P_{\hat{X}}) \leq P\}$$ 这个函数是凸的关于 $P$,并且满足: $$\frac{\partial D}{\partial P} < 0$$ 即:减少感知距离必然增加失真(在固定码率下)。

三种典型工作点的详细分析:

  1. 传统压缩(JPEG、H.264、HEVC): - 目标:$\min R$ subject to $D \leq D_0$(忽略 $P$) - 结果:低码率 + 低失真,但 $P$ 大(重建看起来模糊、过平滑) - 典型应用:需要高保真的场景(医疗、广播)

  2. GAN-based压缩(例如 HiFiC、Taming Transformers): - 目标:$\min R$ subject to $P \leq P_0$(允许 $D$ 大) - 结果:低码率 + 高感知(看起来真实),但 $D$ 大(PSNR低,逐点不准确) - 典型应用:视觉展示优先的场景(社交媒体、游戏资产)

  3. 高质量重建(接近无损): - 目标:$D \to 0$ 且 $P \to 0$ - 结果:需要 $R \to H(X)$(高码率) - 典型应用:归档、专业摄影

实际意义:

  • 不存在"完美"的压缩方法能在所有维度都最优
  • 选择工作点是应用驱动的决策:
  • 需要精确测量?优化失真(传统方法)
  • 需要视觉吸引力?优化感知(GAN方法)
  • 预算充足?两者兼顾(高码率)
  • 现代神经压缩的优势:可以通过调节 $\lambda$ 灵活地在RDP曲面上移动

5.4.3 RDP曲面

在三维空间 $(R, D, P)$ 中,可达域的边界形成RDP曲面: $$\mathcal{S} = \\{(R, D, P): \text{存在编码方案达到}\\}$$ 性质:

  • 曲面是凸的(某些条件下)
  • 沿任意两维的投影是凸函数
  • 实际系统的性能点应尽量接近曲面

Rule of thumb:选择工作点取决于应用:

  • 医疗图像、卫星图像:高保真(低 $D$)优先,允许高码率
  • 流媒体、社交网络:低码率优先,平衡 $D$ 和 $P$
  • 生成式应用:高感知质量(低 $P$)优先,允许一定失真

5.5 实现感知优化的方法

5.5.1 加权失真度量

简单方法:MSE + 感知损失的加权 $$\mathcal{L} = \alpha \cdot \text{MSE} + \beta \cdot d_{\text{perceptual}}$$ 例如: $$\mathcal{L} = \alpha |\mathbf{x} - \hat{\mathbf{x}}|^2 + \beta |\phi(\mathbf{x}) - \phi(\mathbf{x})|^2$$ 其中 $\phi$ 是VGG等网络的特征提取器。

权重参数的选择:

  • $\alpha$ 大,$\beta$ 小:偏向保真度,PSNR高,感知质量一般
  • 适用场景:医疗图像、卫星图像、需要精确测量的应用
  • 典型值:$\alpha=1, \beta=0.01$

  • $\alpha$ 小,$\beta$ 大:偏向感知,视觉质量好,PSNR可能较低

  • 适用场景:社交媒体、游戏、艺术应用
  • 典型值:$\alpha=0.1, \beta=1$

  • $\alpha \approx \beta$:平衡保真度和感知

  • 适用场景:流媒体、视频会议、通用图像压缩
  • 典型值:$\alpha=1, \beta=1$

实现示例:

在图像超分辨率中的常见损失: $$\mathcal{L} = \lambda_1 |\mathbf{x} - \hat{\mathbf{x}}|^2 + \lambda_2 |\phi_{\text{VGG}}(\mathbf{x}) - \phi_{\text{VGG}}(\hat{\mathbf{x}})|^2 + \lambda_3 \mathcal{L}_{\text{adv}}$$ 其中:

  • 第一项:像素级MSE,确保基本保真度
  • 第二项:VGG感知损失,提升纹理和结构
  • 第三项:对抗损失(可选),进一步提升真实感

Rule of thumb:

  • 从 $\alpha=1, \beta=0$ 开始(纯MSE)
  • 逐步增加 $\beta$,观察感知质量vs PSNR的权衡
  • 在验证集上通过人类评分选择最佳 $(\alpha, \beta)$
  • 不同应用需要不同权衡,没有通用最优值

5.5.2 对抗训练(GAN)

使用判别器 $D$ 优化感知质量:

生成器(编码-解码): $$\min_G \mathbb{E}[\text{MSE}(x, G(x))] - \lambda \mathbb{E}[\log D(G(x))]$$ 判别器: $$\max_D \mathbb{E}[\log D(x)] + \mathbb{E}[\log(1 - D(G(x)))]$$ 效果:判别器强制重建看起来真实,提升感知质量。

挑战:训练不稳定、可能引入幻觉细节。

GAN如何优化感知质量?

判别器 $D$ 试图区分真实图像和重建图像。为了"欺骗"判别器,生成器 $G$ 必须让重建:

  • 保留真实数据的统计特性(纹理、边缘分布)
  • 避免压缩伪影(块效应、模糊)
  • 生成细节即使逐点不准确,也在分布上真实

这正是优化感知质量(分布匹配)而非失真(逐点准确)。

对抗损失的变体:

  1. Standard GAN: $$\mathcal{L}_{\text{adv}} = -\mathbb{E}[\log D(G(x))]$$

  2. LSGAN(最小二乘GAN): $$\mathcal{L}_{\text{adv}} = \mathbb{E}[(D(G(x)) - 1)^2]$$ 更稳定,缓解梯度消失

  3. WGAN-GP(Wasserstein GAN with Gradient Penalty): $$\mathcal{L}_{\text{adv}} = -\mathbb{E}[D(G(x))]$$ 使用Lipschitz约束,训练更稳定

  4. Hinge Loss: $$\mathcal{L}_{\text{adv}} = -\mathbb{E}[\min(0, -1 + D(G(x)))]$$ 用于StyleGAN等现代架构

完整的训练损失:

实际应用中,通常组合多个损失: $$\mathcal{L}_G = \lambda_1 |\mathbf{x} - G(\mathbf{x})|^2 + \lambda_2 |\phi(\mathbf{x}) - \phi(G(\mathbf{x}))|^2 + \lambda_3 \mathcal{L}_{\text{adv}}$$

  • $\lambda_1 \sim 1$:保证基本保真度,防止完全偏离原图
  • $\lambda_2 \sim 10^{-2}$:感知损失,优化结构和纹理
  • $\lambda_3 \sim 10^{-3}$:对抗损失,提升真实感

训练技巧:

  1. Two-timescale update:判别器更新更频繁(如D更新5次,G更新1次)
  2. Spectral normalization:稳定判别器训练
  3. Progressive growing:从低分辨率逐步训练到高分辨率
  4. Feature matching:让G匹配D中间层特征,而非直接对抗

GAN在压缩中的应用实例:

  • HiFiC(High-Fidelity Generative Image Compression):极低码率下生成高感知质量图像
  • ESRGAN(Enhanced SRGAN):图像超分辨率
  • StyleGAN-based compression:学习隐编码空间,在StyleGAN隐空间中压缩

幻觉细节问题:

GAN可能生成不存在的细节(hallucinations):

  • 人脸图像:生成不存在的皱纹、饰品
  • 自然场景:生成不存在的树叶、纹理
  • 这在艺术应用可接受,在科学/医疗应用不可接受

Rule of thumb:

  • GAN适用于视觉质量优先的场景(流媒体、游戏)
  • 需要逐点准确的场景(医疗、测量)应避免GAN
  • $\lambda_3$ 控制GAN的影响强度,从小值开始逐步调整

5.5.3 Perceptual Loss的神经压缩

现代神经压缩(第八章详述)直接优化: $$\mathcal{L} = R + \lambda D_{\text{perceptual}}$$

其中 $R$ 是码率(通过熵估计),$D_{\text{perceptual}}$ 是感知损失(如LPIPS)。

通过端到端训练,同时学习编码器、解码器和概率模型,在RDP曲面上达到更好的工作点。


5.6 本章小结

核心概念:

  1. MSE的局限性: - 与人类感知相关性差 - 忽略视觉系统特性 - 对所有像素一视同仁

  2. 感知失真度量: - SSIM:结构相似性,考虑亮度、对比度、结构 - LPIPS:学习的感知度量,基于深度特征 - 与人类判断相关性:LPIPS > SSIM > PSNR

  3. 率失真感知(RDP)权衡: - 失真 $D$:与原始样本的差异(点对点) - 感知 $P$:重建分布与真实分布的差异(分布对分布) - 不可能三角:无法同时低 $R$、低 $D$、低 $P$

  4. 工作点选择: - 传统压缩:优化 $R$-$D$ - GAN压缩:优化 $R$-$P$ - 取决于应用需求

关键公式:

  • SSIM:$\text{SSIM} = \frac{(2\mu_x\mu_y + C_1)(2\sigma_{xy} + C_2)}{(\mu_x^2 + \mu_y^2 + C_1)(\sigma_x^2 + \sigma_y^2 + C_2)}$
  • LPIPS:$d_{\text{LPIPS}} = \sum_l w_l |\phi_l(x) - \phi_l(\hat{x})|^2$
  • 感知:$P = d(P_X, P_{\hat{X}})$(分布距离)
  • 加权优化:$\mathcal{L} = \alpha D + \beta P$

5.7 常见陷阱与错误

Gotcha #1: 高PSNR = 高质量?

错误:认为PSNR越高,图像质量越好。

正解:PSNR只是MSE的变换,不反映感知质量。特别是在GAN-based方法中,PSNR可能降低但感知质量提升。应该使用感知度量(SSIM、LPIPS)或人类评分。

Gotcha #2: 混淆失真和感知

错误:认为低失真(高PSNR)自动意味着高感知质量。

正解:失真和感知是不同的:

  • 失真:样本与样本的距离 $d(x, \hat{x})$
  • 感知:分布与分布的距离 $d(P_X, P_{\hat{X}})$

可以构造反例:$\hat{x}$ 与 $x$ 失真大,但 $\hat{x}$ 的分布与 $X$ 的分布一致(感知好)。

Gotcha #3: SSIM/LPIPS的计算细节

错误:忽略SSIM/LPIPS的实现细节(如窗口大小、颜色空间)。

正解:

  • SSIM:通常在YCbCr空间的Y通道计算,窗口大小 11×11
  • LPIPS:需要指定网络(VGG、AlexNet等)和归一化
  • 不同实现可能有显著差异,比较时应使用统一实现

Gotcha #4: 过度优化感知度量

错误:直接优化LPIPS作为损失函数,导致过拟合到VGG的特性。

正解:LPIPS等感知度量作为评估指标很好,但作为损失函数可能导致意外的伪影(如过度锐化、纹理伪影)。实际中常用加权组合(MSE + 感知损失 + 对抗损失)。

Gotcha #5: GAN的幻觉细节

错误:认为GAN生成的细节都是真实的。

正解:GAN为提高感知质量,可能"幻想"不存在的细节。这在某些应用(如艺术风格、人脸美化)可接受,但在其他应用(如医疗图像、科学数据)不可接受。需要根据应用选择。

Gotcha #6: RDP权衡的刚性

错误:认为RDP不可能三角意味着无法改进。

正解:不可能三角是理论极限,实际系统通常远未达到极限。通过更好的模型(如神经压缩)、更大的网络、更多数据,可以向极限接近,在RDP空间中获得更好的性能点。

Gotcha #7: 感知度量的主观性

错误:认为存在"唯一正确"的感知度量。

正解:感知是主观的,不同人对质量的判断可能不同。LPIPS等度量是在特定数据集上训练的,可能不适用于所有场景(如艺术画、医学图像)。最终的质量判断还是需要人类评分(MOS, Mean Opinion Score)。


下一章预告:第六章将探讨率失真理论在实际图像和视频压缩标准(JPEG、H.264、AV1)中的应用,理解理论如何指导实践。

← 第四章 | 返回目录 | 第六章:图像与视频压缩中的率失真 →