欢迎光临GGAMen游戏资讯




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

2025-02-28 217

人像模式运作原理 ,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

标签:   游戏头条 资讯头条 ggamen科技资讯 ggamen科技 ggamen科技资讯头条 科技资讯头条 ggamen游戏财经 新闻网 科技新闻网 科技新闻 ggamen ggamen游戏新闻网 科技新闻 新闻网 ggamen游戏财经 科技资讯头条 ggamen科技资讯头条 ggamen科技 资讯头条 游戏头条 ggamen 科技新闻 科技新闻网 新闻网 科技资讯头条 ggamen科技资讯头条 ggamen科技 ggamen科技资讯 资讯头条 游戏头条
218