Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation

  • 一 简介
  • 二 内容
    • 2.1 目前方法的缺陷
    • 2.2 整体方案
    • 2.2 Gain Unit
    • 2.3 连续可变速率模型
    • 2.4 高斯熵模型
    • 2.5 实验补充说明
  • 三 性能结论

论文地址:https://openaccess.thecvf.com/content/CVPR2021/papers/Cui_Asymmetric_Gained_Deep_Image_Compression_With_Continuous_Rate_Adaptation_CVPR_2021_paper.pdf

代码地址:https://github.com/mmSir/GainedVAE

华为可变速率文章,代码非官方部署,一个小哥实现的,该文章仅供本人笔记用,如果问题欢迎讨论。

一 简介

提出了一种连续速率可调的学习图像压缩框架,即非对称增益变分自动编码器(AGVAE)。 AG-VAE 利用一对增益单元在一个模型中实现离散速率自适应,而额外的计算可以忽略不计。并且通过使用指数插值,在不影响性能的情况下实现连续速率自适应。除此之外,部署了非对称的熵模型提高模型的性能增益。

二 内容

2.1 目前方法的缺陷

在之前的图像压缩工作中,都是通过改变损失函数中的 λ\lambdaλ 超参数调整模型的码率,这会导致无法将图像压缩至固定码率点的情况,并且要为此训练多个模型,需要消耗大量的训练时间和存储模型所需要的空间。为此,单个模型能够覆盖多个码率的情形有很大的应用需求。
       在以往的可变速率技术方案中,基于RNN方案进行渐进式的图像编码,但是RD性能比较差,基于条件的conditional卷积网络复杂度高并且占用内存大,可变的量化bin size方式会导致性能的下降,此外对于BottleNeck层的尺度缩放方案在低码率的情况下会掉性能。

       在编解码方案中,不同通道对最后的重建质量的影响是不同的。作者探索基线方案中,被量化中的前32个通道信息对最后重建图像质量的影响,得出不同通道有不同重要性的结论,并且对通道进行scale的缩放,被量化后的潜在表示值乘以尺度缩放因子,得到潜在表示缩放后的重建质量。

2.2 整体方案

整体方案还是和Google[1]的网络一致,对比框架优化了 Gain Unit 单元,扩展了自回归模型中的Mask Convolution,从1个5x5和扩展成 3x3,5x5,7x7的网络,并且文章中有优化熵模型,从单高斯模型扩展到高斯分布的两侧采用不同方差的半边高斯分布。

图1.整体网络框架图

2.2 Gain Unit

标记编码器的输出y∈Rc,h,wy\in R^{c,h,w}y∈Rc,h,w即有c个通道(一般为192)w,h的宽高。yi∈Rh,wy_i\in R^{h,w}yi​∈Rh,w则表示单个通道的潜在表示,其中i∈Ci\in Ci∈C,对应的Gain Unit 单元是有一个矩阵M∈Rc,nM \in R^{c,n}M∈Rc,n,表示这个矩阵实际上是为每一个通道的潜在表示分配一个长度为 n 的向量,ms∈m(s,0),m(s,1),m(s,2),...m(s,c−1)m_s \in { m_{(s,0)},m_{(s,1)},m_{(s,2)},...m_{(s,c-1)} }ms​∈m(s,0)​,m(s,1)​,m(s,2)​,...m(s,c−1)​。即每个msm_sms​ 是一个长度为n的向量,对于每个通道的操作表示如下:y‾=yi×ms,i\overline{y}=y_{i} \times m_{s,i}y​=yi​×ms,i​ 这里就是关于 Gain Unit的说明,每一个通道上的潜在表示都会乘以对应向量中的某个值,下面介绍基于Gain Unit的离散可变速率框架:

编码器的输出 yyy 经过Unit Gain单元进行处理缩放之后,得到 y‾\overline{y}y​,并且需要经过量化,得到量化后的潜在表示y^=round(y‾)\hat{y}=round(\overline{y})y^​=round(y​),解码端会同样部署Inverce-Unit Gain,从熵解码器中得到y^\hat{y}y^​ ,然后进行对应拟变换得到y′=InverseGain(yi^×ms,i′)y^{'}=Inverse Gain(\hat{y_i}\times m^{'} _{s,i})y′=InverseGain(yi​^​×ms,i′​)。

整体框架的损失函数优化主流的损失函数基本保持一致:

其中,RφR_{\varphi}Rφ​ 项表示码率, DDD 表示失真, βs\beta_sβs​ 表示训练模型中,失真和码率的权衡,βs\beta_sβs​ 越大,则表示模型越注重重建图像的质量,βs\beta_sβs​ 是从一组预定好的参数集中选取的。有βs∈B\beta_s \in Bβs​∈B ,其中B的长度为n,定义好了一系列的权重值。此外,可以发现, βs\beta_sβs​ 的长度为n,而对于每一个Unit Gain 矩阵,每一个通道的scale向量的长度也是n。不同与之前的模型,每一个模型的训练 βs\beta_sβs​ 为预定的单个数值,而此处的 βs\beta_sβs​ 在训练中从 B 的预定义池中随机选取的,并且在选取 βs\beta_sβs​后,得到对应的 ms,ms′{m_s, m^{'}_s}ms​,ms′​。

在推理阶段,可以训练的Unit Gain 矩阵中获取到有映射关系的ms,ms′{m_s, m^{'}_s}ms​,ms′​ 对潜在表示yyy和y^\hat{y}y^​进行缩放,得到对应几个离散情况下的离散点,如下图所示,训练了基于mse loss和(1-msssim) loss的两个模型。并且通过修改Gain Unit矩阵中的对应ms,ms′{m_s, m^{'}_s}ms​,ms′​ 向量,得到的离散RD曲线,离散的模型记为DVR模型。

2.3 连续可变速率模型

本文通过了采用不同的 ms,ms′{m_s, m^{'}_s}ms​,ms′​ 矢量对完成单模型多码率的模型设置,与此同时,可以对 ms,ms′{m_s, m^{'}_s}ms​,ms′​ 和 ms−1,ms−1′{m_{s-1}, m^{'}_{s-1}}ms−1​,ms−1′​ 进行差值完成连续可变速率的实现。为了确保不同的ms,ms′{m_s, m^{'}_s}ms​,ms′​ 之间的对于潜在表示yyy和y^\hat{y}y^​ 的缩放结果是一致的,对不同的 ms,ms′{m_s, m^{'}_s}ms​,ms′​ 有以下约束:
ms∗ms′=mt∗mt′=C{m_s*m^{'}_s}={m_t*m^{'}_t}=Cms​∗ms′​=mt​∗mt′​=C
ms,ms′{m_s, m^{'}_s}ms​,ms′​ 和 mt,mt′{m_t, m^{'}_t}mt​,mt′​ (r,t∈[0,1,...n−1]r,t\in [0,1,...n-1]r,t∈[0,1,...n−1])表示不同的增益矢量单元对应在不同的βs\beta_sβs​ 和 βt\beta_tβt​。有以下公式:

此处 mv,mv′{m_v, m^{'}_v}mv​,mv′​ 表示 mr,mr′{m_r, m^{'}_r}mr​,mr′​ 和 mtmt′{m_t m^{'}_t}mt​mt′​ 之间的差值系数,通过控制参数lll来表示 mv,mv′{m_v, m^{'}_v}mv​,mv′​ 的取值情况,当lll从0取到1时,模型能够取到两个离散点mr,mr′{m_r, m^{'}_r}mr​,mr′​ 和 mtmt′{m_t m^{'}_t}mt​mt′​之间所有的连续的码率点,从而实现连续可变速率的目的。结果如下图所示:


可以从上图看出,插值后的模型RD性能基本无损甚至比拟合的曲线RD性能更高。

2.4 高斯熵模型

在之前的工作中,文章大致采用了三种概率密度函数对参数进行建模:单高斯概率密度函数,混合高斯概率密度函数,单拉普拉斯概率密度函数。其中单高斯概率密度函数表达如下:

μ\muμ和 σ\sigmaσ表示概率密度函数的均值和方差,上述对称的方式对于建模的精准度不够高,不够freedom ,因此使用一种非对称的熵模型,具体如下:

公式中,μ\muμ还是表示原来的含义,但是对于均值左右两侧的方差采用非对称的形式,即左边和右边采用不同的方差,σl和σr\sigma_l和\sigma_rσl​和σr​则分别表示两侧的方差参数。

2.5 实验补充说明

在实验中,对应训练msssim的模型使用的Bmsssim={0.07,0.03,0.007,0.003,0.001,0.0006}B_{msssim}={\{0.07,0.03,0.007,0.003,0.001,0.0006\}}Bmsssim​={0.07,0.03,0.007,0.003,0.001,0.0006} 六个数值,和训练psnr指标的模型Bmse={0.05,0.03,0.007,0.003,0.001,0.0003}B_{mse}={\{0.05,0.03,0.007,0.003,0.001,0.0003\}}Bmse​={0.05,0.03,0.007,0.003,0.001,0.0003},以训练psnr模型为例,在训练的每个batch,会随机生成一个索引值s∈{0,1,2,3,4,5}s\in{\{0,1,2,3,4,5\}}s∈{0,1,2,3,4,5},对应能够取到Bmse={0.05,0.03,0.007,0.003,0.001,0.0003}B_{mse}={\{0.05,0.03,0.007,0.003,0.001,0.0003\}}Bmse​={0.05,0.03,0.007,0.003,0.001,0.0003}中的对应值,与此同时为整个Unit Gain单元初始化一个长度矩阵 M[6][192]M[6][192]M[6][192]的矩阵,同样Inverce Gain也会有一个同样的矩阵,上面的msm_sms​就是表示, 对应可以通过s索引得到ms=M[s][:]m_s=M[s][:]ms​=M[s][:],在训练开始前,可以把MMM矩阵初始化为常量,在每个batch的迭代中,从M矩阵中提取的msm_sms​都会被更新,并且保存

三 性能结论

整体的性能是基于图一框架以及对应的使用非对称熵模型得到的,除此之外,还使用了论文1论文^{1}论文1中的attention机制和论文2论文^{2}论文2中Universal量化技术和论文3论文^{3}论文3中采用的并行上下文技术,整体性能展示如下:

  1. Yulun Zhang, Kunpeng Li, Kai Li, Bineng Zhong, and YunFu. Residual nonlocal attention networks for image restora-tion.ICLR, 2019.
  2. Jacob Ziv. On universal quantization.IEEE Transactions onInformation Theory, 1985.3,5,6
  3. Aaron Van Den Oord, Nal Kalchbrenner, Oriol Vinyals,Lasse Espeholt, Alex Graves, and Koray Kavukcuoglu. Con-ditional image generation with pixelcnn decoders.NIPS,2016.3,5,6

端到端图像压缩《Asymmetric Gained Deep Image Compression With Continuous Rate Adaptation》相关推荐

  1. 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )

    深度学习最令人振奋的最新动态之一,就是端到端深度学习end-to-end deep learning的兴起. 什么是"端到端深度学习" 以前有一些数据处理系统或学习系统,它们需要多 ...

  2. 端到端的图像压缩----《Joint Autoregressive and Hierarchical Priors for Learned Image Compression》 论文笔记

    Joint Autoregressive and Hierarchical Priors for Learned Image Compression 一 简介 二 内容 2.1 创新内容 2.2 框架 ...

  3. 端到端的图像压缩----《Variational Image Compression With A Scale Hyperprior》论文笔记

    Variational Image Compression With A Scale Hyperprior 一 简介 二 内容 2.2 数据流程 2.3 变分自编码器 2.4 思路介绍 三 核心代码 ...

  4. 端到端的图像压缩《Learning Scalable constrained Near-lossless Image Compression via Joint Lossy Image cmp》

    Learning Scalable ∞-constrained Near-lossless Image Compression via Joint Lossy Image and Residual C ...

  5. 多目标跟踪数据关联的二部图解:CVPR18多目标跟踪开创性深度端到端二部图匹配佳作《Deep Learning of Graph Matching》读后有感

    多目标跟踪算法的核心以及瓶颈之处,即是在得到两个set的DR(detection response,其中一个前序set可能是tracklets,但也由DR来表征)之后如何实现二部图匹配.传统的Hung ...

  6. 端到端TVM编译器(下)

    端到端TVM编译器(下) 4.3 Tensorization DL工作负载具有很高的运算强度,通常可以分解为张量运算符,如矩阵乘法或一维卷积.这些自然分解导致了最近的添加张量计算原语.这些新的原语带来 ...

  7. CVPR2020:端到端学习三维点云的局部多视图描述符

    CVPR2020:端到端学习三维点云的局部多视图描述符 End-to-End Learning Local Multi-View Descriptors for 3D Point Clouds 论文地 ...

  8. 点云配准的端到端深度神经网络:ICCV2019论文解读

    点云配准的端到端深度神经网络:ICCV2019论文解读 DeepVCP: An End-to-End Deep Neural Network for Point Cloud Registration ...

  9. 利用 AssemblyAI 在 PyTorch 中建立端到端的语音识别模型

    作者 | Comet 译者 | 天道酬勤,责编 | Carol 出品 | AI 科技大本营(ID:rgznai100) 这篇文章是由AssemblyAI的机器学习研究工程师Michael Nguyen ...

最新文章

  1. 织梦内容管理系统修改
  2. 安全工程师2017年真题_以下是2017年全球软件工程师的平均薪水
  3. 2018-3-10 kKNN与K-mean的区别以及各自的Python代码(别人写的好的文章)
  4. vscode 逗号不换行_在VSCode里面配置Vim正确姿势(细节解析)
  5. 下列哪个不是python合法的变量名_下列哪个不是Python中合法的数据类型?
  6. DeepFake 入门了解
  7. fail safe java_Java中快速失败(fail-fast)和安全失败(fail-safe)的区别?
  8. 《算法竞赛进阶指南》打卡-基本算法-AcWing 91. 最短Hamilton路径:位运算、状态压缩dp、dp
  9. Jquery中1.6.x中新的方法prop()方法
  10. SCAU 算法课的题
  11. python中的可迭代对象
  12. LDA (Linear Discriminate Analysis)Fisher Criteria
  13. 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
  14. java 原型模式的应用_java中原型模式详解和使用方法
  15. 免费学plc的手机app_PLC网校app手机版 v1.2
  16. plsql导出表结构和表数据的使用小结
  17. 鸿雁牵手阿里打造智能家居平台
  18. RN 启动开发服务器时报错 ReferenceError: SHA-1 for file
  19. C语言之基本算法15—前三位和后三位都是完全平方数的六位完全平方数
  20. C51单片机实现串口通信

热门文章

  1. 酒店订房退房管理系统(数组应用)
  2. java 接口鉴权_安全|Java中使用JWT生成Token进行接口鉴权实现
  3. IBM Lotus Symphony 七种兵器之 Mail Merges
  4. 收藏栏被恶意软件修改
  5. 电工结业试卷_电工电子考试试卷(含答案)
  6. Reflex WMS入门系列十二:Reflex里的Location
  7. Linux—DNS域名解析服务
  8. 李宏毅课程-人类语言处理1-课程综述(上)
  9. 美莱仕MX68 root教程_方法
  10. 《国土空间基础信息平台建设总体方案 》摘要