文 / 软件工程师 Bartlomiej Wronski 与计算成像团队首席科学家 Peyman Milanfar
长期以来,使用算法(而非镜头)来实现数码变焦一直是移动设备相机饱受诟病的一面。与数码单反相机的光学变焦能力相比,数码变焦图像的质量难以媲美,因此传统观念认为,即便移动设备相机做得再紧凑,拍摄算法再巧妙,也无法取代大型相机的复杂光学器件与拍摄机制。
而凭借 Pixel 3 的全新 Super Res Zoom 功能,我们正在挑战这一观念。
与之前任何基于放大单张图像的数码变焦技术不同,Pixel 3 中的 Super Res Zoom 技术更加出色,因为我们将多帧图像直接合并成更高分辨率的图像。此方法能极大增强图像细节,使其与使用许多其他智能手机上的 2 倍光学变焦镜头拍摄的图像旗鼓相当。Super Res Zoom 是指,如果您在按下快门前变焦取景,与不变焦拍摄后处理相比,图像的细节会更多。
2 倍变焦处理:2017 年的 Pixel 2 与 2018 年 Pixel 3 的 Super Res Zoom
数码变焦的挑战
实现数码变焦并非易事,因为出色的算法应当能够从较低分辨率的图像开始,稳步 “重构” 丢失的细节,而一般的数码变焦是通过放大单张图像的一小部分来生成更大的图像。传统上,这是通过线性插值法实现的,此方法尝试重建原始图像中丢失的信息,但会使处理后的图像变得模糊或带有 “塑料” 质感,并缺乏纹理与细节。相比之下,大多数提升单张图像质量的现代方法都采用机器学习(包括我们自己的早期成果 RAISR)。这些方法能够放大一些特定的图像特征,如直边,甚至可以合成某些纹理,但无法恢复自然的高分辨率细节。虽然我们仍使用 RAISR 来提高图像的视觉质量,但所提升的分辨率大部分得益于 Super Res Zoom 的多帧合成方法(至少用于处理 2 到 3 倍的适度变焦倍率)。
滤色镜阵列和去马赛克
重建优质细节尤为困难,因为此时的数码照片已不完整,它们是通过称为去马赛克的过程从部分颜色信息中重建而来。在一般的消费级相机中,相机传感器元件仅用于测量光线的强度,而非直接测量其颜色。为捕捉场景中存在的真实颜色,相机会使用放置在传感器前面的滤色镜阵列,以便每个像素仅测量单一颜色(红色、绿色或蓝色)。这些颜色以拜尔滤色镜模式排列,如下图所示。
拜尔马赛克滤色镜。传感器每 2x2 像素为一组,捕获由特定颜色过滤的光线,其中两个像素为绿色(因为人眼对绿色更敏感),另外两个为红色与蓝色。这样的规则排列布满整个画面
然后,基于这些部分信息,处理管线的相机必须重建所有像素的真实颜色和全部细节。* 去马赛克过程首先对丢失的颜色信息作出最佳推测,通常会选择临近像素的颜色进行插值,这意味着 RGB 数码图像三分之二的像素实际上是重建而成!
去马赛克过程会使用相邻像素重建丢失的颜色信息
最简单的去马赛克可通过取相邻元素的平均值来实现。大多数真正的去马赛克算法都比这更复杂,但由于只能获取部分信息,处理后的图像仍会存有瑕疵及伪像。虽然大尺寸的数码单反相机也存在这种情况,但相较于一般的移动设备相机,它们拥有更大的传感器和镜头,因而可以捕捉更多细节。
如果您在移动设备上进行缩放变焦,则这种情况会变得更糟糕;然后,算法被迫再次通过临近像素进行插值,以重构更多信息。然而,并非所有信息都会丢失。即使受光学器件所限,移动设备也可通过连拍摄影及融合多张图像来实现超分辨率。
从连拍摄影到多帧超分辨率
虽然单个帧无法提供足够的信息来填充丢失的颜色,但我们可以从连续拍摄的多张图像中获取一些丢失的信息。这种捕捉及合成多张连拍照片的过程称为连拍摄影。成功应用于 Nexus 和 Pixel 手机的 Google HDR+ 算法已利用来自多个帧的信息,使通过手机拍摄的照片达到了用更大的传感器才能达到的质量水平;那么可否使用类似的方法来提高图像分辨率呢?
此方法已有十多年的历史(在天文领域,类似的基本概念称为 “Drizzle”),从略微不同的位置捕捉并组合多张图像,如此一来,至少在 2 倍或 3 倍等低倍变焦和良好光照条件下,可以产生等同于光学变焦的分辨率。在这个称为多帧超分辨率的过程中,一般的想法是将低分辨率的连拍图像直接对齐合并至理想(更高)分辨率的网格。以下示例说明理想化的多帧超分辨率算法可能的运作方式:
与需要插值重建丢失颜色的标准去马赛克管线(顶部)相比,在理想情况下,我们可以将每张图像水平或垂直移动一个像素,从而用多张图像填充一些空缺
在上面的示例中,我们捕获了 4 个帧,其中 3 个帧正好在水平方向、垂直方向以及水平和垂直双方向移动了一个像素。所有空缺都会填满,根本无需任何去马赛克过程!实际上,一些数码单反相机也支持这种操作,但只有将相机置于三脚架上,且传感器/光学器件能主动移动到不同位置时,才能做到这一点。这有时称为“微步”。
多年以来,这种用于更高分辨率成像的 “超分辨率” 方法的实际应用领域仍主要限于实验室,或传感器和主体对齐的其他受控设置,它们之间进行的移动受到有意控制或严格限制。例如,在天文成像中,使用固定的望远镜来拍摄可预测的星轨。但在像现代智能手机这样广泛使用的成像设备中,将超分辨率实际用于移动设备相机等缩放应用仍然可望而不可及。
其中一部分原因是我们需要满足一些条件,才能使此方法正常运作。首先,也是最重要的一点,镜头需要比所使用的传感器更好地处理细节(相反,您可以想象这样一种情况:镜头设计得很差,以至于添加一个更好的传感器也于事无补)。但这样做通常会使数码相机产生一种不受欢迎的人工处理痕迹,称为混叠。
图像混叠
当相机传感器无法真实呈现场景中的所有图案和细节时,就会发生混叠。混叠的一个很好的例子是莫列波纹,有时候,由于服装选择不当,电视中就会出现这种波纹。此外,当物体在场景中移动时,物理特征(如桌子的边缘)的混叠效果会发生变化。您可以在以下连拍序列中观察到这一点,在连拍过程中,相机的轻微移动会产生时变的混叠效果:
左图:高频图案背景下桌子边缘的单张高分辨率图像
右图:连拍产生的不同图像帧。在不同帧之间观察到混叠和莫列效应,像素似乎跳来跳去,并产生不同颜色的图案
但是,这种表现也能使我们 “因祸得福”:如果分析产生的图案,我们便可获得上文所探讨的各种色彩和亮度值,进而实现超分辨率。尽管如此,要使用手持移动设备并在任何连拍序列中真正实现超分辨率,仍然存在诸多挑战。
通过手部动作实现超分辨率
如前文所述,一些数码单反相机提供特殊的三脚架超分辨率模式,其工作方式与我们目前为止所描述的方式类似。这些方法依赖于相机内传感器和光学器件的物理移动,但需要相机保持完全稳定的状态,而这在移动设备上是不切实际的,因为这些设备几乎总是手持使用。这似乎让移动平台的超分辨率成像左右为难。
然而,我们可以借助手部动作将这个困难转变为优势。当我们用手持相机或手机连续拍摄一组照片时,画面之间总会有一些移动。光学防抖 (OIS) 系统可以弥补较大幅度的相机移动(间隔 1/30 秒的连续帧之间通常为 5 至 20 个像素),但无法完全消除更快和更低幅度的自然手部抖动,而这发生在所有人身上(即使是拥有“不抖双手”的人士)。当我们使用具有高分辨率传感器的手机拍照时,这种手部抖动的幅度仅使几个像素发生移动。
全局对齐后,经过处理的连拍所展示的手部抖动效果
为了利用手部抖动的好处,我们首先需要将连拍的照片排列在一起。选择连拍中的某张图像作为“基础”或参考帧,并将其他所有帧与之对齐。对齐之后,这些图像大致组合在一起,如本博文中之前的图中所示。当然,手部抖动不太可能正好使图像移动单个像素,因此在将颜色填入基础帧像素网格前,我们需要在每个新捕获帧的相邻像素之间进行插值。
当由于设备处于完全稳定的状态(例如放置在三脚架上)而未出现手部动作时,我们仍然可以通过迫使 OIS 模块在镜头间轻微移动,有意地“抖动”相机,从而达到模拟自然手部动作的目的。此动作极其细微,选择时不会干扰正常的照片,但您可以在 Pixel 3 上自行观察,方法是让手机完全静止,例如将其按在窗户上并最大程度地缩放取景器。在远处的物体中寻找微小但连续的椭圆运动,如下图所示。
克服超分辨率的挑战
以上是我们对理想过程的描述,听起来很简单,但要实现超分辨率并非易事(由于各种原因,其并未广泛运用于手机等消费类商品),并且需要进行重大的算法创新。其中的挑战包括:
即使在良好的光线条件下,连拍的单张图像也存在噪声。实用的超分辨率算法需要发现这种噪声并正确加以处理。我们的目标不是获得更高分辨率但充满噪声的图像,而是在提高分辨率的同时尽可能地减少噪声
左图:由于曝光不足,在良好光线条件下,连拍中的单帧图像仍然含有大量噪声
右图:经连拍处理后多帧合成的结果
连拍图像之间的运动并非仅限于相机的移动。拍摄场景中可能会有复杂的运动,例如,风吹过的树叶、水面荡漾的涟漪、行驶中的汽车、行走中或面部表情发生变化的人,或者摇曳的火焰,甚至是一些由于具有透明或多层特性而无法进行独特的单次估计的运动(如烟雾或玻璃)。一般来说,完全可靠的局部对齐是不可能实现的,因此即使运动估计不完全准确,良好的超分辨率算法也必须能够正常运作
由于大多数运动是随机的,即使能够良好对齐,数据也可能在图像的某些区域分布密集,而在其他区域则较为稀疏。实现超分辨率的关键在于一个复杂的插值问题,因此数据的不规则分布,使得在网格的所有部分中生成更高分辨率的图像颇具挑战性
上述所有挑战似乎使我们无法在现实世界中实现超分辨率,或者最多只限于静态场景和放在三脚架上的相机。而借助 Pixel 3 上的 Super Res Zoom,我们开发出一种稳定、准确的方法来提高连拍分辨率;此方法采用自然手部动作,而且足够可靠和高效,可以部署在手机上。
以下是我们解决其中一些挑战的方法:
为了有效合并连拍帧并为每个像素生成分别对应红色、绿色和蓝色的值,而无需进行去马赛克处理,我们开发出一种多帧整合信息的方法;此方法考虑到图像的边缘,并进行了相应的调整。具体而言,我们分析输入帧并调整组合方式,同时在增强细节和分辨率以及降噪和平滑处理之间权衡。我们沿着明显边缘的方向合并像素,而非跨越它们来实现这一点。实际效果是,我们的多帧方法在降噪与增强细节之间达到了最佳平衡
左图:在降噪与提高分辨率方面权衡欠佳的合并图像
右图:权衡更佳的相同合并图像
为了使算法能够可靠地处理复杂的局部运动(人、车、水或树叶移动),我们开发出一种可以检测和减少对齐误差的稳健性模型。我们选择一个帧作为“参考图像”,并且只在我们确定找到了正确的对应特征时,才将来自其他帧的信息合并到其中。通过这种方式,我们可以避免 “重影” 或运动模糊之类的伪像,以及错误地合并图像的部分区域
一辆快速行驶的公共汽车的连拍图像,左图:未采用稳健性模型的合并
右图:采用稳健性模型的合并
推动前沿移动摄影技术的发展
去年推出的人像模式以及更早推出的 HDR+ 管线,都展示了移动摄影技术的出色之处。今年,我们从变焦入手,做同一件事。这是推动前沿计算摄影技术发展的又一步,同时缩小了移动摄影与数码单反相机之间的质量差距。此相册包含全视野图像及 Super Res Zoom 图像。请注意,此相册中的 Super Res Zoom 图像未经过处理,而是通过变焦完成的设备直出图像。
注:此相册 链接
https://photos.google.com/share/AF1QipNpFL64UFtu4K5KIv6_4_lQdkDQevG7aqqglk8_BollB99Ue96DxdH_SuoERd1TIg?key=bVg1cVJjSHM3M3AtalJkYkU0Z0dhUDNfd2IydmRB
左图:Pixel 2 上经过 7 倍变焦处理后的图像
右图:相同情况下,Pixel 3 上使用 Super Res Zoom 处理后的图像
超分辨率概念的出现比智能手机的诞生至少早了十年。在几乎一样长的时间里,它也通过电影和电视存在人们的想象中。而且,它是学术期刊与会议上成千上万篇论文的主题。如今,它成为了现实,就在您手上的 Pixel 3 中。
Super Res Zoom 的演示动画。当用户拍摄变焦照片时,Pixel 3 会利用用户的自然手部动作,在略微不同的位置捕捉连拍图像。然后将其合并在一起,为最终生成的图像添加细节
如何充分利用 Super Res Zoom?
以下是在 Pixel 3 手机上充分利用 Super Res Zoom 的一些技巧:
通过双指张合缩放取景器,或者使用“+”按钮逐步增加变焦倍率
点按两次预览以快速切换缩放
Super Res Zoom 能够有效处理所有变焦倍率,但出于性能考虑,目前仅会在 1.2 倍或更高的倍率下启用。这个倍率大约是在缩放界面的“无缩放”刻度和第一个“单击”刻度的中间部分
广角相机的光学分辨率存在基本限制。因此,为了获得最佳(任何)缩放效果,请使用适中的放大倍率
避免拍摄快速移动的物体。Super Res Zoom 会正确捕捉这些物体,但您不太可能获得更高的分辨率
* 值得注意的是,在某些方面,这种情况与我们看见画面的方式相似。在人类(以及其他哺乳类动物)的眼中,不同的视锥细胞对某些特定的颜色较为敏感,而大脑会填充细节以重构完整图像。
致谢
Super Res Zoom 是 Google 多个团队合作的成果。没有 Peyman Milanfar、Marc Levoy 及 Bill Freeman 所管理团队的共同努力,便无法实现本项目。作者想特别感谢 Marc Levoy 和 Isaac Reynolds 在撰写本博客时提供的帮助。
作者由衷地感谢 Super Res Zoom 项目的以下主要贡献者:Ignacio Garcia-Dorado、Haomiao Jiang、Manfred Ernst、Michael Krainin、Daniel Vlasic、Jiawen Chen、Pascal Getreuer 和 Chia-Kai Liang。Ce Liu、Damien Kelly 和 Dillon Sharlet 作出的贡献和提供的反馈对本项目也有极大的帮助。
更多 AI 相关阅读:
流体标注:机器学习助力探索性界面研发,大幅提升图像标注速度
BERT 现已开源:最先进的 NLP 预训练技术,支持中文和更多语言
利用强化学习重组开源主动问题