【图像压缩】使用调制自编码器实现可变比特率图像压缩

Yang, F., Herranz, L., Weijer, J. Van De, Guitián, J. A. I., López, A. M., & Mozerov, M. G. (2020). Variable Rate Deep Image Compression with Modulated Autoencoder. IEEE Signal Processing Letters, 27(8), 331–335. https://doi.org/10.1109/LSP.2020.2970539

绪论

基于CNN的图像压缩方法往往针对不同的率失真(rate-distortion tradeoff)训练不同的模型,需要浪费空间存储多个模型。

[1]中在瓶颈表示(latent/bottleneck representation)被量化之前,引入缩放参数,缩放瓶颈表示。首先重写目标函数为:

其中\circ和/都是point-wise操作,为减少需要训练的参数,空间维度共享缩放参数。之后在预训练好的模型基础上,固定encoder和decoder,针对不同的\beta fine tune。最终可以得到一个缩放参数图(其中不同的线代表不同的tradeoff \beta,一个蓝点代表一个系数(一个位置的隐层表示)的缩放参数):

这种方法的缺陷:1)只考虑了瓶颈表示不同通道的重要性 2)自编码器只对一个特定的R-D tradeoff优化(通常是高比特率),导致了在比特率时性能表现下降,比特率可变化范围窄。

 

基于调制自编码器的多压缩率图像压缩

公式化

基于端到端模型,扩展优化问题表示:

\mathop{argmin}_{\theta, \phi} \sum_{\lambda \in \Lambda }[ R(\tilde{z};\theta, \lambda) + \lambda D(x, \hat{x};\theta, \phi, \lambda) ]

R(\tilde{z};\theta, \lambda) = \mathbb{E}_{x\sim p_x, \Delta z \sim U}[-log_2 p_{\tilde{z}}(\tilde{z})] \\ D(x, \hat{x}; \theta, \phi, \lambda) = \mathbb{E}_{x\sim p_x, \Delta z\sim U}[ \left \| x - \hat{x} \right \| ^2 ]

其中\tilde{z}是添加了均匀噪声的瓶颈表示,其中尺度参数\lambda \in \Lambda = \{\lambda_1, \cdots,\lambda_M \}。所以\tilde{z} = \tilde{z}(\lambda)= f(x;\theta, \lambda)\hat{x} = \hat{x}(\lambda)= g(\tilde{z}(\lambda);\phi, \lambda),即\lambda作为模型参数(不可训练的)出现,决定压缩效果。

瓶颈缩放(scaling)

\lambda引入模型的一种简单的方法是在量化之前缩放瓶颈处的隐层表示,然后在编码端翻转缩放操作,即q = Q(z \odot s(\lambda)) \quad \hat{x}(\lambda) = g(\hat{z}(\lambda)\odot (1/s(\lambda)); \phi)s(\lambda)是tradeoff \lambda的缩放因子,传统编码器JPEG(图1a)使用预先定义好的s(\lambda)表,同时在去量化的时候整合反缩放实现。[1](图1b)保持编码器和解码器不变,对一个特定的tradeoff优化。

瓶颈缩放的方法1)只对隐层表示缩放所得不同tradeoff范围不大 2)使用缩放因子的逆可能限制了适应机制的灵活度 3)只对一个R-D tradeoff优化得到的自编码器在其他相距比较大的tradeoff上是次优的 4)分别训练自编码器和缩放因子可能有限制。

为了克服以上限制,提出调制自编码器MAE。

调制自编码器

MAE通过调制编码器与解码器的中间层表示实现可变编码率。设编码器中间层表示Z = \{z_1, \cdots, z_K\},解码器中间层表示U = \{u_1, \cdots, u_L\},MAE将他们替换为调制或者解调之后的结果:Z^{'} = \{z_1 \odot m_1(\lambda), \cdots, z_K \odot m_K(\lambda)\}U^{'} = \{u_1 \odot d_1(\lambda), \cdots, u_K \odot d_K(\lambda)\},其中m(\lambda) = \{m_1(\lambda), \cdots, m_K(\lambda) \}d(\lambda) = \{d_1(\lambda), \cdots, d_K(\lambda) \}是调制和解调函数。

MAE结构拓展了端到端模型,在卷积层与GDN间插入调制,IGDN与反卷积之间插入解调。其中调制或者解调函数以tradeoff参数\lambda为输入,经过网络结构:FC(150 units)+ReLU(非线性)+FC(192x3 units 3个m,每个m通道同中间表示为192)+EXP(限制为正数),得到多层的调制系数。调制系数与中间表示进行channel-wise product。

最后优化问题表示如下:

\mathop{argmin}_{\theta, \phi, \upsilon , \varphi } \sum_{\lambda \in \Lambda} [ R(\tilde{z}; \theta, \upsilon, \lambda) + \lambda D(x, \hat{x};\theta, \phi, \upsilon , \varphi, \lambda) ]

其中\upsilon是调制模块参数,\varphi是解调模块参数。MAE比瓶颈缩放要更加灵活,因为它允许多层调制,解耦了编码器与解码器的缩放过程,允许自编码器与调制网络参数的联合优化。

实验

图中可以看出瓶颈缩放在高比特率的时候拟合独立模型(为每个tradeoff单独训练)的曲线,但在低比特率的时候性能下降。同时tradeoff范围小不能得到更低比特率时的情况。

MAE可以很好地拟合独立模型的曲线。

图5a将不同tradeoff下的隐层表示可视化,可以发现不同tradeoff下隐层表示相似,但是当\lambda=4096的时候隐层表示的范围更大,因此量化会更好。图5c将两者的逐元素比值可视化,可以看到,不同区域的比值图显示不同的值(瓶颈缩放的比值图是均匀的),MAE学习着一种复杂的特征适应机制,这是简单的逐通道的瓶颈缩放所不具有的,这使得MAE在针对不同tradeoff分配比特的时候更自由,尤其是对于低比特率的情况。

[1] Lossy Image Compression with Compressive Autoencoders

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值