Channel-wise Autoregressive Entropy Models For Learned Image Compression
论文地址:https://arxiv.org/abs/2007.08739
代码地址:https://github.com/tensorflow/compression
Minnen google大神,他们实验室应该是这个方面,最牛逼的实验室了吧=-=
一. 简介
在熵模型中现阶段使用两种自适应方式,前向和后向的自适应策略。前进自适应利用边信息传输,可以有效地集成到深神经网络中。相反,后向自适应通常基于每个潜在点的因果上下文进行预测,这需要串行处理,这可降低了GPU / TPU利用率。该论文介绍了两个增强功能,基于通道的条件上下文和潜在表示的残差预测模块,优化网络架构,其具有比现有的上下文熵模型更好的速率失真性能,同时最小化串行处理。性能上,柯达图像集中平均节省6.7%的码率,Tecnick图像集上节省了11.4%的码率。
二 内容
2.1 现有方法缺陷
现有的熵模型缺陷明显,虽然自回归组件带来了巨大的性能增益,但是与此同时每个潜在点具有强烈的因果束缚,导致解码过程需要串行处理,具有很高的时间复杂度。
2.2 改善方法
整体架构基于Balle [1] 基线上构建。
下面先描述通道级自回归架构(忽略图中的LRP模块),整体架构通过对生成的y进行通道层次的分离,如上图,主编码器生成 y y y 潜在特征图 s h a p e shape shape 假定为(batch, width, height, channels),手动分离为 y 1 . . . . . y n y_1 .....y_n y1.....yn n个 slice,其中每一片的 s h a p e shape shape 为 (batch, width, height, channels/n). 整体框架会重复复用边信息以及已经解码的slice的预测当前正在解码的 slice的熵模型信息( μ \mu μ, σ \sigma σ)用于是熵编码和码率估计。
- 目标:获得所有潜在点较粗糙的建模信息。|| 根据原始的潜在特征图,使用超先验(Hyperior)结构预测整体每个潜在点的熵模型参数( μ \mu μ, σ \sigma σ),与基线[1] 中不同,基线模型采用单一的网络直接生成 μ \mu μ和 σ \sigma σ,此处使用两个网络分别预测 μ ’ \mu^’ μ’和 σ ’ \sigma^’ σ’,作用于后续每个slice进行更精准的参数估计。参数shape追踪: μ ’ \mu^’ μ’和 σ ’ \sigma^’ σ’ (batch, width, height, channels)
- 目标:获得slice_1的熵模型信息 || 利用第一步得到的 μ ’ \mu^’ μ’和 σ ’ \sigma^’ σ’,再次分别通过两个网络网络得到 μ 1 \mu^1 μ1和 σ 1 \sigma^1 σ1,可以利用得到的参数解码得到 slice_1的 y ^ \hat{y} y^ 。此处的参数即slice_1的熵模型参数,其信息源均且只来自于Hyperior架构得到的边信息。参数shape追踪: μ 1 \mu^1 μ1和 σ 1 \sigma^1 σ1 (batch, width, height, channels/n)
- 目标:获得第二个slice的熵模型信息 || 对于slice_1中得到的 y 1 y^1 y1分别 与 μ ’ \mu^’ μ’和 σ ’ \sigma^’ σ’进行通道拼接操作,暂记为: μ t e m p \mu^{temp} μtemp和 σ t e m p \sigma^{temp} σtemp随后分别输入到两个网络中得到 μ 2 \mu^2 μ2和 σ 2 \sigma^2 σ2. 即slice_2的熵模型参数。参数shape追踪: μ 2 \mu^2 μ2和 σ 2 \sigma^2 σ2 (batch, width, height, channels/n), μ t e m p \mu^{temp} μtemp和 σ t e m p \sigma^{temp} σtemp 是(batch, width, height, (1+1/n)*channels).
- 目标:获得第i个slice的熵模型信息 || 对于slice_i-1前所有的得到的 y b e f o r e − i y^{before-i} ybefore−i分别 与 μ ’ \mu^’ μ’和 σ ’ \sigma^’ σ’进行通道拼接操作,暂记为: μ t e m p \mu^{temp} μtemp和 σ t e m p \sigma^{temp} σtemp随后分别输入到两个网络中得到 μ 2 \mu^2 μ2和 σ 2 \sigma^2 σ2. 即slice_i的熵模型参数。参数shape追踪: μ i \mu^i μi和 σ i \sigma^i σi (batch, width, height, channels/n), μ t e m p \mu^{temp} μtemp和 σ t e m p \sigma^{temp} σtemp 是(batch, width, height, (1+(i-1)/n)*channels).
描述:通道级的自回归情况极大的改善了Pixel CNN自回归组件带来的长时序依赖问题,Kodak数据集768*512大小,在经过编码器变换成:48 * 32 * 192,基线模型的因果时序长度为: 48 * 32 优化后的数据因果时序长度仅为10.很大程度降低了解码的时间复杂度。
2.3 潜在残差预测(LRP)
所有有损图像压缩的都需要经过量化以便于熵编码,潜在表示 y y y 在被量化成 y ^ \hat{y} y^ 后,不可避免导致量化误差: r = y − y ^ r=y-\hat{y} r=y−y^, 这部分损失会导致解码图片的额外失真问题。LDR正是试图最小化这部分的误差情况。 现行的图像压缩框架量化分为三类:
- 随机二值化,将均匀噪声生成的值作为阈值,划分为0,1.省了熵编码的过程。这种方式比较古老了,现在一般不用
- 添加均匀噪声模拟量化过程。
- 前向传播采用round函数进行量化,而反向传播则采用直通传播的形式,即将原本无导数的情况设定为1.
在基线论文中,自回归论文以及分层模型论文均采用了均匀噪声模拟量化的形式,在本文中报道了将量化的形式切换成round带直通反向传播的形式,则性能下降,图示关注红色线条与紫色线条进行对比可以得出结论。采用混合噪声与直通round的形式,则发现在低码率的时候有性能增益,但是码率较高的时候,则会略微损失性能。
既然这种混合结构无法带来明显的性能收益,那为啥还要用? 因为需要为LDR模块铺路,LDR模块实质就是通过已经已经解码的信息以及熵模型的参数信息学习 r = y − y ^ r=y-\hat{y} r=y−y^这部分的损失以减少误差。划重点:如果在训练地时候用噪声近似量化,则 r = y − y ^ r=y-\hat{y} r=y−y^就是均匀噪声,但是LRP无法学习生成潜在残差用以减少均匀噪声的误差。 但是如果训练的时候采用round的四舍五入的形式,则 r = y − y ^ r=y-\hat{y} r=y−y^ 有迹可循。则可以得到 l r p = f l r p ( y ^ , μ ) lrp=f_{lrp}(\hat{y},\mu) lrp=flrp(y^,μ),以弥补损失误差。
如下列结构,别的不看,注意解码器前的 Concat操作,将
m
u
mu
mu 与
y
^
\hat{y}
y^ 结合输入至解码器,通过解码器自动学习减少最终的误差,这种方式显性的通过额外加入
m
u
mu
mu信息减少了重构失真,但是无法作用于码率情况。
厉害的来了,作者这篇文章巧妙结合自回归系统与LRP组件,可以从架构图中看出,LDR组件不仅仅能降低每一篇Slice的失真情况,而且由于自回归的特性,已解码的Slice质量越高,则当前的Slice的熵模型参数估计越精准,这变相作用与后续每一个Slice的解码,提高了码率估计的精准度,降低了比特率。
在做法上,这篇论文与论文[2]也有所不同,论文[2]中将
y
^
\hat{y}
y^ 与
m
u
mu
mu Concat后直接输入到解码端,而这篇文章在LRP组件输出后加入
t
a
n
h
/
2
tanh/2
tanh/2 手工将数值归至(-0.5,0.5)的范围,采用
y
^
+
l
r
p
\hat{y}+lrp
y^+lrp 的形式输入至解码端, 显性地将LRP组件定义为最小化量化误差组件,更符合模块化思想。
3. 结果展示
左图对比无Splites的情况下无LRP组件,单纯从通道自回归的情况下,分片的多少对性能的影响,右图加上了LRP组件。
图示对比其他图像压缩模型的方法,右图展示了对应组件参数下的Rate Saving.
1.J. Ballé, D. Minnen, S. Singh, S. J. Hwang, and N. Johnston, “Variational image compression with a scale hyperprior,” 6th Int. Conf. on Learning Representations, 2018.
2.Zhou J, Wen S, Nakagawa A, et al. Multi-scale and context-adaptive entropy model for image compression[J]. arXiv preprint arXiv:1910.07844, 2019.