基于深度学习的图像压缩算法:Minnen2018(基于自编码器与上下文模型的端到端优化图像压缩)
字数 2188 2025-12-09 04:49:10

基于深度学习的图像压缩算法:Minnen2018(基于自编码器与上下文模型的端到端优化图像压缩)

1. 题目描述

图像压缩的目标是在保证重建图像质量的前提下,尽可能减少图像的存储或传输数据量。传统方法如JPEG、JPEG2000依赖手工设计的变换和熵编码。本题探讨一种基于深度学习的端到端图像压缩方法,其核心思想是联合优化一个非线性变换(自编码器)和一个强大的上下文熵模型,以实现比传统编码器更高的率失真性能。

2. 算法核心思想

该方法模拟了传统编码器的“变换-量化-熵编码”流程,但全部由神经网络实现:

  1. 分析变换(编码器):将原始图像映射到一种紧凑的“潜在表示”。
  2. 量化:对潜在表示进行离散化,以便进行无损熵编码。
  3. 熵编码:利用一个概率模型(上下文模型)对量化后的潜在表示进行高效压缩。
  4. 合成变换(解码器):将解码后的潜在表示重构为图像。
    整个系统通过梯度下降联合优化变换和熵模型,以最小化“码率(压缩后大小)”和“失真(重建误差)”的加权和。

3. 网络结构与工作流程

步骤1:编码与量化

  • 编码器网络 (ga):一个卷积神经网络(CNN),输入为原始图像 \(x\),输出为潜在表示 \(y = g_a(x)\)
  • 量化:为了在训练中能够回传梯度,论文采用了加入均匀噪声的“松弛量化”。在训练时,向 \(y\) 加入均匀噪声 \(U(-0.5, 0.5)\),即 \(\hat{y} = y + U(-0.5, 0.5)\),来模拟量化过程。在推理(实际编码)时,则使用四舍五入的硬量化 \(\hat{y} = round(y)\)
  • 潜在表示:量化的 \(\hat{y}\) 是一个三维张量(通道×高度×宽度),其每个值(称为“潜在变量”)将被熵编码。

步骤2:上下文自适应的熵建模(核心创新)

这是该算法性能优异的关键。其目标是精准估计每个潜在变量 \(\hat{y}_{i}\) 的概率分布 \(p_{\hat{y}_i}\),以便使用算术编码进行高效压缩。

  • 联合先验模型 (p):使用一个全因子的广义正态分布(拉普拉斯或高斯混合模型)作为初始的、非自适应的先验。
  • 上下文模型 (h):一个基于CNN的自回归模型。它按照光栅扫描顺序(从左到右,从上到下)逐个预测潜在变量的分布参数(如均值、尺度)。当预测 \(\hat{y}_i\) 时,模型 \(h\) 只能“看到”已经编码并解码的因果上下文(即左上方的所有潜在变量)。这个上下文模型输出对先验分布参数的修正量(例如,调整均值 \(\mu_i\) 和尺度 \(\sigma_i\)),从而得到更精准的、依赖于局部图像内容的条件概率分布 \(p(\hat{y}_i | \hat{y}_{1}, ..., \hat{y}_{i-1})\)
  • 熵编码:在实际压缩时,编码器和解码器都运行这个相同的上下文模型。编码器根据该条件概率分布对 \(\hat{y}_i\) 进行算术编码;解码器则根据相同的概率分布进行算术解码,从而逐点恢复出 \(\hat{y}\)

步骤3:解码与重建

  • 解码器网络 (gs):一个与编码器对称的CNN,输入为解码恢复的量化潜在表示 \(\hat{y}\),输出重建图像 \(\hat{x} = g_s(\hat{y})\)
  • 损失函数:用于端到端训练,平衡码率(R)和失真(D)。

\[ L = R + \lambda \cdot D = \mathbb{E}[-\log_2(p(\hat{y}))] + \lambda \cdot \mathbb{E}[d(x, \hat{x})] \]

其中:
*   $ R $ 是估计的码率,由熵模型 $ p(\hat{y}) $ 计算得出(负对数似然)。
*   $ \lambda $ 是控制率失真权衡的超参数。
*   $ D $ 是失真度量,通常使用均方误差(MSE)或感知导向的度量(如MS-SSIM)。

4. 训练过程详解

  1. 数据准备:使用大规模图像数据集(如ImageNet)进行训练。
  2. 前向传播:图像 \(x\) 经过编码器、加噪量化、解码器,得到 \(\hat{x}\)
  3. 码率估计:在加噪的 \(\hat{y}\) 上,利用上下文模型修正后的条件概率分布计算每个位置的对数概率,求和得到总码率估计。
  4. 失真计算:计算 \(x\)\(\hat{x}\) 之间的MSE或MS-SSIM损失。
  5. 反向传播与优化:计算总损失 \(L\) 的梯度,由于加噪操作是可导的,梯度可以穿过“量化”步骤,同时更新编码器、解码器、先验模型和上下文模型的所有参数。

5. 总结与意义

Minnen2018方法首次成功地将强大的自回归上下文模型集成到端到端图像压缩框架中。它通过学习到的非线性变换比传统的DCT更能紧凑地表示图像信息,而上下文自适应熵模型则极大地减小了潜在表示在统计上的冗余,从而实现了超越传统编码器(如JPEG、JPEG2000)和早期深度学习编码器的率失真性能。它奠定了后续许多先进学习型图像编码器(如Balle2021提出的Transformer变体)的基础。

基于深度学习的图像压缩算法:Minnen2018(基于自编码器与上下文模型的端到端优化图像压缩) 1. 题目描述 图像压缩的目标是在保证重建图像质量的前提下,尽可能减少图像的存储或传输数据量。传统方法如JPEG、JPEG2000依赖手工设计的变换和熵编码。本题探讨一种基于深度学习的端到端图像压缩方法,其核心思想是联合优化一个非线性变换(自编码器)和一个强大的上下文熵模型,以实现比传统编码器更高的率失真性能。 2. 算法核心思想 该方法模拟了传统编码器的“变换-量化-熵编码”流程,但全部由神经网络实现: 分析变换(编码器) :将原始图像映射到一种紧凑的“潜在表示”。 量化 :对潜在表示进行离散化,以便进行无损熵编码。 熵编码 :利用一个概率模型(上下文模型)对量化后的潜在表示进行高效压缩。 合成变换(解码器) :将解码后的潜在表示重构为图像。 整个系统通过梯度下降联合优化变换和熵模型,以最小化“码率(压缩后大小)”和“失真(重建误差)”的加权和。 3. 网络结构与工作流程 步骤1:编码与量化 编码器网络 (ga) :一个卷积神经网络(CNN),输入为原始图像 \( x \),输出为潜在表示 \( y = g_ a(x) \)。 量化 :为了在训练中能够回传梯度,论文采用了加入均匀噪声的“松弛量化”。在训练时,向 \( y \) 加入均匀噪声 \( U(-0.5, 0.5) \),即 \( \hat{y} = y + U(-0.5, 0.5) \),来模拟量化过程。在推理(实际编码)时,则使用四舍五入的硬量化 \( \hat{y} = round(y) \)。 潜在表示 :量化的 \( \hat{y} \) 是一个三维张量(通道×高度×宽度),其每个值(称为“潜在变量”)将被熵编码。 步骤2:上下文自适应的熵建模(核心创新) 这是该算法性能优异的关键。其目标是精准估计每个潜在变量 \( \hat{y} {i} \) 的概率分布 \( p {\hat{y}_ i} \),以便使用算术编码进行高效压缩。 联合先验模型 (p) :使用一个全因子的广义正态分布(拉普拉斯或高斯混合模型)作为初始的、非自适应的先验。 上下文模型 (h) :一个基于CNN的 自回归模型 。它按照光栅扫描顺序(从左到右,从上到下)逐个预测潜在变量的分布参数(如均值、尺度)。当预测 \( \hat{y} i \) 时,模型 \( h \) 只能“看到”已经编码并解码的 因果上下文 (即左上方的所有潜在变量)。这个上下文模型输出对先验分布参数的 修正量 (例如,调整均值 \( \mu_ i \) 和尺度 \( \sigma_ i \)),从而得到更精准的、依赖于局部图像内容的条件概率分布 \( p(\hat{y} i | \hat{y} {1}, ..., \hat{y} {i-1}) \)。 熵编码 :在实际压缩时,编码器和解码器都运行这个相同的上下文模型。编码器根据该条件概率分布对 \( \hat{y}_ i \) 进行算术编码;解码器则根据相同的概率分布进行算术解码,从而逐点恢复出 \( \hat{y} \)。 步骤3:解码与重建 解码器网络 (gs) :一个与编码器对称的CNN,输入为解码恢复的量化潜在表示 \( \hat{y} \),输出重建图像 \( \hat{x} = g_ s(\hat{y}) \)。 损失函数 :用于端到端训练,平衡码率(R)和失真(D)。 \[ L = R + \lambda \cdot D = \mathbb{E}[ -\log_ 2(p(\hat{y}))] + \lambda \cdot \mathbb{E}[ d(x, \hat{x}) ] \] 其中: \( R \) 是估计的码率,由熵模型 \( p(\hat{y}) \) 计算得出(负对数似然)。 \( \lambda \) 是控制率失真权衡的超参数。 \( D \) 是失真度量,通常使用均方误差(MSE)或感知导向的度量(如MS-SSIM)。 4. 训练过程详解 数据准备 :使用大规模图像数据集(如ImageNet)进行训练。 前向传播 :图像 \( x \) 经过编码器、加噪量化、解码器,得到 \( \hat{x} \)。 码率估计 :在加噪的 \( \hat{y} \) 上,利用 上下文模型修正后的条件概率分布 计算每个位置的对数概率,求和得到总码率估计。 失真计算 :计算 \( x \) 与 \( \hat{x} \) 之间的MSE或MS-SSIM损失。 反向传播与优化 :计算总损失 \( L \) 的梯度,由于加噪操作是可导的,梯度可以穿过“量化”步骤,同时更新 编码器、解码器、先验模型和上下文模型 的所有参数。 5. 总结与意义 Minnen2018方法首次成功地将强大的自回归上下文模型集成到端到端图像压缩框架中。它通过学习到的非线性变换比传统的DCT更能紧凑地表示图像信息,而 上下文自适应熵模型 则极大地减小了潜在表示在统计上的冗余,从而实现了超越传统编码器(如JPEG、JPEG2000)和早期深度学习编码器的率失真性能。它奠定了后续许多先进学习型图像编码器(如Balle2021提出的Transformer变体)的基础。