每天都有数以百万计的图片在网络上被分享、储存,用户借此探索世界,研究感兴趣的话题,或者与朋友家人分享假期照片。问题是,大量的图片要嘛被照相设备的像素所限制,要嘛在手机、平板或网络限制下被人为压缩,降低了画质。
如今高分辨率显示屏幕正在家庭和移动设备上普及,因此,把低分辨率图片转化为高清晰版本,并可在多种设备上查看和分享,正在成为一项巨大的需求。日前,Google 推出了一项新技术 RAISR,其全称是“Rapid and Accurate Image Super-Resolution”,意为“快速、精确的超分辨率技术”。
RAISR 这项技术能利用机器学习,把低分辨率图片转为高分辨率图片。它的效果能达到甚至超过现在的超分辨率解决方案,同时速度提升大约 10 至 100 倍,且能够在普通的移动设备上运行。而且,Google 的技术可以避免产生混叠效应(aliasing artifacts)。
之前已经具有透过升采样方式,把低分辨率图片重建为尺寸更大、像素更多、更高画质图片的技术。最广为人知的升采样方式是线性方法,即透过把已知的像素值进行简单、固定的组合,以添加新的像素值。因为使用固定的线性过滤器(一个恒定卷积核对整个图片的无差别处理),该方法速度很快。但是它对于重建高清作品里生动的细节有些力不从心。正如下面这张图片,升采样的图片看起来很模糊,很难称得上画质提升。
▲ 左为原始图片;右为升采样处理后图片。
对于 RAISR,Google 另辟蹊径得采用机器学习,用一对低分辨率、高分辨率图片训练该程序,以找出能选择性应用于低分辨率图片中每个像素的过滤器,这样能生成媲美原始图片的细节。目前有两种训练 RAISR 的方法:
- 第一种是“直接”方式,过滤器在成对高、低分辨率图片中直接学习。
- 第二种方法需要先对低分辨率图片应用低功耗的的升采样,然后在升采样图片和高分辨率图片的组合中学习过滤器。
- “直接”方式处理起来更快,但第二种方法照顾到了非整数范围的因素,并且更好地利用硬件性能。
无论是哪种方式,RAISR 的过滤器都是根据图像的边缘特征训练的:亮度和色彩梯度、平实和纹理区域等。这又受到方向(direction,边缘角度)、强度(strength,更锐利的边缘强度更高)和黏性(coherence,一项量化边缘方向性的指标)的影响。以下是一组 RAISR 过滤器,从一万对高、低分辨率图片中学习得到(低分辨率图片经过升采样)。该训练过程耗费约 1 小时。
注:3 倍超分辨率学习,获得的 11×11 过滤器集合。过滤器可以从多种超分辨率因素中学习获得,包括部分超分辨率。注意当图中边缘角度变化时,过滤器角度也跟着旋转。相似的,当强度提高时,过滤器的锐利度也跟着提高;黏性提高时,过滤器的非均相性(anisotropy)也提高。
从左至右,学习得到的过滤器与处理后的边缘方向有选择性的呼应。举例来说,最底一行中间的过滤器最适合强水平边缘(90 度梯度角),并具有高黏性(直线的而非弯曲的边缘)。如果这个水平边缘是低对比度的,那么如同图中最上一行,另一个过滤器就被选择。
实际使用中,RAISR 会在已经学习到的过滤器列表中选择最合适的过滤器, 应用于低分辨率图片的每一个像素周围。当这些过滤器被应用于更低画质的图像时,它们会重建出相当于原始分辨率的细节,这大幅优于线性、双三(bicubic)、兰索斯(Lancos)解析方式。
▲ RAISR 演算法运行图式下:原始图像(左),2 倍双三解析(中),RAISR 效果(右)。
一些运用 RAISR 进行图片增强的范例:
▲ 上:原始图片,下:RAISR 2 倍超分辨率效果。
▲ 左:原始图片,右:RAISR 3 倍超分辨率效果。
超分辨率技术更复杂的地方在于如何避免混叠效应,例如龟纹(Moire patterns)和高频率内容在低分辨率下渲染产生的锯齿(对图像人为降级的情形)。这些混叠效应的产物会因对应部分的形状不同而变化,并且很难消除。
▲ 左:正常图像;右:右下角有龟纹(混叠效应)的图像。
线性方法很难恢复图像结构,但是 RAISR 可以。下面是一个例子,左边是低分辨率的原始图片,左 3 和左 5 有很明显的空间频率混淆(aliased spatial frequencies),而右侧的 RAISR 图像恢复了其原始结构。RAISR 的过滤器学习方法还有一项重要的优点:用户可以把消除噪音以及各类压缩演算法的产物做为训练的一部分。当 RAISR 被提供相应的范例后, 它可以在图片锐化之外学会消除这些效果,并把这些功能加入过滤器。
▲ 左:有强混叠效应的原始图片;右:RAISR 处理后效果。
超分辨率技术利用不同的方法已经有了不少进展。如今,透过把机器学习与多年来不断发展的成像技术相结合,图像处理技术有了长足的进步,并带来许多好处。举例来说,除了放大手机上的图片,用户还可以在低分辨率和超高清下捕捉、储存、传输图像,使用更少的移动网络数据和储存空间,而且不会产生肉眼能观察到的画质降低。
小结:自从乔布斯 2010 年在 iPhone 4s 上推出“视网膜屏幕”概念之后,数码产品市场开启了一场超高清显示革命。如今,家用显示器逐步走向 4K,各大手机厂商也竞相推出 2K 旗舰机。但 2K、4K 内容的缺乏一直是困扰行业发展的痛点。之前的超分辨率技术受成本、硬件限制,主要应用于专业领域,未能大范围普及。
此次 Google RAISR 大幅降低了图像增强的时间成本和硬件要求,有望实现超分辨率技术在消费领域的应用,把充斥网络的低画质图片转化为高清图片,大幅提高视觉效果和用户体验。雷锋网十分期待将来 RAISR 在移动设备的应用,例如把消费者手机拍摄的照片转化为媲美单反画质的高清美图。
英文论文地址:
Google Research Blog:
谷歌产品博客今日发文介绍其图像压缩技术RAISR,RAISR于去年11月推出,利用机器学习生成高质量版本的低分辨率图像,使加载每张高清大图片使用的带宽减少75%。
专业、技能高超、有独特风格的许多摄影师们都早已在 Google+ 上建立博客,以支持社区及分享他们的作品。无论是玩具、旅行风景还是街头艺术,每张照片都有一个独特的故事,值得以最佳的分辨率来欣赏。
传统上,以高分辨率欣赏照片意味着需要使用大量带宽,导致加载速度变慢,数据成本升高。对许多人来说,尤其对数据价格高昂或互联网接入速度慢的地区的人来说,这是一个值得关注的问题。
为了让每个人都能观看到摄影师分享到 Google+ 的高清照片,我们利用机器学习和名为 RAISR 的新技术试图解决这个问题。RAISR 于11月推出,利用机器学习生成高质量版本的低分辨率图像,以让人们能够欣赏到摄影师的美丽照片。通过使用 RAISR 来显示 Google+ 上的大图片,我们能使每张图片使用的带宽减少 75%。
虽然我们只在安卓设备子集流中出现高分辨率图片是才推出此功能,但我们已经每周使用 RAISR 压缩超过10亿张图片,为用户降低了约三分之一的总带宽。接下来几周里,我们计划更广泛地推广这项技术,以进一步节省时间和数据成本。
看到这个技术,想了解一下,看看算法原理,主要参考代码如下:https://github.com/MKFMIKU/RAISR
版本是基于python2.7的。
算法原理:
(1)先创建一个低分辨率的图片,保存在hashtable中。
(2)在高低分辨率的成对图片中学习,即先对低分辨率图片应用低功耗的的升采样,然后在升采样图片和高分辨率图片的组合中学习过滤器。