[END-TO-END OPTIMIZED IMAGE COMPRESSION]学习笔记

文章介绍了一种使用深度学习的图像压缩方法,通过非线性分析和合成变换,结合广义除法归一化GDN和均匀量化,实现端到端优化。实验表明,该方法在率失真性能上优于JPEG和JPEG2000,且视觉质量显著提升。
摘要由CSDN通过智能技术生成

论文地址:https://arxiv.org/abs/1611.01704

学习时也参考了本站中其他作者的优质文章:端到端的图像压缩------《End-to-end optimized image compression》笔记_端到端图像压缩_叶笙箫的博客-CSDN博客

简介

文章介绍了一种由非线性分析变换(编码器),均匀量化变化,非线性合成变换(解码器)所组成的图像压缩方法。这是一种使用了深度学习的图像压缩,变换部分是由线性卷积和非线性变换所组成,在激活层部分,作者采用了自己在另一篇文章中所提出来的方法:广义除法归一化GDN来实现的。优化则是在整个训练框架上联合优化模型的率失真性能。在经过大量的图片测试下,作者所设计的方法在率失真性能上的表现优于JPEG和JPEG2000,并且这些图像在所有比特率下所展现出来的视觉质量也都得到了显著的改善。

研究背景

有损压缩通常要考虑两个问题:离散化所表示的熵(即比特率)和由量化所引起的误差(失真),为了达到较好的压缩效果就必须权衡比特率和失真度。传统的图像压缩方法就是先将数据转化为一个合适的连续值来表示,再进行量化,最后使用无损的熵编码来对量化后的结果来编码。也就是说变换编码的三部分:变换、量化、熵编码相对独立且需要分别优化。而借助于神经网络,则可以开发出一种端到端的优化框架,直接优化率失真函数的性能。

作者的工作

提出了一种基于非线性变换的图像压缩的端到端的优化框架,作者是对MSE均方误差来进行优化的,但采取了一种更为灵活的形式,将线性卷积和非线性变换级联,使用广义除法归一化联合非线性。(这是一种受到生物视觉神经系统所启发而设计的方法,而且也被证明了在高斯化图像密度方面很有效)在级联之后,采用均匀标量量化的方式来进行量化。反变换就是逆着这个过程来重构图像。

而对于率失真曲线上的任一点,采用随机梯度下降法来对分析变换和合成变换中的参数进行联合优化。由于量化是不可微的,因此使用基于概率模型的连续松弛代理的损失函数,在训练中采用加性均匀噪声来代替量化步骤。最后直接实现了一个熵编码,并采用实际的比特率来报告性能,从而证明所提出的方法是作为完整的有损压缩方案的可行性。

图1:非线性编码框架如图,代表所输入的图像,经过非线性分析变换,从数据空间被映射到一个潜在的代码空间变成,再经过量化后得到压缩后的结果通过非线性合成变换就可以重建出图像。失真D是通过将通过一个固定的变换转化到感知空间,以此评估重建图像的失真。比特率R的下界是量化向量的离散概率分布的熵。通过R和D进行联合优化。

算法的结构:

图2:左边为非线性分析变换的过程,右边为非线性合成变换的过程
 

核心方法:

1. 广义除法归一化(GENERALIZED NORMALIZATION TRANSFORMATION)

非线性分析变换ga中:卷积,降采样(采用卷积层进行降采样),GDN层进行归一化,一共这三个阶段

在一般的神经网络中,都会采用BN层来使得数据接近于高斯分布,更加符合图像的特征,它在所有空间位置上的重新缩放因子是相同的,且一旦训练完成,缩放参数就是固定的。BN层是基于minibatch来计算均值和方差,而非整个训练集,相当于进行梯度式计算引入噪声,这就对图像重建这类对噪声敏感的模型不太适应。而GDN则是本文作者于另一篇文章中所提出来的,一种更适合图像重建的归一化层,GDN的特点有两个,高度非线性和空间自适应。

2. 非线性编码模型的优化

图3:率失真权衡。灰色区域代表所有可以实现的率失真值的集合。而在给定λ的情况下,最优性能的地方应该是凸出部分斜率为-1/λ的点。

率失真优化的公式可以写成

L=R+ λ*D

而RD优化的目标就是使得这个L最小化,本文没有直接在编码空间来量化,而是通过均匀量化器来进行量化,让非线性变化自己学习,用学习到的方式扭曲量化空间,从而实现矢量量化。通过设计适当的熵编码来实现实际速率仅略大于熵,因此也直接用熵的形式来定义目标函数:

均匀量化是采用四舍五入实现的:

i遍历每一个待编码的数值,yi’的边缘密度由一系列的离散概率质量给出:

目标函数公式的两项都依赖于量化值,但均匀量化部分处的导数几乎处处为0,这就导致梯度下降无法继续下去,所以论文提出了添加噪声然后做区间积分,以此来代替量化。这样就使得网络可以训练下去并用于反向传播的优化。

图4:添加噪声的示意图。是编码空间内的元素,是被噪声扰动后的元素,是量化后的元素。中的每个离散概率就等于相应量化区间内的的概率质量(用阴影部分表示)。的密度是一个连续函数,它在整数的位置插入了的离散概率值。

记均匀噪声,这个公式有两个理想的性质

        1) 它的概率密度函数就是熵q的概率质量函数的连续松弛

        2.)独立均匀的噪声就其边际矩而言,近似于量化误差

        总之,通过这样一种加均匀噪声的方式,实现了即能保证反向传播的进行,又不至于影响码率估计。

3、基于上下文的自适应二进制算术编码

算术编码所需要知道的是各符号出现的概率。本文采用的是类似于变分自编码器的生成模型,根据变分自编码器的编码原理可知,对于所给的输入,它的每个潜在输出特征都表示为概率分布。而先前的步骤就是设计神经网络让训练集中的图像经过学习,生成一个通用的概率分布(通过对特征概率质量函数pmf进行量化,计算出每点出现的概率值)。而压缩则是选择一张图片输入,并按照所生成的通用概率分布进行算术编码。

结论

训练集采用ImageNet数据集,包含6507张图片
图5:左图展示了量化所引起的误差和加入均匀噪声所引起的误差的关系,右图展示了离散熵率和可微熵率的关系,可以看出本文提出的量化模型和熵率估计模型和实际情况基本一致

图6.图像的质量与比特率的关系(左图采用MS SSIM为度量,右图则是MSE)

图7:展示的压缩结果

可以看出JPEG和JPEG2000有着明显的伪影,而本文所提出的方法则没有。

讨论

虽然神经网络的训练需要大量的时间成本,但是模型一旦训练好后,就取出来并用于压缩图像。对于大多数的图像,使用本文所提出来的方法能实现比JPEG和JPEG2000更好的率失真性能。而且图像几乎不存在伪影,肉眼观察显得非常自然,这种视觉上的改进作者认为主要是模型中的非线性变换经过优化后,在捕捉图像的特征时表现得和人脑中视觉的进化与发展类似。

作者在测试时也发现,对于部分图像,论文里的方法在高比特率下PSNR可能会表现的比JPEG和JPEG2000效果还要差。

作者表示,模型在优化时使用的失真度量仍然是MSE均方误差,而非更加接近人眼观察效果的感知度量,因为目前还并没有非常可靠的感知度量,如果有,使用感知度量代替MSE对模型优化可能会获得更好的方法。

此外,目前也没有方法能将不同图像的率失真曲线结合起来,当前的做法是对使用相同λ值压缩的图像求平均MSE和平均熵值,但是图8说明了,这种方法仍然或多或少会影响压缩的表现。

图8:总结率失真曲线,对于KodaK数据集的24张图片求平均MSE和平均比特率,对于JPEG,可以固定图像的压缩质量,然后对其求平均,JPEG2000可以固定压缩质量或者比特率,再求平均。

由于本人水平有限,如果有错误,恳请各位批评指正

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值