十年磨一剑,Google 十年摄影黑科技发展回顾

2019-11-08 13:15:56|

Fcam和诺基亚n900:一切的开始

谈到手机行业最好的摄影师,谷歌肯定无法绕开它。在过去十年里,谷歌一直是手机行业计算摄影的领导者。谷歌像素在计算摄影方面的深厚技能很大一部分归功于斯坦福的计算摄影团队。

让我们把时间调回到2010年。

那一年,乔布斯在莫斯科国立大学的wwdc发布了iphone 4,在半小时车程外的斯坦福大学,教授们正在调试一个看起来极其简单甚至丑陋的黑匣子。

弗兰克照相机

他们可能没有预料到的是,这个“黑匣子”的蝴蝶效应将引发一场计算摄影的风暴。风暴如此猛烈,影响如此深远——毫不夸张地说,这个黑匣子直接或间接地影响了十年后地球上几乎每一部智能手机拍摄的每一张照片。

研究人员的出发点很简单,他们想要一个可编程的摄影平台,但是当时市场上所有的摄影设备都不能满足这一需求:虽然卡片机和单反相机可以提供更高的画面质量,但是他们缺乏相关的计算能力,并且没有打开可编程的底层。虽然以iphone为代表的新兴智能手机潜力巨大,但其成像质量差,以及苹果封闭的软件系统也使得相关软件的开发成为不可能。

既然没有,那你自己做吧。

由斯坦福大学领导,加州大学和乌尔姆大学参与,并与诺基亚研究中心和迪斯尼合作,研究人员开发了fcam。

fcam的全名是弗兰肯斯坦节(frankencamera1),取自《弗兰肯斯坦》中科学赋予生命的怪物。这款相机有一个开放的、可定义的、基于C的api,并使用linux系统。这是一个可以在毫秒内控制硬件的计算摄影平台。

该系统不依赖于特殊硬件,因此研究人员后来将其移植到诺基亚n900手机上,并使用相同的api实现了六个功能:

诺基亚n900

Fcam和n900为移动计算摄影的新世界打开了大门。在接下来的十年里,这些功能逐渐从实验室出现在每一部智能手机上。

相机2.0/hal3:计算摄影的api基石

斯坦福制造fcam后不久,该团队被谷歌挖走,领导安卓相机框架团队的研发。

与传统相机(相机1 api)相比,后者只能调整光圈、快门、iso等几个参数。,智能手机具有更强大的感知能力、更强大的计算能力、更方便的连接和用户上下文感知能力。然而,由于软件的限制,这些潜力没有得到很好的开发。

2014年,谷歌在i/o会议上发布了android l。android l带来了很多重要的功能,比如新的材料设计设计设计、艺术编译器和新的api,称为camera 2 api2,而相应的硬件抽象层称为硬件抽象层v3 (hal3)。

在nexus 5上,新的api提供了更多的控制,同时带来了10倍以上的性能改进和减少延迟。

旧api仅支持1-3fps全像素输出。

Camer2应用编程接口支持30fps全像素输出

在camera2api的支持下,hdr算法成为可能。

人类发展报告:打破游戏的新方法

在2016年siggraph会议上发表的《移动相机的高动态范围和低照度环境下的连续拍摄摄影成像》第3条中,创新性地提出了一种新的hdr实现。

左:传统拍摄方法,中:传统拍摄方法亮点,右:hdr

传统的暗光拍摄使用以下方法来提高图片的亮度:

这些计划都有自己的问题:

一方面,升级iso可以有效地提高图像的亮度,但同时也加大了噪声,牺牲了图像质量。虽然使用大孔径模块是件好事,但是由于体积和厚度的限制,不可能简单地提高移动设备上的孔径。

另一方面,使用较长的曝光时间会增加手抖糊的可能性。虽然光学防抖可以解决一些手部抖动问题,但很难用于移动物体。闪光并不适合所有场景,有时我们不能打扰主题。

对于高动态范围成像,传统的hdr算法以不同的曝光时间拍摄多张照片并合成它们。例如,iphone引入的hdr算法就是这种算法的典型代表,它拍摄三张曝光过度、曝光不足和正常曝光的jpeg照片,并对它们进行合成。然而,这种算法经常会带来伪影,如高对比度物体边缘的晕圈。

如何打破游戏?

直接热轧制

谷歌的答案是基于ettr测光和人工智能技术的共曝光堆栈算法,也称为hdr。

谷歌研究人员首先放弃了周围曝光的想法:不同曝光时间带来的对齐照片的问题很难解决,场景的变化(如图像中的运动物体)也会导致图像对齐失败。研究人员取而代之的是使用几张曝光参数相同的连续拍摄照片,并选择其中一张作为参照系,将其他照片对齐并堆叠到这张照片上。

由于参考帧的存在,只有属于图像的部分才会被合成,这改善了传统算法中的伪影问题。同时,由于单次曝光时间短,使用这种模式粘贴胶片并不容易。

这一想法后来被其他手机制造商借鉴,并广泛应用于各种夜景模式。

高级人工智能测光

光度学,顾名思义,是一种测量摄影图像中光强的技术。

传统光度学有两个主要流派,一个是处理直接感知,另一个是为后面的空间优化,即曝光到右边(ettr)。

我们非常熟悉第一种类型,它实际上是相机取景器中常见的曝光指示器。摄像机将提供多种光度测量模式,如全局光度测量、区域光度测量和点光度测量等。这些测光模式适用于不同场景,需要摄影师根据实际情况使用,曝光补偿需要根据经验不时进行。

例如,当你在海滩拍摄日落时,普通的光度算法会选择以牺牲一些高光和阴影为代价来确保图片主要部分的正确曝光。然而,这将导致太阳的强光爆发,而不是照片焦点的沙滩被正确曝光——此时,你需要在太阳附近聚光,并根据经验或直方图调整曝光。

为了方便初学者,入门级相机通常具有针对各种场景优化的模式,但是这些模式需要手动选择,并且通常不够详细。

在相机2 api时代,谷歌如何解决这个问题?

答案是数据分析。

谷歌的公共数据集

谷歌使用28416图片数据集4来训练它的测光算法。调谐后,保留了约4500种场景模式,摒弃了传统的直方图分析图像亮度的方法,分别分析图像rgb通道的最大值和平均值。

为了处理细微的阴影变化,每个通道上多达64个非均匀分布的采样点用于数据分析,所有这些都不需要用户干预或人工激活ai增强模式。

谷歌对此非常有信心,它已经取代了传统的测光方式,成为当前谷歌相机的默认测光模式。

对齐艺术

下一步是对齐拍摄的一系列照片。

如何对齐移动的对象?如果直接叠加,由于图片中对象的移动,会出现一个称为重影的伪影,这需要避免。

对齐算法

谷歌使用光流将图片分成小方块,并跟踪每个方块的运动,从而判断运动物体和静止物体。接下来,不同的对象分别对齐。这种方法不仅能有效地抑制重影,而且能使未对准的图像用于降噪而不浪费任何信息帧。

聚氯乙烯:强核心,更开放的生态

当hdr第一次发布时,如果hdr被启用,安卓手机将需要大约4秒钟来处理,而谷歌对此并不满意。

像素视觉核心芯片

随着cmos和移动处理器性能的提高,谷歌在nexus手机中引入zsl(零快门滞后)模式,压缩快门限制(1/10秒),并将快门前后的照片连续写入缓存,这意味着无需等待就可以按快门成像。这项技术的引入为hdr提供了捕捉图像的能力。

与此同时,谷歌保留了更激进的hdr增强模式。该模式需要手动打开。开机后,相机只有在对焦完成后才会开始拍摄。快门限制放宽(1/5s),堆叠更多,图像质量更好。

左边:没有第三方应用程序调用pvc,右边:第三方应用程序调用pvc

在pixel 2上,谷歌还引入了一个独立的图像算法处理器,称为pixel visual core5,它使第三方应用程序能够享受高质量的hdr。像素视觉核心(Pixel visual core)是一款功能强大的芯片,拥有独立定制的linux系统、闪存和内存,但在处理新的应用场景(如top shot)时仍然存在一些困难。

所以在今年的像素4/4升中,谷歌升级了它,并将其改名为像素中性核心6。我们不知道像素神经核心将在图像合成算法处理中发挥多大作用,但谷歌给了芯片一项超出图像计算任务的额外任务——你在新闻发布会上看到的下一代谷歌助手,以及能够立即将音频转换成文本的录音应用,都归功于这款芯片。

GCAM:Mod集团嘉年华

由于谷歌的算法不依赖于特殊的硬件,它们可以移植到其他设备上。

一个名叫bsg的俄罗斯开发者开始移植谷歌相机。他手持小米5s,处理器和cmos与谷歌的第一个像素相同。由于小米提供的算法不理想,成像效果也不理想,开发者有将谷歌像素相机移植到过去的想法。

结果非常成功,移植的谷歌相机可以在其他型号上运行。结果,谷歌相机模组开始了嘉年华,谷歌没有提供的许多功能和选项相继开发出来。

例如曝光时间控制,谷歌最初的策略是达到1/5s快门的最大值,但开发者提供了多达8倍的曝光时间选项和1.6s快门,通过修改设置获得更好的图像质量。例如,谷歌的策略是自动堆叠9张照片,而开发者已经改变了多达45-60张极端图像质量选项的照片。

此外,开发人员从图像处理管道中“窃取”原始文件,使谷歌相机获得原始拍摄能力。这个原始文件不是在其他手机中曝光的单个10位低质量原始文件,而是由几个原始堆栈组成的高质量10位原始文件——理想情况下,这个原始文件的信噪比已经接近aps-c相机的信噪比,动态范围使一些相机制造商(咳咳,是C的开始)脸红。

其他开发者已经为谷歌相机改编了一些双相机模型,这样中焦距/超广角镜头也可以调用hdr算法来进一步提高图像质量,或者他们致力于优化谷歌相机的直接输出,增加高光和阴影色调的调整以及噪声模型的校正功能。尽管这些变化最初是为第三方模型开发的,但它们也被反馈到像素模型中,使其能够通过上一层楼梯进行拍摄。

可以说,谷歌的mod和非mod相机完全是两种产品。最初的谷歌相机注重各方面的平衡。mod牺牲了很多,但它充分发挥了hdr算法的潜力,以达到最终的图像质量。

像素3:来自Mod社区的反馈

第三方开发者玩得非常开心,谷歌自然希望带着一点新的人才来到这里。在像素3和像素4上,我们可以看到许多受gcam mod启发的产品。

在像素3上,谷歌带来了全新的拍照策略。当你打开相机时,cmos总是将原始文件输入缓存。当你按下快门时,手机会在缓存中检索最新的照片并堆叠起来。

这不同于任何以前的拍摄设备——按快门并不告诉相机开始拍摄过程,而是告诉相机结束拍摄过程,因此它可以被视为真正的零快门延迟。

顶级照片

像素3还带来了一个新的功能,叫做顶拍,它允许你在按快门之前和之后选择最好的照片。此外,这些照片是经过hdr处理的,它们的性能要求非常高,即使算法像谷歌一样强大,它也不得不在这种模式下限制分辨率。今年的像素4版本没有提到这个特性是否有所改进。据估计,这仍有待计算。

此外,hdr将基于深度学习的对象识别和跟踪添加到像素3,以增强捕捉运动对象的能力。

超分辨率

第三,超分辨率变焦。熟悉索尼相机的朋友应该知道,新a7r系列相机配备了一个叫做像素移位(pixel shift)的功能,可以通过抖动防抖组件为每个像素提供rggb信息,从而达到更高的图像质量。然而,缺点是运动物体处理不好,不能用手拍照,需要输入计算机进行后期合成。

谷歌超级像素缩放(Super Pixel Zoom)的功能原理是一样的,但它的ois组件可以补偿手抖动,同时照顾每个像素的颜色信息。结合hdr算法处理运动物体,可以达到与其他手机携带的光学中焦距镜头相当甚至超过的单幅拍摄效果。

此功能将自动激活ois抖动,以获得更多信息,即使它检测到手机“过于稳定”。

计算原始与hdr直接输出

至于mod社区已经发挥的原始功能,它已经成为像素相机的独立功能。它在细节上比mod版本要好,但目前只能堆叠15个原始版本,与mod版本中暴力的45~60个原始版本相比仍有很大差距。然而,去年的“夜视”用类似的方法降低了快门速度(1/3秒),并将堆栈帧数增加到15。结合机器学习和色彩填充,夜间拍摄效果令人印象深刻。

最后,通过机器学习,谷歌进一步优化了单次拍摄的景深检测和虚拟仿真,还带来了自拍和柔光功能。

像素4:抛光和完善

与像素3相比,像素4配备有双摄像机(主摄像机2x光学变焦子摄像机)。

像素4

支持软件的更新主要体现在改善使用体验和处理一些边角案例上。

实时hdr

第一个功能是实时hdr,它依靠人工智能来处理取景器中的yuv流,使其接近你看到的和你得到的。

Hdr控制

二是添加控件,可以分别调整图片的亮部和阴影(阴影映射控件),方便用户拍摄剪影效果。

长焦距镜头

此外,超像素变焦算法现在可以应用于主相机和变焦镜头,大大增加了可用的变焦范围。

深度图

变焦镜头的增加也使得人像模糊模式下物体轮廓的识别更加准确。除了人脸,不规则物体也能被很好地识别,甚至包括毛边。

aiawb

人工智能白平衡模式最初只在极端光线条件下使用,即校正颜色的夜视模式,现在可以用于正常拍摄。结合新增加的超灵敏传感器(类似于环境光传感器),它可以提供更精确的颜色恢复。

夜视仪

当然,夜视模式本身在像素4中也得到了增强。新版夜视模式支持16秒和15秒(相当于4分钟)的三脚架照片合成,谷歌使用星空摄影进行显示。在这个长时间曝光的场景中,星空会移动,所以谷歌使用分区对齐的方法来确保星空和景观的清晰度。

艾德热像素

此外,长时间暴露引起的热噪声也是一个需要解决的问题。谷歌使用人工智能算法来识别和消除影响图像质量的因素。

19ev

在发布会的最后,g

秒速赛车pk10官网 极速飞艇app 快乐8下注 内蒙古11选5投注