欢迎光临KOTOO财情




Google公布Pixel2与Pixel2XL人像模式运作原理

2024-05-05 230

人像模式运作原理 ,Google 发表 Pixel 2 与 Pixel 2 XL 后立刻拿下目前 DxO 行动装置最高分,拍照能力也立即成为这两支最受关注的焦点,除了照片成像如何外,虽然它们只有一颗镜头,但透过软件运算方式,却也能实现不错的 Portrait Mode 人像模式效果,这点最近网络上也被讨论非常热烈,为了让大家更了解其运作原理,昨日 Google 就在官方部落格上详细解释一般。你可能会想不就是让软件分辨出被摄主体跟背景?整体这么说是没错,但如何让软件能正确辨识以及工作,这里面可是要下不少工夫,Google 透过 HDR+ 与 4 大步骤才完成。

人像模式运作原理 ,Bikeride selfie comp s

如果你还没看到过 Pixel 2 与 Pixel 2 XL 的人像模式拍照效果,没关系,下面者两张就是最经典的案例,左侧是用 HDR+ 拍出的照片,右侧则是人像模式。人像模式可让观赏者更专注在被摄主体上,不受背景影响(点我看原图):
Girl with the orange hat s

什么是浅景深照片

浅景深的意思是指被摄主体在一定距离内画面是锐利的,前面物体与后面的背景则变成模糊,这是一个能吸引观赏者专注在被摄主体,或避免混乱背景被注意非常好的方式。而 SLR 单反相机有一颗大镜头,能创作出浅景深的效果,因此用它来拍摄人像时,摄影师就能透过这种拍摄技巧,呈现他们的个人特色艺术风格。

而浅景深照片中影响模糊程度的条件主要有两个:“深度” 以及 “镜头的尺寸”。深度指的是离对焦区块越远物体,模糊量也会越多。镜头尺寸我们以一颗 50mm f/2.0 镜头为例子,50mm/2 = 25mm 为镜头的直径,用这样的镜头来拍摄,即使物体离于对焦区块只有几英寸的差距,一样会变得很柔软(模糊)。

浅景深还有另一个值得了解的知识,就是 “散景”,散景也就是照片中光线打在模糊点上产生的形状。这形状是取决于镜头的光圈结构,圆形?还是六角形(由六个光圈叶片组成)?摄影师们一直以来也不断争论哪个形状能构成好的或坏的散景。

合成浅景深照片

跟单反相机不同,手机的镜头非常小且尺寸固定,所以没办法产生浅景深效果,至少能让照片有正常对焦。不过,如果我们能知道相机与拍摄场景的距离,就可以利用模糊效果来覆盖照片中的每一个像素,模糊效果将会取决于这像素颜色与周边的平均值,模糊量则是与对焦区块的距离而定。另外我们也能控制模糊的形状,也就是产生散景效果。

但要如何才能让手机计算出镜头与场景中每一点的距离?最常见的方法就是使用两颗靠近的镜头,也就是所谓的双镜头手机,接着在左右拍出的照片成像中,找出相符合的点,而获得的位置资讯就能透过三角测量方式计算出场景深度,这种寻找配对方式称作立体算法(stereo algorithm),工作原理跟我们的两只眼睛非常类似。

合成方式其实还有一个更简单的作法,就是使用一些单镜头手机的应用工具,将一个图像分成两个图层:”前景“(通常是一个人)中的每一个像素,以及剩下其他每一个像素的 ”背景“。这种分离方式有时候称作语义分割(Semantic Segmentation),让你能模糊背景,但它没有深度的概念,没办法呈现不同的模糊程度。另外如果物体在人的前方,也就是更靠近相机,是不会有模糊效果的,即使是真正的相机都有可能发生。

无论使用立体还是分割,这种人为模糊背景的方式都称作合成浅景深或合成背景散焦,这跟 SLR 单反相机的光学模糊是不一样,但对大多数人来说看起来非常相似。

Pixel 2 系列的 人像模式运作原理 是如何工作

Google Pixel 2 的人像模式前后镜头都有提供这功能,但前镜头只使用语义分割(Semantic Segmentation),后镜头则是语义分割(Semantic Segmentation)与立体算法(stereo algorithm)两个都有。不过这边就有一个问题,Pixel 2 只有一颗后镜头,那怎么能使用立体算法?总共需要 4 大步骤:

步骤 1. 制作 HDR+ 照片

人像模式是从一张非常清晰的照片开始。所以我们使用了 HDR+ ,这是 Google 用来提升照片品质所使用的计算摄影学科技,近期每一台 Nexus 与 Pixel 手机都有。HDR+ 会拍摄一系列曝光不足的照片,透过校准以及平均细节方式,来减少阴暗处的噪点,当整体对比度合理减少时,借由保持局部的对比度,来提升阴影区域的品质。即使在灯光昏暗的环境下,这张照片也具备高动态范围、低噪点、以及锐利清晰的细节。

这种透过校准与平均细节减少噪点的方式,在天文摄影学中已经应用好几十年,但 Google 的方式有些不同,因为我们是使用手机拍摄,需要更小心避免摄影者拿的不稳,或场景物体移动时所产生的晃动影像。下面是使用 HDR+ 拍摄的范例照片。

使用 Pixel 2 拍摄,左为没开启 HDR+;右则有开启,可以注意看 HDR+ 如何避免天空与庭院过曝的同时,依旧保留走道天花板上方黑暗处的细节(点我看原图):
Stanford arcade comp s

步骤 2. 基于机器学习的前景与后景分割

HDR+ 照片完成后,下一步就要决定哪些像素为前景(通常为一个人)、哪些像素为背景。这是一个非常棘手的步骤,因为不像电影中的 chroma keying 色键(如:绿幕)这么简单,我们没办法猜测背景是什么颜色,因此就必须透过机器学习技术来实现。

特别的是,我们已经使用 TensorFlow 训练出一个神经网络,用来分辨及估计照片中哪些像素为人物、哪些像素不是。具体来说,我们使用的是网络是,带有跳跃式连结(skip connection)的卷积神经网络(CNN)。卷积的意思是指采用学习网络组件的过滤器(每个像素周围的加权和),你可以想成这网络是用来过滤图片,接着还是一直过滤图片。而跳跃式连结则是允许资讯在早期、后期都能轻松传递、流动,早期阶段推算比较简单的特征,如:颜色、边缘线条,后期阶段则是高难度的特征,如:脸部、身体部位,这两个阶段的结合是非常重要,不仅仅辨识出照片中有没有人,还要准确鉴别哪些像素是属于人。

在这之前,我们的 CNN 已经接受一百万张有人物照片的训练(以及他们的帽子、太阳眼镜、冰淇淋甜筒)。下是使用 TensorFlow 手机所推算出的遮色片范例。

左原图,使用 HDR+ 所生成的图片;右边则是我们的神经网络输出图,白色部分被认定为前景,黑色则是背景(点我看原图):
Orig and mask comp s

这个遮色片有多棒?还不错,我们的神经网络成功辨识出女性头发以及手拿的茶杯为前景,所以可以保持它们锐利,如果我们根据这遮色片产生模糊照片,就会变成下图:
0132 20170801 154453 513 mask only

这结果也显示出几件事情。首先,即使背景物件的深度都不一样,模糊程度也都是一致的。第二,如果这张是用单反相机拍摄,盘子以及上面饼干都会出现模糊效果,因为它们离镜头很近。

我们的神经网络知道饼干不是人物一部分(位于遮色片黑色区块),但它又是在人物的下方,因此也不能认作是背景的一部分,当我们侦测出这种情况时,会保持这些像素锐利。不幸的是,这种方式并不是每次都适合,像在这张范例下,我们应该让这些像素变得更模糊一些。

 

步骤 3. 从双像素到一张深度图

为了改善结果,这会帮助了解场景中每一个点的深度,我们使用立体算法(stereo algorithm)来计算深度。Pixel 2 不是一台双镜头手机,但它拥有 Phase-Detect Auto-Focus (PDAF) 相位对焦技术,有时候也称作 dual-pixel autofocus (DPAF)。想像把手机里的主镜头拆成两半,用镜头左侧看到的画面会跟镜头右侧有些不同。而这两个视角只有 1mm 的差距(大约是镜头直径),不足以使用立体演算来产生深度图。相机的光学元件运作方式,是将图像感测芯片上的每个像素,分成两个较小像素并并排一起,接着个别读取它们,如下图所示:
Dual Pixel exc

就如上图,PDAF 像素在一张快照中可以给你左右两侧不同的视角。或者这样看,如果你手机拿直的拍照,它就是镜头的上下两个部分。下图就是实际例子,左为上半部拍摄,中是下半部,看起来几乎一样对不对?但事实上有一些为不同,右是这两张图拉近制作出的 GIF 档(点我看原图):
Left right comp gimp

PDAF 相位对焦技术很多相机都有,当然也包括 SLR 单反相机,帮助它们在录影时对焦能更加快速。我们则透过这技术来计算深度图,具体来说,我们使用左侧以及右侧影像(或上下),透过 Google 的 Jump Assembler 作为立体算法的输入。这算法式会先执行基于瓦片的对齐让子像素精准,来产生出低分辨率的深度图,接着透过双向求解器(bilateral solver)转变成高分辨率,类似 Google 之前使用的镜头模糊功能。

另外一个细节:由于 Pixel 2 主相机的左侧与右侧视角非常接近,所以我们获得的深度资讯是不准确的,别是在低光源下,图像会有非常多噪点,为了解决这问题以及提高深度准度,我们快拍左侧与右侧的图像,在使用立体算法之前,进行对齐以及平均。当然,这步骤要非常小心,就跟 HDR+ 一样避免出现任何错误,要不然深度图就会出现残影的状况。

左图是使用在立体算法的深度图,经由上半部与下半部镜头拍摄,越亮的地方也代表越靠近镜头;右图则是用来决定每个像素的模糊程度,黑色为不需要模糊,位于对焦区域(也就是他的脸)背后的红色场景,越亮代表模糊量越多(点我看原图):
Depth and blurviz comp s

步骤 4. 拼接并完成最终照片

最后一步是将步骤 2 的分割遮色片,以及步骤 3 的深度图组合起来,决定步骤 1 这张 HDR+ 相片中每一个像素要有多少的模糊量。我们结合深度与遮色片的方式是不能说秘密,不过大致来说,我们想要属于人物的场景(遮色片白色区块)保持锐利,我们认为属于背景的场景(遮色片黑色区块),模糊成依据它们离对焦区域有多远的距离,而这距离可以从深度图找出,像是上图的红色范围。

事实上,改变成模糊是最简单的部分,每一个像素替换成具有相同颜色但大小不同的半透明磁盘(translucent disk)。如果我们按照深度顺序来替换所有磁盘(disk),就会变成跟之前所探讨的平均值一样,跟真正光学模糊差不多的效果。合成散焦有一个好处是,由于我们是利用软件,可以获得更完美形状的瓷盘散景,不需携带数个笨重的相机镜头。另外有趣的是,透过软件就没有什么理由需要再去坚持现实主义,我们能使散景变成任何想要的形状。

关于示范范例,下图是最终的人像模式照片,如果你跟步骤 2 合成的浅景深照片相比,你会看到盘子上的饼干变成模糊了,就跟 SLR 单反相机一样:
PORTRAIT 0132 20170801 154453 513

以上就是 Google 解释的人像模式运作原理,除此之外,Google 在这篇文章中还有教导如何拍摄微距、自拍、以及透过人像模式来创作更多照片,有兴趣的朋友可以点我阅读更多

2018-01-05 16:50:00

标签:   资讯头条 kotoo科技资讯 kotoo科技 kotoo科技资讯头条 科技资讯头条 KOTOO商业产经 新闻网 科技新闻网 科技新闻 Kotoo科技新闻网 Kotoo Kotoo科技新闻网 科技新闻网 新闻网 KOTOO商业产经 科技资讯头条 kotoo科技资讯头条 kotoo科技 kotoo科技资讯 资讯头条 Kotoo Kotoo科技新闻网 科技新闻 科技新闻网 新闻网 KOTOO商业产经 科技资讯头条 kotoo科技资讯头条 kotoo科技 kotoo科技资讯
0