【图像压缩】优化隐层与分段量化

《Deep Image Compression with Latent Optimization and Piece-wise Quantization Approximation》

绪论

本文提出向优化目标中引入隐层变量损失,同时提出分段量化近似方法。

算法

方法介绍

本方法自编码器包含主网络和超先验网络两部分。主网络如图1所示,包含残差块、注意力模块和卷积层。对于编码器,设计了两种残差块,两者都是3x3卷积核,其中一个包含sub-sampling操作。同时,在编码端核解码端都是用跳跃连接进行特征聚合。

注意力机制帮助模型注意图像中重要区域。注意力模块设计如图2:

超先验模型用来提升熵模型概率估计的准确性。使用sub-pixel卷积和下采样保存更多信息。在超解码器最后,是3D上下文模型和高斯熵模型。输入张量被转化为3D张量然后被3D卷积处理,3D上下文模型可以利用不同通道的特征表示,有利于熵模型参数估计。超先验网络结构如图3,熵估计模块如图4。

损失函数与面向隐层优化

为计算隐层变量的损失,计算过程为:原始隐层变量传入解码器获得重建图像,重建图像被输入编码器来获得重建隐层变量。我们定义原始隐层变量与重建隐层变量之间的误差为隐层损失。

我们希望我们的网络可以尽可能保留隐层特征。基于这个目标,使用L2范数计算隐层损失:

L_l = \left \| E(x) - E(D(E(x))) \right \|_2

实验损失函数包含四部分:感知损失,重建损失,熵编码损失,隐层损失:

L = \lambda_p L_p + L_e + \lambda_l L_l + \lambda_r L_r

感知损失L_p使用LPIPS,重建损失L_r使用MSE和一个可导实现的(1-MS-SSIM),熵编码损失L_e包含两部分为主网络和超先验的编码长度。隐层损失L_l包含主网络和隐层部分两部分。

使用分段函数来量化近似

反向传播时,区别于之前使用均匀噪声,我们使用非线性分段函数来近似量化过程。注意到隐层变量的范围在-1到1之间。因此设计分段函数如下:

G(x)=\left\{ \begin{array}{rcl} x + noise & & {x<-1, }\\ 2*x^2+4*x+1 & & {-1\le x \le -\frac{1}{2}, }\\ -2*x^2 & & {-\frac{1}{2} \le x < 0, }\\ 2*x^2 & & {0 \leq x < \frac{1}{2}, } \\ -2*x^2+4*x+1 & & {\frac{1}{2} \leq x < 1, } \\ x+noise && {otherwise.} \end{array} \right.

分段函数导数如下:

\frac{\partial G(x)}{\partial x}=\left\{ \begin{array}{rcl} 1 & & {x<-1, }\\ 4*x+4 & & {-1\le x \le -\frac{1}{2}, }\\ -4*x & & {-\frac{1}{2} \le x < 0, }\\ 4*x & & {0 \leq x < \frac{1}{2}, } \\ -4*x+4 & & {\frac{1}{2} \leq x < 1, } \\ 1 && {otherwise.} \end{array} \right.

随机噪声可以粗略的模拟量化过程。随机噪声的近似可能无法为不同子区间的精确舍入方向建模,同时也不能准确模拟量化函数的导数。相反,分段函数可以更好地反应在量化过程中数据变化的趋势。三角形导数与其他方法[ ]相比跟离散量化的导数形状更接近。如图6:

实验

为三种不同比特率0.075bpp,0.15bpp和0.3bpp。在训练阶段,使用从CLIC 2021中随机裁剪的192 \times 192块,采用两步训练过程:第一步,损失函数包含L_e, L_r, L_p,第二步,添加L_l到损失函数。

进行消融实验。在计算过程中,使用分段量化近似而不是直接量化,所有参数在训练模式下被确定。在极低比特率0.075bpp下,从CLIC2021验证集中选择两个图像块比较,结果为图7。即使面向隐层优化的模型比没有隐层损失优化的模型有更低的PSNR和更低的MS-SSIM,它有更高的感知质量。

另外,对分段函数进行消融实验。结果显示,使用分段函数进行量化近似可以用更少的比特率(0.2568bpp vs 0.2579bpp)提升PSNR 0.13,提升MSSSIM 0.0002。

CLIC2021验证集结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值