74KB图片也高清,谷歌用神经网络打造图像压缩新算法

Wesley13
• 阅读 719
萧箫 发自 凹非寺

量子位 报道 | 公众号 QbitAI

还在为图像加载犯愁吗?

最新的好消息是,谷歌团队采用了一种GANs与基于神经网络的压缩算法相结合的图像压缩方式HiFiC,在码率高度压缩的情况下,仍能对图像高保真还原。

GAN(Generative Adversarial Networks,生成式对抗网络)顾名思义,系统让两个神经网络相互「磨炼」,一个神经网络负责生成接近真实的数据,另一个神经网络负责区分真实数据与生成的数据。

简单来说,就是一个神经网络「造假」,另一个神经网络「打假」,而当系统达到平衡时,生成的数据看起来便会非常接近真实数据,达到「以假乱真」的效果。

下面是这种算法展现出来的图像与JPG格式图像的对比。

可见,在图像大小接近的情况下(HiFiC大小74kB,JPG图像大小78kB),算法所展现出来的图像压缩效果要好得多。

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

而在与原图进行对比时,HiFiC所展现出来的还原效果仍然非常优秀。(真的不是在原图中间画了条线吗?)

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

目前处于特殊时期,大量国外网友仍在家中隔离,Netflix和油管的播放量暴增,一些视频网站甚至不得不被迫降低视频在线播放的清晰度,以适应激增的数据量。

但看惯了高清视频的网友们,面对突如其来的「模糊打击」自然怨声载道。

用一位网友的话来说,如果视频行业也能被应用类似的技术,相信Netflix和油管会特别高兴,毕竟这种高清低码率的图像复原实在太诱惑。

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

哇,如果他们可以对视频做同样的事情的话,我相信Netflix和YouTube会很高兴的。

事实上,在了解HiFiC算法的原理后,会发现它的确不难实现。

接近原图的图像重构算法

此前,相关研究已有采用神经网络进行图像压缩的算法,而随着近年来生成式对抗网络兴起,采用GANs生成以假乱真图像的算法也不在少数。

如果能有办法将二者结合,图像压缩的效果是不是会更好、更接近于人类的感知?

这次图像压缩的模型便是基于二者的特性设计,在基于神经网络的压缩图像算法基础上,采用GANs进一步让生成的图片更接近于人类视觉,在图像大小和视觉感知间达到一个平衡。

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

可以看见,HiFiC的架构被分成了4个主要部分,其中E为编码器,G为生成器,D为判别器,而P则是E的输出E(x)的概率模型(这里用y表示),也就是P用于模拟y的概率分布。

GANs运作的核心思想在于,需要让架构中的生成器G通过某种方法,「欺骗」判别器D判定样本为真。

而概率模型P,则是达成这步操作的条件。

然后,将E、G、P参数化为卷积神经网络,这样就可以通过率失真优化的条件,对这些网络进行共同训练。

同时,研究者也对已有的几种GANs算法架构进行了微调,使其更适于HiFiC架构。

研究发现,将GANs与深度学习相结合的HiFiC算法取得了意想不到的效果。

模型评估

下图是采用目前几种主流图像质量评估标准,对几种前沿的图像压缩算法与HiFiC算法进行比较的结果。

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

在图中,评估标准后面自带的箭头,表示数据更低(↓)或数据更高(↑)表示图像质量更好。

为了更好地对比,结果分别采用了HiFiC算法(图中红点连线)、不带GANs的对比算法(图中橙方连线)、目前较为前沿的M&S算法(图中蓝方连线)和BPG算法(图中蓝点连线)。

从结果来看,HiFiC算法在FID、KID、NIQE、LPIPS几种评估标准均为最优,而在MS-SSIM和PSNR标准中表现一般。

由评估标准间的差异可见,各项图像质量标准不一定是判断压缩技术的最好办法。

用户评测对比

毕竟,图像是用来看的,最终的判断权还得交回用户手里。

图像究竟是否「清晰」,某种程度上得通过人眼的判断来决定。

出于这个考虑,团队采取了调研模式,让一部分志愿者参与算法的比较。

他们先展示一张测试图片的随机裁切图样,当志愿者对其中某张裁切图样感兴趣时,便用这一部分来进行所有算法的对比。

志愿者将原图与经过算法处理后的图像对比后,选出他们认为「视觉上」更接近于原图的压缩算法。

在所有算法经过选取后,将会出现一个排名,以衡量HiFiC的实际效果。(其中,HiFiC的角标Hi、Mi和Lo分别为设置由高至低3种不同码率阈值时的算法)

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

上图中,评分越低,则代表图像在用户眼中「越清晰」。从图中来看,HiFiC(Mi)在0.237bpp的压缩效果下,甚至比两倍码率的0.504bpp的BPG算法在用户眼里还要更好。

即使压缩效果达到了0.120bpp,也比0.390bpp的BPG算法更好。

这项研究再次推动了图像压缩技术的发展,正如网友所说,随着图像压缩技术的发展,在线看4k电影也许真能实现。

作者介绍

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

Fabian Mentzer,目前在瑞士苏黎世理工学院进行计算机视觉研究,感兴趣的研究方向有深度学习、图像压缩、前馈神经网络、图像分类等。

这篇论文的主要工作由Fabian Mentzer在谷歌研习期间完成,其余三位作者均来自谷歌团队。

目前有关这个项目的源代码和训练好的模型也即将放出,小伙伴们可以戳下方传送门查看最新进展。

传送门

项目链接
https://hific.github.io/

—  —

74KB图片也高清,谷歌用神经网络打造图像压缩新算法

推荐阅读

谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」

74KB图片也高清,谷歌用神经网络打造图像压缩新算法 点击“阅读原文”图书配套资源

本文分享自微信公众号 - 相约机器人(xiangyuejiqiren)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
Uber准备放弃自动驾驶,转手卖给前谷歌无人车CTO,估值曾被孙正义炒到72.5亿美元
!(https://oscimg.oschina.net/oscnet/0fe7cb00a0cf4872b022342d1e21d47e.png)杨净发自凹非寺量子位报道|公众号QbitAI最新消息,Uber要出售无人驾驶部门(ATG)了。据TechCrunch报道,Uber有意向出售,而也有人愿意买。
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这