刘晓坤 路参与

图鸭科技获CVPR 2018图像压缩挑战赛单项冠军,技术解读端到端图像压缩框架

CHALLENGE ON LEARNED IMAGE COMPRESSION 挑战赛由 Google、Twitter、Amazon 等公司联合赞助,是第一个由计算机视觉领域的会议发起的图像压缩挑战赛,旨在将神经网络深度学习等一些新的方式引入到图像压缩领域。据 CVPR 大会官方介绍,此次挑战赛分别从 PSNR 和主观评价两个方面去评估参赛团队的表现。

不久之前,CLIC 挑战赛比赛结果公布:在不同基准下,来自国内创业公司图鸭科技的团队 TucodecTNGcnn4p 在 MOS 和 MS-SSIMM 得分上获得第一名,腾讯音视频实验室和武汉大学陈震中教授联合团队 iipTiramisu 在 PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)指标上占据领先优势,位列第一。xvc,评分较高的团队中,xvc 的解码速度最快。

比赛结果:http://www.compression.cc/results/

在这篇文章中,我们对第一名图鸭科技的解决方案进行了编译介绍,内容采自论文《Variational Autoencoder for Low Bit-rate Image Compression》。

论文:Variational Autoencoder for Low Bit-rate Image Compression 

地址:http://openaccess.thecvf.com/CVPR2018_workshops/CVPR2018_W50.py#

摘要:我们展示了一种用于低码率图像压缩的端到端可训练图像压缩框架。我们的方法基于变分自编码器,包含一个非线性编码器变换、均匀量化器、非线性解码器变换和后处理模块。压缩表征的先验概率通过使用超先验自编码器的拉普拉斯分布来建模,并与变换自编码器进行联合训练。为了去除低码率图像的压缩失真和模糊,我们提出了一种基于卷积的高效后处理模块。最终,考虑到 CLIC 挑战赛对码率的限制,我们使用一个码率控制算法来对每一个图像自适应性地分配码率。在验证集和测试集上的实验结果证明,使用感知损失训练出的该优化框架能够实现最优的 MS-SSIM 性能。结果还表明该后处理模块可以提高基于深度学习的方法和传统方法的压缩性能,在码率为 0.15 时最高 PSNR 达到 32.09。

1. 引言

近期,机器学习方法被应用于有损图像压缩,并利用自编码器取得了很有潜力的结果。基于典型神经网络图像压缩框架由多个模块构成,例如自编码器、量化器(quantization)、先验分布模型、码率评估和率失真优化。自编码器用于将图像像素 x 转换为编码空间 y 中的数据,编码空间由编码器 和解码器 构成。图像的像素值通过编码器 转换到编码空间。之后,利用量化函数 处理表征 y,得到离散值向量。然后使用诸如算术编码 [8] 这样的熵编码方法来无损压缩,并生成用于传输的码流。在接收到码流之后,经过熵解码的量化后的表征使用解码器被转换回图像空间

很明显,表征先验概率模型(也称为熵模型)对于算术编码很关键。的真实边际概率(依赖于图像分布)是未知的。因此我们通过先验分布对它进行估计。先验概率可以通过参数化模型形式化,并通过参数学习来拟合数据。给定熵模型,码率的下界由的离散先验分布的熵决定。由恰当设计的熵编码得到的真实率仅稍微大于熵:

率失真优化的作用是在编码长度 R 和原始图像 x、重构图像 之间的失真 D 进行权衡。D 可以用均方误差(MSE)建模:D= ,或感知失真的度量例如 MS-SSIM [13]。很明显,如果 更加集中,则熵 R 更小,但网络的表征能力将退化,并且 D 可能会增加。因此我们以端到端的方式优化率和失真的加权和 R+λD。我们可以断定先验模型和量化的联合优化在高效的压缩系统中是最重要的技术。一方面,对量化后的表征 的先验分布的准确估计有利于约束 和 R 的真实边际分布。另一方面,准确的先验模型可以使适应性算术编码在编码和解码过程中更加高效。

本论文提出的图像压缩框架基于之前的方法 。与这些方法不同,我们设计了一个金字塔自编码器和更高效的卷积结构,来提升压缩性能。此外,我们使用参数化零均值拉普拉斯分布对压缩表征的先验概率进行准确建模,该分布的参数通过超先验自编码器学习得到。考虑到如果该网络只通过保持低码率的像素相似度来学习,那么图像重建会遇到模糊的情况,对人眼的吸引力也会下降。因此我们使用一种基于 MS−SSIM 的高效损失函数来衡量感知损失,训练提高感知质量的压缩编码解码器。最后,我们使用基于卷积的后处理模块来提高图像重建质量。考虑到该挑战赛中对压缩测试图像和验证图像的限制是 0.15 bpp,因此我们设计码率控制算法来为每个图像选出最好的压缩参数

2. 本论文提出的图像压缩框架

图 1:本论文使用的变分自编码器架构图示。卷积参数表示为:滤波器数量 × 卷积核高度 × 卷积核宽度/上(下)采样步幅,其中 ↓ 表示下采样,↑表示上采样。AE、AD 分别表示算术编码器和算术解码器。

图 2:超先验自编码器的架构展示。

图 3:(a)残差块。(b)两个卷积层和 6 个残差块组成了后处理架构。

3. 实验结果

表 1:在 CLIC 2018 验证集上的评估结果。

表 2:在 CLIC 2018 测试集上的评估结果。

工程CVPR 2018CVPR图鸭科技图像压缩
1
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

自动编码器技术
Autoencoder

自动编码器是用于无监督学习高效编码的人工神经网络。 自动编码器的目的是学习一组数据的表示(编码),通常用于降维。 最近,自动编码器已经越来越广泛地用于生成模型的训练。

计算机视觉技术
Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

图像压缩技术
Image compression

图像压缩是数据压缩技术在数字图像上的应用,目的是减少图像数据中的冗余信息,从而用更加高效的格式存储和传输数据。图像压缩可以是有损数据压缩也可以是无损数据压缩。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

损失函数技术
Loss function

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

先验概率技术
prior probability

在贝叶斯统计中,某一不确定量p的先验概率分布是在考虑"观测数据"前,能表达p不确定性的概率分布。 它旨在描述这个不确定量的不确定程度,而不是这个不确定量的随机性。 这个不确定量可以是一个参数,或者是一个隐含变量(英语:latent variable)。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

感知技术
perception

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

变分自编码器技术
Variational autoencoder

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

验证集技术
Validation set

验证数据集是用于调整分类器超参数(即模型结构)的一组数据集,它有时也被称为开发集(dev set)。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

重构技术
Refactoring

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

推荐文章