拍人更美!谷歌工程师揭秘Pixel 2手机黑科技

本文为转载,原博客地址:https://blog.csdn.net/gh13uy2ql0n5/article/details/78283048

谷歌在Pixel 2系列智能手机当中隐藏了一个秘密武器,即谷歌自己研发的第一款移动芯片,它被称为Pixel Visual Core,它是谷歌针对消费类产品的首款定制片上系统(SOC),目前专门用于加速相机的HDR+计算,使图像处理更加流畅和快速。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


人像模式是新的Pixel 2和Pixel 2 XL智能手机的主要功能,可让任何用户体验专业的浅景深图像。此功能在国外知名的摄影器材评测机构dxomark上,排名第一分数达98分。


640?wx_fmt=png&wxfrom=5&wx_lazy=1


今天我们来详解一下,这个功能背后的第一款移动芯片以及机器学习计算摄影技术。


谷歌自主研发的首款移动芯片


Pixel 2和Pixel 2 XL都已内置Pixel Visual Core,但是目前处于休眠状态,谷歌可能将在软件准备好之后再激活这款处理器。目前借助高通骁龙835处理器,Pixel 2和Pixel 2 XL处理HDR照片的速度已经比Pixel快得多,当Pixel Visual Core激活时,速度将更快。

0?wx_fmt=png


Pixel Visual Core是一种图像处理单元(IPU),类似于常规的8核SOC。在技术上,有一个第9核心,即左上角的一个ARM Cortex-A53 单元。谷歌设计的8个核心,每一个都是专为处理HDR+量身定制,使用不到1/10的电量,从而导致HDR +性能比当前实施速度快5倍。


谷歌表示,在更新Android Camera API之后,以允许第三方摄像头开发人员使用HDR +和Pixel Visual Core,它们将成为Android Oreo 8.1预览中的开发人员选项。显然,所有这些技术都严格限制在Pixel 2代,排除了当前的Pixel所有者和其他Android用户。该公司显然认识到Pixel2相机系统的独特卖点,它正在努力开发和扩大其领先地位。


Pixel 2人像模式揭秘


0?wx_fmt=png


HDR +图片

无人像处理(左)和经过人像处理(右)


注意人像模式合成的浅景深图像,有助于抑制混乱的背景,并将焦点集中在主体上。


什么是浅景深图像?单镜头反光相机(SLR)具有浅景深功能,浅景深是将摄影师拍摄图像主体或者抑制混乱的背景的好方法。


怎样合成浅景深图像?与单反相机不同,手机相机具有小的固定尺寸的光圈,可以或多或少地产生焦点中的图像。但是,如果我们知道从相机到场景中焦点的距离,可以用模糊来替换图片中的每个像素。这种模糊将是与其相邻像素颜色的平均值,其中模糊量取决于该场景点与对焦平面的距离。


手机如何估计到场景中每一点的距离?最常见的方法是将两个摄像机相互靠近 - 所谓的双摄像手机。然后,对于左侧相机图像中的每个像素,我们在正确的相机图像中寻找匹配的像素。找到这个匹配的两个图像中的位置,通过三角测量的过程,给出了该场景特征的深度。这种匹配特征的搜索被称为立体匹配算法,它的工作原理与我们两只眼睛的方式大致相同。


无论是使用立体算法还是分割,人为模糊属于背景的像素称为合成浅景深或合成背景散焦。合成散焦与您从单反相机获得的光学模糊不同,但与大多数人看起来相似。


Google Pixel 2在其后置和前置摄像头上均可提供纵向模式。对于前置(自拍)相机,它仅使用分割。对于后置摄像头,它使用立体算法和分割。但是,Pixel 2只有一个后置摄像头。


让我们一步一步地详解这个过程。


步骤1:生成HDR +图像


先从清晰的图片开始。为此,Google使用计算摄影技术HDR +来提高拍摄照片的质量,最近的Nexus / Pixel手机上都有这个功能。


它通过捕获曝光不足的图像,来避免高强光,对准和平衡这些帧,以减少阴影中的噪点,并以保持局部对比度的方式提升这些阴影,同时智能地减少全局对比度。即使在昏暗的照明下,也能拍出具有高动态范围、低噪点和清晰细节的图像。


Google的实施方式有所不同,因为我们在手持相机拍摄的突发情况下进行操作,如果摄影师不稳定或场景中的物体移动,我们无需担心产生鬼影(双重影像)。


以下是使用HDR +捕获的具有高动态范围的场景的示例。


0?wx_fmt=png


Pixel 2拍摄的照片:无HDR +(左)和使用了HDR +(右)


请注意,HDR +避免在庭院中的日照影响,同时在黑暗的拱廊天花板上保留了细节。


步骤2:基于机器学习的前景背景分割


接下来来确定哪些像素属于前景(通常是一个人),哪些属于背景。这是一个棘手的问题,因为与电影行业的色键技术(chroma keying)不同,我们不能假设背景是绿色(或蓝色或任何其他颜色),所以我们尝试应用机器学习。  


Google训练了一个用TensorFlow编写的神经网络,它可以查看图片,并且估计出哪些像素是人,哪些不是。这个卷积神经网络(CNN)具有跳跃式传递(skip connection)。


“卷积”意味着网络学习的组件采用过滤器的形式,因此您可以将网络视为仅过滤图像。 


skip connection”允许信息从网络的早期阶段轻松输出,包括了低级特征(颜色和边缘)和高级特征(面部和身体部位) 。


当您需要不仅仅确定照片中是否有一个人,而是要确定哪个像素属于该人的时候,这样的结合很重要。


Google的CNN训练了近百万人的照片(以及他们的帽子,太阳眼镜和冰淇淋)的训练。这里有一个例子:


0?wx_fmt=png


左边是HDR +管道生成的画面,右边是神经网络的平滑输出

网络的白色部分被认为是前景的一部分,黑色部分被认为是背景


这个神经网络清晰的识别出了女人的头发和茶杯作为前景的一部分。如果对右边的模糊照片处理,将产生下面的图像:

0?wx_fmt=png

有两点要特别注意:


  • 首先,即使背景包含不同景深的对象,模糊程度也是均匀的


  • 第二,单反相机也会使图像模糊不清


步骤3:从双像素到深度图


为了计算景深,我们可以使用立体算法。Pixel 2没有双摄像头,但它确实有一种称为相位检测自动对焦(PDAF)的技术,有时称为双像素自动对焦(DPAF)。


如果将手机背面摄像头的(微小)镜头分成两半,则通过镜头左侧看到的视图和右侧的视图略有不同。这两个焦点的距离小于1mm(大致是透镜的直径),但是它们不足以计算立体深度并产生深度图。


相机的光学元件的工作方式,相当于将图像传感器芯片上的每个像素分成两个较小的并排像素,并分别从芯片读取它们,如下所示:


0?wx_fmt=png


在Pixel 2的后置摄像头上,每个像素的右侧通过镜头的左侧观察世界,每个像素的左侧通过镜头的右侧观察世界


如图所示,PDAF在单个拍摄中,通过镜头的左侧和右侧给出视图。如果您以纵向方向握住手机,那么这是镜头的上半部分和下半部分。


以下是我们的示例场景中的上图像和下图像(下图)。这些图像是单色的,因为我们只在我们的立体算法中使用拜耳彩色滤光片传感器的绿色像素,而不是红色或蓝色像素。


0?wx_fmt=gif


测试场景通过Pixel 2 手机拍摄的上半部分和下半部分的视图。在右侧的GIF中,她几乎保持不动,因为相机专注于她,而背景上下移动。


PDAF技术可以在许多相机中找到,包括单反相机,以帮助他们在录制视频时更快地聚焦。Google正在使用这种技术来计算深度图。


具体来说,Google使用立体算法输入左侧和右侧图像(或顶部和底部),这种方式已在Google的Jump系统全景拼接器(称为Jump Assembler)中使用过。


这种算法首先执行基于子像素的精确定位,生成低分辨率深度图,然后使用双边求解器将其插入到高分辨率中。这类似于之前应用到谷歌的镜头模糊特征中的技术。

 

另一个细节:由于Pixel 2摄像头拍摄的左侧和右侧视图非常接近,所以我们获得的深度信息是不准确的,特别是在低光线下,因为图像的噪声高。为了减少这种噪声并提高深度精度,Google捕获左侧和右侧图像,然后在应用立体算法之前对齐和平衡它们。


在下面的左图,是使用立体算法示例生成的深度图。


0?wx_fmt=png


左:使用上半透镜和下半透镜图像立体计算的深度图

右:黑色意味着无需模糊,红色表示对焦平面(她的脸)背后的场景特征,越红越亮,蓝色表示在焦点平面前面的特征


步骤4:呈现最终图像


最后一步,是将步骤2中计算的分割蒙版,与我们在步骤3中计算的深度图组合,以确定从步骤1HDR图像中的每个像素模糊多少,我们结合深度和遮罩的方式有点神秘,但粗略的想法是想要属于一个人(遮罩的白色部分)的场景特征,上面的红色图像是每个像素模糊多少的可视化。


0?wx_fmt=png


结果是在第2步中呈现过的结果,您会看到糕点现在稍微模糊,就像您从单反相机中预期的那样。


使用HDR +技术 


HDR +图像、分割蒙版和深度图的生成,最终合成浅景深图像。下面介绍一些实例。


采用微距拍摄


如果您处于纵向模式,并将相机指向一个小物体而不是一个人(如花或食物),那么我们的神经网络识别不到人脸,不会产生有用的分割掩码。换句话说,我们的管道的第2步不适用。


幸运的是,我们还有一个PDAF数据的深度图(步骤3),所以我们可以根据深度图单独计算浅景深图像。因为镜头左右两侧之间的基线如此之小,所以仅适用于大约不到一米远的物体。但是对于这样的场景,它会产生不错的图片,您可以将其视为合成微距模式。


0?wx_fmt=png

 (左)微距模式 和 (右)无微距人像模式


自拍模式


Pixel 2在前置(自拍)以及后置相机上提供纵向模式。这个相机是8Mpix而不是12Mpix,它没有PDAF像素,这意味着它的像素不会分成左半部分和右半部分。


下图是Pixel 2的自拍相机拍摄的直视和纵向模式自拍的示例:


0?wx_fmt=png(左)无自拍和(右)有自拍人像模式。前置摄像头缺少PDAF像素,因此仅使用机器学习识别背景像素


是时候放弃单反相机了吗?


5年前,手机图片中的像素数量并没有赶上单反相机。即使在大型家用电脑屏幕上,您看不到使用手机拍摄的照片中的各个像素。


不过,手机相机并不像单反相机那样强大,主要因为以下四点:


  • 明亮场景中的动态范围(太阳光线)

  • 低信噪比(噪声图像,细节丢失)

  • Zoom(野生动物的照片)

  • 浅景深


但是,随着图像识别技术以及AI硬件的不断发展,将来可能不再卖肾买镜头惹~



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页