focos与计算摄影

96
之乎
1.3 2018.08.18 23:42* 字数 6259

手机摄影正在替代传统的相机,特别是小型便携式DC。除了明显的便于携带和集成性的特点,手机上的相机模块,其实最大程度体现了卡西欧F1的设计理念,即利用运算能力来为最后的成像创造价值;传统的相机厂商们在这方面探索明显不足。

计算摄影 Computational photography ,作为案例,落实到2017~2018一款流行app上,就是 Focos 。

focos的logo,原来是黄色的
小技巧,倒过来拍更顺手

目录

  1. 双摄
  2. 计算摄影的进化
    2.1. 计算能力
    2.2. 堆栈
    2.3. 超分辨率
    2.4. 景深模拟
    2.5. 光场与仿光场
  3. focos的实现
    3.1. 苹果的布局
    3.2. focos功能
    3.3. 引申联想
  4. 新声
  5. 参考与引用

双摄


双摄像头 Dual Lens 设计出现得很早,大概柯达的V570世代出现。

柯达V570,2006年相机

想法很简单,超广角依附于变焦不好做,干脆做一个单独的等效23mm的超广定焦,然后另外一枚等效35mm起跳的镜头完成日常的变焦需求。这种设计在超广上有一个很务实的解决,作为附带作用,还有了准5倍的“变焦数字”。
当然啦,570排线很脆弱,二手市场不多见功能正常的机器

另外一个很天然的需求,就是3D成像。从模拟双眼的角度出发,天生就要两个一样的镜头 —— 一般来说还应该是广角。

富士的W1/W3和松下DMC 3D1一度是热点,特别是这一阵裸眼3D屏幕也很火热,但是市场反响似乎不如预期,2010世代于是罕有作品。

W3,双镜头水平相距75mm,这个距离被称作 基线长度 (Baseline Length)。我自己的W3

这些后来又都从DC端升级到手机端。
在DC上较少提及的计算,在手机上成为可能。

首先搬上来的是3D成像。
3D风潮每隔几年就要兴起一阵,简直就是资本主义周期率的一种讽喻。
HTC EVO 3D 上提供了双摄,基线虽然不长,但是效果不错;而几乎同期的是LG Optimus P920。
缺点在于裸眼3D屏幕只能在一个方向上提供这种效果,而为了兼顾影视内容,通常是在横屏状态下为左右成像。

HTC Evo 3D。图片来自Crazymouseftw
LG Optimus 3D。图片来自LG전자

除了3D的应用,Duo Camera还带来了“运算bokeh”的可能性。而苹果的 iPhone 7 Plus 则姗姗来迟一般完成了如V570的多焦距切换,LG G5与华为P9都是同一时期的产品。

感兴趣的朋友可以看看由 Eric Ralph 带来的文章《过去、现在和未来的双摄智能手机简史

以理光THETA为代表的双目全景相机也是双镜头设计,但是这种背靠背的设计在移植手机上有难度,而实用意义也有限(目前只有保千里的一款),倒是在工业机器人上的实现更有意思。

计算摄影的进化


计算摄影 Computational photography 包括许多方面,一些是高精尖的学科相关的,比如自适应光学 Adaptive Optics ,利用可变形镜面来增强天文望远镜成像;一些则已经进入了应用,例如基于图像拼接的全景照片,或者是基于多张合成的HDR成像。

计算能力

一度最有希望的是卡西欧EX-F1,『CXD4109AGG』这款芯片提供了多项多张照片合成的功能;索尼公司一度很有希望,因为这款芯片摇身一变,变成了索尼自己的 BOINZ —— 这一代的索尼DC上突然有了一些诸如手持夜景和HDR合成还有全景扫描之类的新功能,这些功能在随后几年席卷DC到入门级单反市场。
索尼后来搞过PMCA PlayMemories Camera Apps,似乎志不在此,显然运算芯片迭代不行,跑APP慢如老牛拉车。
最新的诸如α9、α7R3与RX100M6型号的机器里,已经没有了PMCA

可能是最后一款PMCA的程序,数字滤镜,合成也挺花时间的,还好受众是风光党。

现在看来,初期的PMCA其实颇有创新精神,比如 Jamie Beck 尝试的 Cinematic Photo 也有涉足。

Jamie Beck拍摄的纽约街头的热狗摊。重点是画面的局部在动,如果今天以heif格式存储,相当合适

感谢住持指出大法的处理器实际上叫做 BIONZ,我对不起大法。
有人称初代可能是CXD4115,运行一个精简的Linux核心的系统 —— 不置可否,但是大体上,计算能力在现代相机中,是这么一回事

堆栈

同一时间,堆栈用的Starstail出现,这款后来被人民群众称作雪人插件的产品,在风光党中风靡一时。作者“半岛雪人”自言是在延时拍摄的过程中,开启了堆栈摄影的可能性大门;而功能也从一开始拉星轨,到后来模拟慢门以及获得更好的画质,一步一步充满惊喜。StarsTail网站

相机厂商并非没有行动,奥林巴斯在2012年的E-M5世代,推出了『实时B门』。用户在B门拍摄中,可以在屏幕上看到已经取得的曝光效果。2014年的时候,奥林巴斯推进了一步,可以在这种模式下进行不同区域的曝光控制 —— 回忆一下上一个章节的某个PMCA程序吧,他们有某种联系。专利分析

大多数时候B门曝光都是经验与运气指导,而在屏幕上监看效果是数码才能有的把戏。我的EP5

以堆栈来模拟长曝光的手机应用比比皆是,甚至苹果自己,也为Live Photo内置了模拟长曝光的叠加效果。不过在目前还没能实现大规模的帧间对齐,所以想要用手机拍摄,少不得拜托三脚架或者八爪鱼。

通过堆栈方式提升画质,在硬件环境已经确定的前提下,是一种“还可以”的选择。例如做小相机的看到科技,今年也推出过一款 RAW+ ,也是基于这一点进行扩展。

超分辨率

超分辨率也在一些机型上出现,最早是在哈苏机身上出现的 Multi Shot ,H5D-200c通过像素偏移,得到单张2亿的分辨率。紧随其后的奥林巴斯E-M5 Mark II的「High Res Shot」(2014),还有宾得的K3 II「Real Resolution」(2014),以及索尼按照惯例姗姗来迟的2017年款「Pixel Shift Multi Shooting」(松下的叫啥来着?)。除了宾得的方式不太相同(宾得输出等大,但是颜色表现更好的图片),其他均通过被戏称作『摇摇乐』的合成方式,获得了更高的分辨率。BH今年还有一个横评

像素级的原理示意图

到了宾得的 K1 II (2018),随着处理能力的升级,手持都可以完成这样的拍摄合成(需要花费算力对齐图片)。而这种算力支持的功能,手机领先一步 —— 在2015年的app,1.0版本的Hydra就已经提供了。Hydra在App Store的页面,5美金

景深模拟

而说到景深模拟,2014年的Google率先迈出了单镜头的一步,在Android 4.4系统上支持,率先在Nexus 5上推送。拍摄的时候,向上平移手机,就可以辅助相机程序识别场景,从而达到获得深度信息的需求。技术实现,在Google AI Blog的说明

Google的实现

但是显然这种『多余操作』对于普通用户不那么友好。于是到了2017年10月,Google在Pixel 2上,他们依然用单镜头的手持来实现了景深模拟 —— 这个世代的高端智能手机几乎一水的双摄像头,但是没有人知道为什么Google要坚持单摄像头,并且Google仍然可以凭借单摄像头在DxO Mobile的榜单上名列前茅。

Pixel 2上应用人像模式的样张,单摄像头

Google的做法使用了 Dual Pixel 信息进行了分析,虽然差异相当小 —— 事实上相当于相距1mm的双镜头 —— 但是训练神经网络进行学习是可以获得足够的效果的。当然,如果你看完了技术文档,就会发现目前TensorFlow实现的识别,还无法认知到焦前虚化。

这个故事相当爆炸的一点,我们想起有一家叫做佳能的相机厂,是业界非常早应用Dual Pixel排布,并且取得一定成效的。而且他们对开放接口这回事还挺友好的,所以诞生了诸如魔灯 Magic Lantern 这样的第三方固件……所以我们是否有可能在未来佳能的机身上,看到这种虚拟景深的操作?(或许是PC/Mac,毕竟现在的相机们处理能力赶不上旗舰手机)

佳能的Dual Pixel RAW衍生

Google是一家相当可畏的计算摄影厂商,Pixel 2在“拍摄一张照片”时,实际拍摄了十张,Google对这些冗余照片进行分析,扩展了动态范围,同时也改善了分辨率。某种意义上我们可以认为Pixel 2用新手法把iOS上的Hydra山寨了一番。

光场与仿光场

2012年,光场摄影进入人们视野,消费级公司Lytro带来了一款方方正正的产品,虽然说实际的分辨率堪忧,但是这种后对焦的体验相当新颖。由于在一定程度上有难以解释,也被称作为“黑科技”,这一词汇在随后几年也广泛应用,甚至不那么难理解的技术也被大众媒体冠以这个称呼。

Lytro的初代相机。Dcoetzee拍摄
Doodybutch用二代的Lytro Illum拍摄的

一时之间仿光场的应用不计其数,例如,这款The Verge报道的。不过首先,手机的传感器并不大,要出现能体现景深效果的照片并不容易,通常要距离很近,也使得这样的应用场景大大受限。

Lytro ILLUM Morio摄

事实上Lytro的传感器也不大,所以二代的 ILLUM 策划使用1英寸传感器,但是来的太晚,价格也太高。

松下公司在2014年披露的GH4上携带了DFD技术,这是一种快速对焦系统 —— 虽然从前几代来看,松下的对焦已经是做得出类拔萃。很快,消费级相机也用上了这种后对焦技巧,实现大概是这样:

  1. 探测场景,分析最近与最远的物体
  2. 在非常短的时间内,拍摄对焦在其间,并且渐变的照片
  3. 保存这个序列,让用户选择

松下在比如一英寸的TX1(中国大陆叫做ZS110)和其他更大的M43机型上配置,好歹是有了效果。但是可能大多数买到了支持机型的用户根本不知道这个功能。

focos的实现


苹果的布局

iPhone 7 Plus 发布于2016年9月,是iPhone首款设置双镜头的机型。发布的时候,给大家看了一下 Portrait Mode,但是并没有准备好,所以在上市一段时间后才追加更新。
而focos要在一年后的2017年才出现,中间的时间,在等待苹果开放接口。

AVDepthData是在2017年WWDC公开的,在此之前,苹果只提供了内置相机的Portrait Mode;而与人像模式一同推出的,还有HEIF格式的更新 —— High Efficiency Image Format 直译为高效率图像文件格式。

部分特征:

HEIF JPEG PNG GIF
有损压缩支持 是 HEVC 是 JPEG
无损压缩支持 是 HEVC 是 TIFF 6.0 是 PNG 是 GIF
同文件多图像
透明度
深度信息

选择HEIF格式,也就是后缀名为 .heic 方式存储,会带来更好的画质压缩比。

来自Nokia
来自zoner

比如图示的小文件量情况下抑制渐层,以及同画质条件下更好的压缩比。

相关报道1 相关报道2
这一格式,是保存深度信息的必要条件。

苹果在WWDC 2017上,详细说明了这种特性。

目前为止,以下几台iPhone配置了双镜头:

  • iPhone 7 Plus
  • iPhone 8 Plus
  • iPhone X

focos需要双镜头支持,以及iOS11或更高的系统支持(嗯,这条说给7p听),目前也暂时只能在这几款手机上施展。

双镜头提供了立体视觉,这种特性在“里程碑纪念款”的iPhone X上有了新的应用。
iPhone X在前置摄像头中也有复数个图像传感器,很大程度上是来自于 Prime Sense 公司。

Prime Sense 推出过一种公版的感应器,叫做CARMINE,具有双摄像头,可以进行深度识别,官方也鼓励大家以此来进行开发。

从外形来说,Carmine应该会让你想起 Microsoft Kinect,这当然没有疑问,毕竟后者也是 Prime Sense 进行技术支持(PS1080 SoC)。

财大气粗的具体体现是:
这家公司在2013年被苹果收购。
从那天开始,双摄像头出现在苹果公司的产品上,本也就开启了倒计时。
2017年9月,iPhone X 横空出世,被称作刘海的空间里安排了具有深度识别的摄像头。


本质上来说,这是为了新的 Face ID 设计的硬件,所以看上去可能没啥和摄影相关的内容,可是前置相机的深度信息当然也可以利用,也就是说,使用自拍时更常用的前置相机,也可以实现景深效果。

微软自己也是有存货的,X1上的新Kinect就是自己做的。Intel也很积极在做,称之为「RealSense」,中文作实感

复盘来看,苹果做事有条不紊:

  1. 推行适配格式
  2. 双摄影硬件实现
  3. 统一程序接口

一个富有执行力的封闭生态系统,对于推行新技术相当有效率。另一方面,这可能也是Google难以在Android世界达到的成就 —— 但是我们都知道,Android其实本来是一个为数码相机设计的操作系统。

focos功能

借由苹果提供的便利,人像模式拍摄的图片,被focos以3D点云的方式呈现。

下图是正常视角,上图是另外一个视角观察的模型

以图片为例,可以看到椅子、桌子还有后面的场景,以严格的距离信息分离。
也正是由此,程序可以对已经拍摄到的,具有深度信息的图片,进行对焦重构与虚拟景深计算。
点云功能应该是苹果在ARKit上的实现,该功能也是在WWDC 2017上公布的

程序自带的样例图片,也是教程的一部分

优于谷歌方案的一点,是可以对前焦进行单独的虚化处理。

你可以分别设置前后景深,以及空气透视带来的远处减淡

空气透视 aerial perspective ,由于大气中的尘埃影响,远景的清晰度与对比度不如近处景物。这种手法在绘画中经常使用,以区隔远近。

尼康的拥趸们大概会想起历史上的两枚DC镜头,105与135mm焦距,这种镜头可以设定前焦外或者后焦外的虚化成像,但是不能一同完成 —— 如今可以在软件里实现,大约有一种技术变迁的恍然。

富士的56mm F1.2 APD镜头里的光圈效果。这种渐淡的光学元件涉及染色工艺,在更早的美能达STF135里,是用两枚光学元件完成的。图片来自DC Watch Impress的开发报道

富士56mm F1.2的开发采访

由于这种镜头虚化是模拟出来的,所以除了理想的圆形光圈,以及更理想的APD/STF式光圈,你还可以选择各类稀奇古怪的光圈类型 —— 在以往通常要你找一枚大光圈镜头,然后自己剪一个稍小的形状贴在UV镜上。

人民群众喜闻乐见的张老师,给你带来苹果焦外

Lok Cheung老师的focos体验视频,有条件的可以Lok一Lok

在刚刚过去的7月,focos的1.5版本,作者晓东带来了说好的大新闻,为focos添加了光照补充能力。虽然说只是基于已有画面的基础上,进行一种光效的调整,而不是如在影室般真正的布光,但是对于手机随拍调节而言,已经是相当不容易了。

虚拟光源

由于才上线月余,关于新建光源功能,目前相关报道较少。据说作者也准备在1.6的版本更新中,加入几款预设光照方案 —— 让用户做选择题,比实际去摆弄光源还是友好。

上海滩知名吃货摄影师金大頭提供的例图,通过打光为肉排提供鲜嫩的质感

略微不爽的一点,苹果的双镜头实际上兼顾了两个焦段,分别是28mm与刚好两倍的56mm。我们知道,广的镜头视野可以覆盖长的,而反过来不行 —— 用28mm拍摄的时候,56mm覆盖不了全部像场来获得深度信息。所以我们目前在iPhone上只能以这种“拍起来有点距离”的焦距来进行人像照片获取。
Google的实现方式就可以在广角上获得景深效果,但是反过来,Google没有中焦镜头

顺带一提,focos看起来像是 对焦 focus 的误写或异写;在西班牙和葡萄牙语中,称作 foco ,而 focos 通常是指作为引申义的聚光灯;所以如果不加限定的在Google搜索 focos ,有时会翻到灯具广告。
至于为什么会命名 focos ,我没问作者,不过我猜可能是结合logo的一种趣味性,以两个 o 来象征双镜头。
作者本人补充解释:由于商标问题,不可能注册为focus,所以选择了 focus + photos 的组合,新造出具有谐音的 focos

版本 时间 主要更新
1.0 2017-10-31 初代
1.1 2017-12-07 添加光圈类型
连拍模式
1.2 2018-01-20 自定义预设方案
支持图片格式选择
语言选择
2.35:1比例支持
1.3 2018-03-10 背景图片替换
1.31支持透明背景的PNG保存
1.4 2018-05-10 提升景深数据的精度
1.41支持保存为前后对比的实况照片
1.5 2018-07-31 引入3D打光工具
1.6 未发布 预计加入新iPhone支持,完善灯光预设

引申联想

iOS在版本6,也就是2012年开始支持全景扫描功能;这一年开始,越来越多灵活的功能出现在在iPhone的拍摄上;
iPhone在6s世代开始支持慢动作,这意味着处理能力的飞跃(当然,感谢4K规格带来的富余),这一代也开始了 Live Photo的应用。

在上一个章节里说的堆栈,苹果也融入了其中。机内选择『长曝光』,就可以把 Live Photo 所记录的1.5秒视频中的光流全部叠加到一张照片上。

对比,来自Reddit网友MrConjunctivitis

Reddit原帖,你也可以看看CNET展示的集中可能性

如果focos的自由虚化与仿长曝的 Live Photo 结合,那么未来使用一台iPhone就可以在街头摄影中实现川流不息的浅景深图。

人群中唯一的猪肉佬 来自《国产凌凌漆》

其实苹果已经提供了视频中的depth map数据,但是分辨率不高,wwdc演示的案例,是在实时视频通话中去除背景,或者卡通化背景。未来也许随着处理能力进一步提升会有改善 可以看看9to5Mac的解析

而自定义光照的能力,会不会在延时摄影中提供更多的选择空间?当然,以focos目前轻巧的体量而言,也许会是另外一个app(也许是Mac上的app)来进行。

2010年,3DS Max与VRay渲染的短片《The Third & The Seventh》

除了这些酷炫的想法之外,在focos稍早的版本记录里,作者也提及了单镜头景深的想法(或许与Google方案启发有关,不得而知),不晓得目前开发计划是否有变化。

当然,延时摄影以及轨道等等技术不会消亡,计算摄影只是提供了更多的自由度

从某种意义上说,focos可能不自觉地定义了未来相机的一种形式。

新声


2018-09-16添加

Light L16

Light L16是2015年披露的一台机型,其上装配了16个的镜头/传感器总成模组;从发布概念来看,其实就是一台非常妥的多镜头联合协作的例子。

为什么我没有提及呢?
因为在2017年,随着第一批机器的到货,一些媒体收到了机器并且进行了评测,虽然有一些亮眼的功能,但是很多时候会得到莫名的水准之下的表现。相信是在软件的处理上还有不足 —— 这种失败也从另外一个侧面体现了计算摄影的某些特性。

相关的评测,大家可以看看Mobile01(中文),与PetaPixel(英文)的报道。

上到下依次是富士X-T2、Light L16以及RX100M5。PetaPixel配图

特别是来自ALBERT LEE的配图,L16相比诸如RX100和APS-C的无反可能优势都有限,但仍然拒绝使用更大的传感器,而一意在更多镜头上挖掘,可能已经背离了成熟产品的诉求,而更追求技术探讨。

偏离了拍摄本身诉求的L16,出于考虑,一开始并未加入说明。

苹果的新iPhone

2018年款的iPhone,一共有三款:

  • iPhone XS
  • iPhone XS Max
  • iPhone XR

如果你在现场,或者是看了直播,在相机部分,相信会有一种 『我怎么在看Google技术』的感觉。

多张连拍并合成,其实就是谷歌相机 Google Camera 内置的HDR+,以及由此进一步开发的 Smartburst 技术,其在最新的 Pixel 2 有展现(当然,Pixel 3 的脚步也已经近了)。当然,苹果把这种应用推进到了一次拍摄12张,至于效果是不是比Google方案的10张更好,目前还无法知晓。

苹果声称,每张照片完成了 a trillion operations 一万亿次操作。Apple官网展示

另外一方面就是 iPhone XR 上的单镜头虚化,和 Pixel 2 上的实现描述类似,也是以神经网络来进行辅助。不过依照focos开发者的看法,这样的实现只是完成了虚化,而并不是完整的场景深度信息。

同时,苹果自己也带来了类似 focos 上的光圈调节功能。作为官方,这个功能来得稍微有些迟,不过总比没来好。

光圈模拟。Apple官网展示

参考与引用


focos官网
http://focos.me/

focos官方 Instagram
https://www.instagram.com/focos_camera/

开发者新浪微博
https://weibo.com/u/1693049671

Eric Ralph
A Brief History of the Past, Present, and Future of Dual Camera Smartphones
https://www.xda-developers.com/a-brief-history-of-the-past-present-and-future-of-dual-camera-smartphones/

StarsTail
http://www.starstail.com/

Rishi Sanyal
Olympus patent hints at selective exposure in 'Live Time' mode
https://www.dpreview.com/articles/3104455509/olympus-patent-hints-at-selective-exposure-in-live-time-mode

Cory Rice
Pixel-Shift Shootout: Olympus vs. Pentax vs. Sony vs. Panasonic
https://www.bhphotovideo.com/explora/photography/tips-and-solutions/pixel-shift-shootout-olympus-vs-pentax-vs-sony-vs-panasonic

Lars Rehm
Hydra for iOS uses multi-frame techniques for higher resolution and lower noise
https://www.dpreview.com/news/3042565277/hydra-for-ios-uses-multi-frame-techniques-for-higher-resolution-and-lower-noise
Hydra
http://www.creaceed.com/ihydra/gallery

Carlos Hernández
Lens Blur in the new Google Camera app
https://ai.googleblog.com/2014/04/lens-blur-in-new-google-camera-app.html

Marc Levoy, Principal Engineer and Yael Pritch
Portrait mode on the Pixel 2 and Pixel 2 XL smartphones
https://ai.googleblog.com/2017/10/portrait-mode-on-pixel-2-and-pixel-2-xl.html

How Apple is squeezing more photos into your iPhone
https://www.cnet.com/news/apple-ios-boosts-heif-photos-over-jpeg-wwdc/

Image Editing with Depth - WWDC 2017
https://developer.apple.com/videos/play/wwdc2017/508/

Shel Israel
Why Apple Bought PrimeSense
https://www.forbes.com/sites/shelisrael/2013/11/25/why-would-apple-buy-primesense/

Paul Miller
The iPhone X's notch is basically a Kinect
https://www.theverge.com/circuitbreaker/2017/9/17/16315510/iphone-x-notch-kinect-apple-primesense-microsoft

Michael Steeber
Here’s how future iPhones could use camera depth data to create impressive Portrait Mode videos
https://9to5mac.com/2017/12/04/iphone-portrait-mode-videos/

一次用16顆鏡頭拍照!Light L16全新概念相機實拍與心得分享
ki_min
https://www.mobile01.com/newsdetail/23513/16-light-l16

Review: The Light L16 is Brilliant… and Braindead
ALBERT LEE
https://petapixel.com/2017/12/08/review-light-l16-brilliant-braindead/

iPhone XS Camera
https://www.apple.com/iphone-xs/cameras/

之乎 于2018-08-18
2018-09-16添加 新声

技术讨论
Web note ad 1