分享

谷歌开源神经网络模型,压缩图片比传统方法提升25%(附论文)

 tianlord 2016-10-01

1 新智元编译1

来源:谷歌官方博客

翻译:弗格森    


AI World 2016世界人工智能大会 ? 业界领袖回溯60年AI历史,全球对话人工智能未来挑战,权威发布2016世界人工智能名人堂及中国人工智能产业发展报告;? 国际大咖“视频”远程参会, Bengio 和李飞飞联袂寄语中国人工智能;? 探秘讯飞超脑及华为诺亚方舟实验室,最强CTO与7大研究院院长交锋;? 滴滴CTO与百度首席架构师坐镇智能驾驶论坛,新智元三大圆桌阵容史无前例;? 中国“大狗”与'X-Dog'震撼亮相,龙泉寺机器僧“贤二”卖萌。


【新智元导读】 谷歌官方博客今天发布了一篇文章,介绍如何使用神经网络压缩图片。在论文中,谷歌证明了神经网络可以获得比现在普遍使用的压缩方法质量更好、大小更小的图片,理论上会小25%。谷歌这次要解决图片占用内存过多的问题。用户可以去 TensorFlow使用该模型压缩自己的图片。


作者: Nick Johnston and David Minnen, Software Engineers


数据压缩几乎发生在互联网的任何角落,你观看的视频、分享的突破、听的音乐,甚至你现在在看的文章,都是经过压缩的。压缩技术使得内容分享变得更快速和高效。如果没有数据压缩,获取你所需时间和带宽的成本将会变得极高。


在论文“Full Resolution Image Compression with Recurrent Neural Networks”中(在新智元公众号回复0930下载论文),我们在自己此前使用神经网络压缩数据的研究上进行了扩展,探索机器学习能否为图像压缩提供更好的结果,正如它在图像识别和文本摘要中所做到的那样。


进一步的,我们在本文中发布了通过TensorFlow构架的压缩模型,这样你就能使用我们的网络来压缩自己的图片,进行体验。


我们带来了一个架构,使用的是一种新的封闭循环单元(Gated Recurrent Unit ,RNN的一种,单元可以存储激活分析和处理序列) 变体,叫残差封闭循环单元(Residual GRU)。我们的Residual DRU 结合了既有的GRU和“图像识别深度残差学习”中的残差连接,在特定的压缩率下获得高质量的图像。


与时下许多使用DCT来生成新的字节表示的图像压缩方法不同,我们训练了两个神经网络,一个用于从图像中生成代码(编码),另一个则是从编码中生成图像(解码)。

 

我们的系统通过反复地改善原始图像重构进行工作,编码和解码都使用Residual GRU 层,这样,多余的信息能够从一个循环中传递到下一个。每一个循环会想编码增加更多的字节,这会让更高质量的重构成为可能。从概念上看,这一网络的运行过程如下:


  1. 最初的残差, R[0],指代原始图像 I: R[0] = I。

  1.  第一个循环中,设置 I=1。

  1. 循环[i] 把 R[i-1]作为输入,运行解码,同时二值化对图像进行压缩,到B[i]。

  1. 循环[i] 在B[i]上进行解码,生产一个重构的图像 P[i]。

  1. 对循环[i]  中的残差进行计算:R[i] = I - P[i]。

  1. 设i=i+1,回到步骤3(直到获得想要的循环次数)

 

残差图像代表了压缩后得到的图像与原始图像之消除间的不同。这一图像随后会被用作另一个神经网络的输入,其目标是在下一个版本的图像中消除掉压缩图像的错误率。压缩图像现在的表示就是通过B[N]达到的B[1]的联系。对于更大值的N,解码器会获得更多关于减少错误的信息,并生成更高质量的重构图像。


未了理解这一工作原理,可以参考以下例子,我们的图像压缩神经网络的第一和第二个循环在表进行了展示。我们从一张白房子的照片开始。在网站中的第一个通道,原始图像被看成是一个输入(R[0] = I)。P[1] 就是重构 图像。原始图像与编码图像之间的差异就是残差R[1],它代表着压缩中在错误率。



左边:原始图像,I = R[0]. 中间: 重构图像, P[1]. 右: 残差, R[1], 代表着压缩带来的误差。


在网络中的第二个通道,R[1] 被当成网络的输入(见下图)。一个更高质量的图像 P[2]随之得以生成。那么,这一系统是如何从残差R[1]中创造这么好的图像 (P[2],下图中间)因为模型使用了带有记忆的节点,网络从每一次循环中储存信息,进而可以在下一次循环中进行使用。它在循环[1]中学到一些关于原始图像的知识,这些知识和R[1]一起使用,可以从B[2]中生成更好的P[2]。最后,一个新的残差 R[2] (右),通过从原始图像中减去P[2] 得以生成。这一次,残差变小,因为重构的图像与最开始的图像之间差异已经变小。



网络中的第二个通道。左边:R[1] 被当成网络的输入。中间:一个更高质量的图像 P[2]。一个新的残差 R[2] (右),通过从原始图像中减去P[2] 得以生成。


在每一个深入的循环中,网络获得了更多的关于压缩过程误差的信息(通过残差捕捉)。如果它能用这些信息来预测哪怕稍微一点残差,就会带来更好的重构结构。我们的模型能够使用利用额外的字节,指导一个极值。我们看到了收益的递减,并且在某些点上,网络的代表能力会被耗尽。


为了展示文件大小和质量的差别,我们拍了一张日本犬Vash的照片,并生成了两张压缩图像,一张是JPEG格式,另一张则是残差 GRU。两张图片的目标都是从感知上相似度要达到0.9MS-SSIM,这是一个评估感知质量的值,最高为1.0。我们的学习模式生成的结果比JPEG小20%。



左: 原始图像(1419 KB PNG) at ~1.0 MS-SSIM. 中: JPEG (33 KB) at ~0.9 MS-SSIM. 右: Residual GRU (24 KB) at ~0.9 MS-SSIM.  


看一下狗的鼻子和嘴,可以看到,我们的模型并没有JPEG的图片中间部位所见到的红色色块和噪点。这是因为JPEG压缩时产生了方块伪影,但是我们的压缩网络是在整张图片一次性完成的。但是,我们的模型也有缺陷:胡须中的细节和纹理丢失了。不过,整个系统在减少伪影上有巨大潜力。



左边:原始入选。 中:JPEG 右:残差GRU  


虽然今天常用的方法已经很好,但是我们的研究显示,使用神经网络来压缩图像可以获得更高的质量和更低小的文件大小。未来,谷歌的研究将着眼于更好的压缩质量和更高速的模型。请保持关注。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多