历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2020年12月21日 | Google是怎样把Pixel 5上的人像光效做出来的?

2020-12-21 来源:爱范儿

      这一两年来,计算摄影这个词我们听到太多次了。

  提到计算摄影,自然而然的就会让人想到 Google 的 Pxiel 系列手机,这个系列可以说是开创了计算摄影的先河,它为我们揭示了计算摄影的威力和魅力所在。

  也正是因为计算摄影带来的威力如此惊人,这两年逐渐回过味的手机厂商们才终于一股脑扎了进去。而 Google 这时候已经在玩更多的花活了。

  ‘人像光效’的最初是随着今年十月份 Google 发布 Pixel 4a&Pixel 5 上,这一代 Pixel 独占的功能。但是在前几天,Google 对相机和相册应用进行了一次更新,将这个功能下放给了 Pixel 2 之后的用户。


  受到肖像摄影师使用的摄影灯启发,‘人像光效’能够对光源进行重新定位和建模,然后将新的光源添加到照片的场景中去。并且还能够识别初始照明的方向和强度,然后对照明情况自动进行补充。

  这样强悍的计算摄影功能自然离不开神经网络的机器学习能力,通过手机人像光效模式所拍摄的照片作为数据库进行训练之后,‘人像光效’的后期能力启用了两种新的算法:

  • 自动添加合成光源:对于给定的人像照片,算法进行合成添加往外光源,并且将于现实中摄影师的打光照明相一致。

  • 合成后重新照明:对于给定的照明方向和人像照片,以最自然方式添加合成光。

  首先说第一个问题,就是确定光源位置和添加。在现实中,摄影师通常采用经验和感性的方式,通过观察光线落在被拍摄者脸上的强度和位置,然后去确定如何去打光。但是对于 AI 来说,如何确定已有光源的方向位置是并不容易。


  为此,Google 采用了一种全新的机器训练模型——全方向照明轮廓。这种全新的照明计算模型可以将人脸当做光线探测器,从而推断出来自所有照射的光源方向、相对强度和颜色,而且还能通过另一种面部算法来估计照片中头部的姿势。

  虽然听起来很高大上,但是实际训练模型的呈现效果还是挺可爱的,它会把人的脑袋看做三个圆圆的银色球形物体,顶部的球‘质地’是最粗糙的,用来模拟光线的漫反射。中间的球也是磨砂的,它用来模拟较为聚集的光源。而最底下的球则是镜面‘材质’,用来模拟较为光滑的镜面反光。

  另外每个球体都能根据自身发的特点反映环境照明的颜色,强度和方向性。

  这样,Google 就能得到后期合成光源的方向应该在哪里,比如经典的人像光源是位于视线上方 30°,与摄像机轴成 30° 至 60° 之间,Google 也遵循了这一经典规则。

  在学会了给人像添加光源的方向之后,那接下来要做的就是如何让添加的光源变得更加自然。

  前一个问题有点像‘独孤九剑’的剑谱,学会了之后就会做固定的一些题目了。而解决后一个问题则需要让‘独孤九剑’尽可能多的实战,将不同的实际情况融会贯通,再学会破解世间万般武学。


  为了解决这个问题,Google 又研发了另一个新的训练模型,用来确定自定向光源添加到原始的照片中。正常情况下是无法用已有的数据训练这个模型的,因为无法面对近乎无穷的光线照射情况,并且还要与人脸完美的匹配起来。

  为此 Google 打造了一个很特殊的用于训练机器学习的装置——一个球形的‘笼子’。在这个装置里面具有 64 个具有不同视角的摄像机和 331 个可单独编程的 LED 光源。

  如果你去过杜比影院,在杜比影院的映前秀中有一个环节是声音在一个半球型的穹顶中移动来模拟真实中近乎无限的方向。Google 这个装置其实也是类似的原理。


  通过不停地改变照射的方向和强度并模拟复杂的光源,然后可以得到人的头发、皮肤、衣服反射光的数据,从而获得在复杂光源下的照明应该是怎样的。

  Google 一共请了 70 位不同的人,用不同的脸型、发型、肤色、衣服、配件等特质训练这个模型。这样确保能够最大限度让合成的光源与现实相匹配。

  此外,Google 并非直接通过神经网络模输出最后的图像,而是让神经网络模型输出一个较低分辨率的商图像。

  这里解释一下什么是商图像,一张图片我们可以分解为两层:底层和细节层。底层包含图像的低频信息,反映了图像在大尺度上的强度变化;细节层包含图像的高频信息,反映了图像在小尺度上的细节。底层乘以细节层即为源图像,而细节层则又可以称为商图像。

  然后通过原始图像的底层,采样时输入商图像的数据添加额外的光源,就能得到一个最终输出的图像。


  最后的流程就是这样,先给定一张图片,然后计算图片中人物的表面法线,紧接着计算图片中的可见光源,通过神经网络模型模拟额外光源输出较低分辨率的商图像,然后作为细节层与原始照片底层相乘计算,最终得到一张添加了额外光源的人像照片。

  Google 还对管线进行了大量的优化,让模拟的光效能够在手机上实时交互,而整个模型的大小却仅有 10MB 左右。


      Pixel 5 的人像光效可以说是 Google 计算摄影中的一个典型案例,通过不断训练神经网络模型让手机得以模拟现实中的人像打光。完成了计算摄影一次新应用场景。

  有些人说摄影本是门艺术,计算摄影在根本上是对摄影的侮辱,但自从 1839 年法国人达盖尔做出了第一台具备实用性的相机以来,一百多年来相机一直在由小众走向大众,直到手机摄像头的诞生,让每个人都有了近乎平等的拍照机会。而人们的内心的表达也让摄影这门艺术得以逐渐丰富起来。

  没错,计算摄影在‘摄影’的同时也在‘算影’,但算法早已是手机摄影中不可分割的一部分,所追求的仍然是模拟现实中所能实现的效果,毕竟没人会把‘魔法换天’叫做计算摄影吧。

  而当苹果和 Google 在计算摄影上走的越来越远时,我们才发现,算法其实是比硬件更强的壁垒。


推荐阅读

史海拾趣

HBH-Microwave公司的发展小趣事

在电子行业中,客户需求往往具有多样性和特殊性。HBH-Microwave深知这一点,因此始终将提供定制化解决方案作为公司的核心竞争力之一。公司拥有一支专业的研发团队和完善的生产体系,能够根据客户的具体需求,快速设计出符合要求的微波组件和子系统。这种灵活性和高效性使得HBH在众多竞争对手中脱颖而出,赢得了大量客户的信赖和好评。

E-T-A Circuit Breakers公司的发展小趣事

进入21世纪后,E-T-A公司继续加大在研发和技术创新方面的投入,推出了一系列智能电路保护解决方案。这些解决方案结合了先进的传感器技术、数据分析和人工智能技术,能够实时监测电气系统的运行状态,预测潜在风险,并提供智能化的保护和控制策略。这些创新产品不仅提高了电气系统的安全性和可靠性,也为客户带来了更高的经济效益和社会效益。

Astec [Astec America, Inc]公司的发展小趣事

Astec America, Inc的创立可以追溯到上世纪80年代,当时创始人看到了电源技术的巨大潜力,并决定在这一领域进行深耕。公司初创时期,团队主要专注于电源技术的研发,推出了一系列具有创新性的电源产品。这些产品不仅性能稳定、效率高,而且价格合理,很快就在市场上获得了良好的口碑。

Caddell-Burns Manufacturing公司的发展小趣事

随着环保意识的日益增强,Caddell-Burns Manufacturing公司也积极响应国家号召,致力于实现绿色发展。公司引进了先进的环保设备和技术,对生产过程中的废弃物进行无害化处理。同时,公司还研发了一系列环保型电子产品,满足了客户对绿色产品的需求。此外,公司还加强了对员工的环保教育,提高他们的环保意识,共同为保护环境贡献力量。

通过以上五个故事,我们可以看到Caddell-Burns Manufacturing公司在电子行业里发展起来的艰辛与辉煌。他们凭借过硬的技术实力、敏锐的市场洞察力和卓越的管理能力,在激烈的市场竞争中脱颖而出,成为一家备受瞩目的电子制造企业。

EM Devices Corporation公司的发展小趣事

EM Devices Corporation的创始人在电子工程领域有着深厚的背景,他们看到了当时市场上对高性能电子元件的迫切需求。于是,他们决定创办EM Devices Corporation,专注于研发和生产高质量的电子元件。起初,公司面临了资金、技术和市场等多方面的挑战。然而,凭借创始人对技术的执着追求和对市场的敏锐洞察,公司成功研发出了一款具有竞争力的产品,并逐渐在市场上获得了认可。

FETek Technology(东沅)公司的发展小趣事

在半导体测试领域取得成功后,东沅并没有停止前进的步伐。他们开始关注新兴的电子行业趋势,并决定拓展新的业务领域。例如,他们开始研发和生产与电源管理相关的Power Mosfet产品,这些产品具有高效能、高可靠度和价格优势等特点,迅速在市场上占据了一席之地。此外,东沅还积极拓展射频和模拟芯片领域的研发和销售,为客户提供更全面的解决方案。

问答坊 | AI 解惑

有没有纯数字的精确测量信号时间间隔的方法?

十个ns左右的误差范围啊,疯了都,目前我想到两个方法,一个是精确扩展计数时间,一个是多测几次,牺牲测量速度,不好弄…

查看全部问答>

HI-TECH C V9.70 和谐文件

HI-TECH C Compiler for PIC10-12-16 MCUs V9.70 已经测试过,破解成功! 1,先安装HI-TECH C Compiler for PIC10-12-16 MCUs V9.70  安装路径为默认路径 \"C 盘下\" 激活PICC 45天试用版! 2,破解,先写入注册文件,运行破解文件, ...…

查看全部问答>

DDRAW程序问题,在全屏方式下,用创建程序的方式打开一个程序后,程序的界面显示不出来,LCD上显示的还是DDRAW的画面

请问如何解决这个问题 // // Copyright (c) Microsoft Corporation.  All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you l ...…

查看全部问答>

求助 :最近学习uc/os-ii 用的任哲写的《嵌入式实时操作系统uc/os-ii原理及应用》编译无法通过

最近学习uc/os-ii  用的任哲写的《嵌入式实时操作系统uc/os-ii原理及应用》,把他书中的源码在网上找到了。书中是用的BORLAND C++ 3.1编译的,我用borland c v3.1 dos 界面下直接建立工程文件编译,可是搞了很久编译都无法通过,而且试了 ...…

查看全部问答>

wince usb 驱动问题

我在看wince5.0 usb从驱动源代码具体位置是:/%wince500boot%/public/common/oak/usbfn 这个文件下有3个文件夹: 1.CLASS文件: RNDIS,SERIAL, STORAGE三个文件夹 2.CONTROLLER文件: MDD,NET2280 3.UFNCLIENLIB文件 请问这三个文件都有什 ...…

查看全部问答>

求助 AT89S51与C8051F单片机有什么区别啊?(急)

   各位前辈,我是一名学生菜鸟,要用单片机做采集器,遇到了这么一个问题,AT89S51与C8051F单片机有什么区别,请各位帮忙解决,谢谢!…

查看全部问答>

有木有CH4浓度传感器啊,急求资料,帮忙呀

最还好有单片机程序代码,电路图等等,越全越好.谢谢啊 …

查看全部问答>

4-20ma转换成0-5V

各位高手,本人摸电只是懂点基本的.想请教大家个问题.传感器输出的4-20ma如何转换成0-5V.我以前一直就是用250欧电阻将4-20ma转换成1-5V,再进行A/D转换,感觉这样处理没有0-5V方便.比如4-20ma表示0-50度的温度,0V的时候就表示温度是0度,5V的时候就表示 ...…

查看全部问答>

MSP430 LaunchPad学习笔记之uart

一、摘要本应用报告介绍了如何使用Timer_A实现UART功能。该包括例子是专门为MSP430x11x家庭,但他们能适应任何MSP430家族成员纳入Timer_A。使用硬件UART的功能在Timer_A功能和软件。执行是半双工的,事件驱动,它支持的8N1波特率协议从1200到115200 ...…

查看全部问答>

求一个G2452 SPI模式传输的例程

如题,望大家帮忙,谢谢!!…

查看全部问答>