一场深度学习引发的图像压缩革命

雷锋网 AI 研习社按,2012 年,AlexNet 横空出世,以 15.4% 的低失误率夺得当年 ILSVRC(ImageNet 大规模视觉识别挑战赛)冠军,超出亚军十多个百分点。AlexNet 开启了深度学习黄金时代,随之而来是深度学习在图像识别上的蓬勃发展:

2013 年,ZF Net  以 11.2% 的低失误率夺得 ILSVRC 冠军; 2014 年,VGG Net 在 ILSVRC「分类及定位」比赛单项赛上的失误率为 7.3%,同年,GoogLeNet 以 6.7% 的失误率取得 ILSVRC 冠军; 2015 年,Microsoft ResNet 在 ILSVRC 达到 3.6% 的失误率; ……

除了在图像识别上的一系列突破,深度学习也为图像压缩带来革命性改变。

近日,图鸭科技发布图像压缩技术 TNG(tiny network graphics),其采用深度学习卷积网络作为压缩核心编码。他们的合作对象主要集中在娱乐(在线抓娃娃机)、视频社交(多人通信)、游戏等领域,目前,该算法即将投入商用。与传统算法相比较时,在压缩效率上,TNG 相比 JPEG 提高了 120%,比 WEBP 提高了 30%。在同等压缩率下进行压缩视觉效果对比时,TNG 在纹理细节上比 JPEG2000 的效果要好得多。

图 :在同等压缩率下,对复杂图像压缩视觉效果对比。上图为图鸭所提出的算法,下图为 JPEG2000 算法。可以看到上图的细节效果更好。

图:在低码字情况下 TNG(上图) 与 WebP(下图) 压缩效果对比。相比TNG,WebP 尽管保留了更多细节,但是其失真更多。TNG整体图像效果优于WebP。

JPEG 是目前比较常见的图像压缩方式,在获得极高压缩率的同时能展现十分丰富生动的图像,但是它采用有损压缩格式,会丢失图像中的重复或不重要的信息,因此容易造成图像数据的损失。其主要采用 DCT(Discrete Cosine Transform)技术,将图像信号在频率域上进行变换,分离出高频和低频信息,然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。

JPEG2000 作为 JPEG 的升级版,同时支持有损压缩和无损压缩,压缩率比 JPEG 高约 30% 左右。它放弃了 JPEG 所采用的以离散余弦转换 DCT 为主的区块编码方式,而改采以小波转换 (Wavelet transform) 为主的多解析编码方式,来将影像的频率成分抽取出来。

WEBP 是 Google 推出的新一代文件格式,期望代替 JPEG,在与 JPEG 相同图片质量的情况下,可以大大缩小文件大小。WEBP 采用一种基于 VP8 编码(已于 2010 年 5 月开源)的图片压缩器,利用预测编码技术,达到减少数据量、加速网络传输的目的。

而 TNG 一改传统的这些编码技术,转而乘上深度学习这艘大船。

据图鸭科技 CEO 武俊敏介绍,他们从 16 年 8 月开始对 TNG 技术进行研发,历经传统算法和深度学习算法两个阶段。最初,他们在 H.265(HEVC)基础上进行研究,但 H.265 已经是当时最优秀的编码方法之一,基于这项技术进行传统研发的新思路并不多。此时,另一条路摆在他们眼前,那就是深度学习。

方向的转变并非一帆风顺。「我们当时考虑把传统方法里的思路与深度学习想结合。比如传统方法有周围像素预测,我们结合这种方法进行研究,但发现预测效果不好。之后我们还想到了传统方法里的 DCT 变换,将其与深度学习融合之后,发现效果也不好。另外,虽然深度学习在当时很火,但彼时利用深度学习进行图片压缩,做出来的效果相比 H.265 的老版本 H.264 以及 JPEG 都差很多。」但他们认为,再往后,深度学习一定有机会超越 H.265。

他们开始由传统算法彻底转向深度学习算法。

随后是一系列研发与创新。效果是显著的,他们目前的深度学习图像压缩技术 TNG 比起 H.265,在指标上取得前所未有的突破,而且 TNG 网络压缩过的图片还具有滤波效果,对于一些在网络上失真的图像,用 TNG 压缩之后的视觉效果比起原始图还要好一些。

图:高码字情况下 TNG(上图)与 BPG(下图)对比。在实际测试中,BPG 会出现图中所示的块状,这是高频失真导致的振铃效应。振铃效应是因为 BPG 在编码压缩时尽管图片的不同块内容不一样,但采用了同一编码参数,而导致的图像退化中信息量的流失,尤其是高频信息的丢失。

武俊敏对 AI 研习社说道,「TNG 压缩不会因为多次压缩导致主观质量越来越差,还能恢复 JPEG 等方法带来的部分失真。」他举了如下例子:一些利用 HEVC 或 JPEG 压缩的图像存在块效应(块效应:基于块的变换编码在图像压缩编码中得到广泛应用,随着码率的降低,量化变得粗糙,在块的边界会出现不连续,形成重建图像的明显缺陷)。但用 TNG 网络处理后,块效应就会消失。

可以看到,将深度学习技术应用于 TNG 中,带来了非常强大的视觉效果。目前在图片、视频压缩领域,使用最多的深度学习技术就是卷积神经网络(CNN),下面是利用卷积神经网络做压缩的典型方法。

如图所示,主要包括 CNN 编码网络、量化、反量化、CNN 解码、熵编码等几个模块,其中编解码网络可以用卷积、池化、非线性等模块进行设计和搭建。

编码网络的作用是将图片转换为压缩特征,解码网络就是从压缩特征恢复出原始图片。

下面是利用深度学习做压缩的一系列科普:

以图片举例,将一张大小为 768 * 512 的三通道图片送入编码网络,进行前向处理后,会得到占据 96 * 64 * 192 个数据单元的压缩特征。该数据单元中可放一个浮点数、整形数或者是二进制数。这之后就涉及到数据类型的选择。 从图像恢复角度和神经网络原理来讲,如果压缩特征数据都是浮点数,恢复图像质量是最高的。但一个浮点数占据 32 个比特位,图片的计算公式为(96 * 64 * 192 * 32)/(768 * 512)=96,压缩后每个像素占据比特从 24 变到 96,图片大小反而增加了,显然浮点数不是好的选择。 而这里,就涉及到其中的关键技术——量化。 量化的目的是将浮点数转换为整数或二进制数,最简单的操作是去掉浮点数后面的小数,浮点数变成整数后只占据 8 比特,则表示每个像素要占据 24 个比特位。同样,在解码端,可以使用反量化技术将变换后的特征数据恢复成浮点数,如给整数加上一个随机小数,这样可以一定程度上降低量化对神经网络精度的影响,从而提高恢复图像的质量。 即使压缩特征中每个数据占据 1 个比特位,可是压缩还是有可进步的空间。下面是 BPP 的计算公式。 假设每个压缩特征数据单元占据 1 个比特,则公式可写成:(96*64*192*1)/(768*512)=3,计算结果是 3 bit/pixel,从压缩的目的来看,BPP 越小越好。在这个公式中,分母由图像决定,这里进行调整的只有分子:96、64、192,这三个数字与网络结构相关。所以,如果设计出更优的网络结构,这三个数字也会变小。 那 1 与哪些模块相关?1 表示每个压缩特征数据单元平均占据 1 个比特位,量化会影响这个数字,但它不是唯一的影响因素,它还与码率控制和熵编码有关。码率控制的目的是在保证图像恢复质量的前提下,让压缩特征数据单元中的数据分布尽可能集中、出现数值范围尽可能小,这样我们就可以通过熵编码技术来进一步降低 1 这个数值,图像压缩率会进一步提升。

(详情可参见 AI 科技评论此前报导:用深度学习设计图像视频压缩算法:更简洁、更强大)

具体到 TNG 网络,武俊敏表示,这一技术看起来很简单,就是利用卷积神经网络,主要有变换,量化,滤波,熵编码等技术。而这些技术的最终目的只有一个,那就是估计图像的概率分布,这也是最困难的。

「我们不知道概率分布到底是什么样的,所以必须去设计网络,来拟合图像的概率分布,进行学习。学完之后,还要考虑该如何压缩图片,让图片在质量和码率上达到最优分布。」

他表示,虽然技术看起来很简单,将其串联起来也没有什么挑战,但训练算法很复杂,而在这其中,他们踩的坑也有很多。

首先就是量化并不好建模,他们最初量化的时候想直接将数据进行截断,再拿来建模,可是这样存在一个问题——梯度传不回去。通过不断试验,他们最后采用监督学习的方式解决这一问题。

而同时也存在效率的问题。他们一开始采用比较深的网络,但后来为了提升速度,降低网络复杂度,慢慢尝试使用更小的 channel 以及更浅的网络。此外,在工程上,他们尝试使用汇编优化等手段。

对于TNG的技术优势,武俊敏总结为如下两点:第一,TNG 图片压缩的 PSNR 值相比目前公开的 deep learning 压缩在相同大小下高 2dB;第二,TNG 压缩的图片,在主观质量上没有方块效应、振铃效果等。「我们采用的是全图直接压缩,而一般图片压缩使用的是分块压缩。」

至于速度,武俊敏对 AI 研习社说道,目前来说,和 JPEG 相比,TNG 在 CPU 上压缩的比较慢,但是,在 GPU 上,1000*1000 的图像只需几十毫秒就可以完成压缩。

其实,除了图像压缩,他们目前在视频压缩上也有进展。武俊敏表示,他们目前的视频压缩已经和 x265(用于编码符合高效率视频编码(HEVC/H.265)标准的视频) 的 medium level 效果持平。下一阶段,他们会继续在图像和视频上取得突破,不断改进。

对深度学习技术在图像视频压缩领域的应用,武俊敏非常乐观。他对 AI 研习社表示,两三年之内,GPU 会大大普及,而 TNG 压缩算法在 GPU 上跑得特别好。此外,他还提到,TNG 压缩的是图片的特征,这些特征具有很强的表征性能,未来可以利用这些特征做一些多任务的处理。

「深度学习对于图像视频压缩,绝对是革命性的。下一代的压缩,不是 H.266,而是深度学习的压缩。」武俊敏如是说道。

目前大家可以进入图鸭官网体验 TNG 算法,地址如下:http://www.tucodec.com/picture/index

原文发布于微信公众号 - AI研习社(okweiwu)

原文发表时间:2018-03-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能头条

八大步骤,用机器学习解决90%的NLP问题

1823
来自专栏专知

【干货】数据科学与机器学习面试指南

1591
来自专栏专知

【AAAI2018】基于注意力机制的交易上下文感知推荐,悉尼科技大学和电子科技大学最新工作

【导读】注意力机制近年来开始被广泛应用,从最初用于自然语言处理领域的机器翻译等任务,延伸到图像处理以及推荐系统中。由于attention可以建模上下文不同元素的...

7145
来自专栏企鹅号快讯

从Q学习到DDPG,一文简述多种强化学习算法

选自towardsdatascience 作者:Steeve Huang 机器之心编译 参与:Edison Ke、路雪 本文简要介绍了强化学习及其重要概念和术语...

3187
来自专栏灯塔大数据

提高机器学习模型准确率的八大可靠方法

介绍 想要提高模型的性能有时会是一件难度不小的事情。如果你也遇到过类似的情况,相信一定会认同我这一看法。在一一尝试毕生所学的对策和算法之后,依然没能够提高模型的...

3188
来自专栏张俊红

实战—用户价值模型搭建

3815
来自专栏量子位

怎样让机器学会推理?伯克利AI研究所一文详解神经模块网络

王小新 编译自 BAIR博客 量子位 出品 | 公众号 QbitAI 最近,加州大学伯克利分校人工智能研究所(BAIR)的博士生Jacob Andreas在博客...

3357
来自专栏新智元

伯克利:模块化神经网络学习复杂推理(论文下载)

【新智元导读】本文是伯克利人工智能实验室(BAIR)博客发表的第一篇技术博文,详解了神经模块网络(NMN)在复杂推理任务中的作用及其相对其他方法的优势和挑战。 ...

48520
来自专栏专知

【AlphaGo核心技术-教程学习笔记03】深度强化学习第三讲 动态规划寻找最优策略

点击上方“专知”关注获取更多AI知识! 【导读】Google DeepMind在Nature上发表最新论文,介绍了迄今最强最新的版本AlphaGo Zero,不...

4457
来自专栏人工智能

2017年最后一篇推送,仍然与技术有关盘点深度学习论文年度之“最”

今年有很多的学术论文发表,以下是小编觉得能够深刻影响到自己的几篇,为大家推荐。对于每一篇文章,都阐述了论文的“目标”,简要总结了相关工作,并解释了推荐的原因。 ...

2039

扫码关注云+社区

领取腾讯云代金券