Google Pixel 相机解密(2)--Super Res Zoom

本站教学视频《成像算法基础(python版)》 《成像系统镜头光学》《图像质量测试测量与国际标准》《cmos sensor测试测量与国际标准》《数字成像系统》已上线淘宝

课程购买方法:淘宝搜索‘大话成像’可以找到本站教学视频

大话成像技术论坛:www.dahuachengxiang.com

Google 的Super Res Zoom技术,主要用于在zoom时增强画面细节以及提升在夜景下的效果。Google 在“Google pixel Handheld Multi-FrameSuper-Resolution”这篇论文中对原理做了详细的介绍。

还是先上一张老图:

图1: 算法流程

之前的文章《Google Pixel4 相机解密(1)夜景》可以简单概况为对上述流程中,通过更好的曝光策略和tone mapping 等提升夜景下的效果,而本篇则是对上述流程中的demosaic 步骤进行了增强,相对以前的效果提升如下图,可以看出在高频区域尤其是摩尔纹处得到了很好的改善:

图2: 效果对比

首先说明Google 在文中介绍的超分并没有采用深度学习的方法,而是采用了传统做法。其原理也很简单,一句话概括为:通过多帧来填补Bayer中缺少的图像分量。sensor都是Bayer 格式,每个像素处只有一个色彩通道,其余的色彩是通过插值得来,而插值的过程中就会产生摩尔纹等问题。

图3: bayer 与插值

假设物体是不动的,我们每次分别每次移动1个像素,拍摄4次,岂不是就可以在每个像素位置处凑够RGGB 像素值了呢,这样我们无须插值就可以获得一张从Bayer到RGB的图像。

图4:多帧方法获得RGB采样值

这种设计思想在Sony、宾得等单反相机上从2017 年就已经开始应用,技术名为:像素偏移多重拍摄(图5)。

图5

因为单反等拥有很强的硬件基础可以精准控制位置的移动,手机上没有这么多硬件设备了,那手机怎么来创造位移呢?Google假设并调研了人拍照时手抖的特点,发现了拍照时手抖就可以创造出足够的亚像素位移来保证多帧图像基本可以使每个像素位置都能拍摄到三个通道(图6)。

图6

运动估计在之前的计算中已经得到了解决(HDR+ 和夜景中都有讲解),剩下的难点就变成了如何来融合多帧每个通道的像素了,其流程如下图,无非就是参考噪声模型、局部细节、运动向量等老生常谈的特征,剩余内容就是对图7公式的补充和解释,建议感兴趣的直接去看论文即可。

图7

因为计算量和图像尺寸以及帧数成线性,文中给出的计算速度是在高通Adreno 630 GPU平台上的数据,15.4ms+7.8ms/MPixel,并不算特别快,这也是为什么在GoogleBlog 里面说“SuperRes Zoom可以在所有缩放系数下工作,不过由于性能原因,只在1.2倍以上激活”吧。