focos与计算摄影

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

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

focos的logo,原来是黄色的
一个小技巧,倒过来拍更稳定


目录

  1. 双摄的应用
  2. 计算摄影的进化与应用 [跳转]
    • 2.1. 起源
    • 2.2. 计算能力
    • 2.3. 堆栈
    • 2.4. 超分辨率
    • 2.5. 景深模拟
    • 2.6. 光场与仿光场
  3. Apple Inc.的实现 [跳转]
  4. focos功能 [跳转]
    • 4.1. 景深与虚化
    • 4.2. 光线的艺术
    • 4.3. 引申联想
  5. 新声
    • 5.1. Light L16
    • 5.2. 苹果的新iPhone
    • 5.3. Google的继续进步
    • 5.4. 竞争者们
  6. 参考与引用


双摄的应用


双摄像头 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


这类3D的应用,本质上两个摄像头并没有形成1+1>2的效果,分别独立拍摄也并不会有什么影响;在此之外,Duo Camera还带来了“运算bokeh”的可能性。而苹果的 iPhone 7 Plus 则姗姗来迟一般完成了如V570的多焦距切换,LG G5与华为P9都是同一时期的产品。

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

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

计算摄影的进化与应用 Brief History of Computational Photography


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

起源

没有人说得清计算摄影的真正起源,但初始的用途,一定离不开军事和科研,在花了大力气有了成果后,铺开才能惠及到商用乃至一般消费市场。

在哈勃望远镜的初代,装载的是800x800规格的CCD元件,要从这样的传感器上,获得可以用于科研水平的照片,我们得找一些额外要素来辅助。
问题很快就来到了关于利用多张拍摄与计算能力来获得更好的图像上。

如古希腊哲学经典问题,忒修斯之船一般,船什么时候是一艘新船而不是它原本,我们很难界定。
而今天,面对AI,我们的问题也许还是一样。
昨天停泊在码头的那艘木帆船,是在昨晚什么时间,变成今天早上这艘航空母舰。

计算能力

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

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

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

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

有人称初代可能是CXD4115,运行一个精简的Linux核心的系统 —— 不置可否,但是大体上,计算能力在现代相机中,是这么一回事

堆栈 Image stack

同一时间,堆栈用的 Starstail 出现,这款后来被人民群众称作雪人插件的产品,在风光党中风靡一时。作者“半岛雪人”自言是在延时拍摄的过程中,开启了堆栈摄影的可能性大门;而功能也从一开始拉星轨,到后来模拟慢门以及获得更好的画质,一步一步充满惊喜。
除了功能性的应用,例如模拟慢门,堆栈 Image stack 也可以用来增强画质;
看到科技公司的RAW+ (KandaoRawPlus) 为具有代表性的帧平均工具;
后期可以获得更多位深度 bit depth 。

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


大多数时候B门曝光都是经验与运气指导,而在屏幕上监看效果是数码才能有的把戏。我的EP5
以堆栈来模拟长曝光的手机应用比比皆是,甚至苹果自己,也为 Live Photos 内置了模拟长曝光的叠加效果。
不过在目前还没能实现大规模的帧间对齐,所以想要用手机拍摄,少不得拜托三脚架或者八爪鱼。
2019年,Halide团队开发了新App Spectre,支持手持拍摄堆栈,模拟长曝光。

而天文摄影这一计算摄影发家的领域,更早地具有堆栈工具;
客观上说,正是这些工具,帮助了业余爱好者可以用着相对一般的器材配以耐心,窥探宇宙的真相。
RegistaxAVIstackAutostakkert! 均是这类软件中的佼佼者。

超分辨率 Super-resolution

超分辨率 Super-resolution imaging 也在一些机型上出现,最早是在哈苏机身上出现的 Multi Shot ,H5D-200c通过像素偏移,得到单张2亿的分辨率。
紧随其后的是奥林巴斯公司,得益于其在显微镜成像方面的经验,其在 E-M5 Mark II 上配置了「High Res Shot」(2014)功能,同年还有宾得的K3 II「Real Resolution」(2014),这两种方法基于类似的技术,但原理不太一样,奥林巴斯追求更高的分辨率、宾得则谋求更好的色彩还原性。

索尼在相机功能开发上,惯例姗姗来迟,2017年款,搭载于A7R3的「Pixel Shift Multi Shooting」类似宾得的实现。松下在G9,和2019年推出的S1系机身上也配置了类奥林巴斯的高分辨率功能。
这类功能,在中国大陆被戏称作『摇摇乐』。
BH今年还有一个横评

亚像素级的原理示意图
宾得的 K1 II (2018),随着处理能力的升级,手持都可以完成这样的拍摄合成(需要花费算力对齐图片);奥林巴斯的 E-M1 X(2019)在手持状态下可以完成50MP的合成。
2019年11月我整理了一下 Pixel Shift 的相机表

这种算力支持的功能,手机领先一步 —— 在2015年的app,1.0版本的Hydra就已经提供了。
Hydra在App Store的页面,5美金

在天文摄影中,诉求不太一样,但采用了有些相像的技术。
被称作 位移叠加 Shift-and-add 技术,在1966年,由天文学家大卫·弗里德 David L. Fried 提出,应用在图像处理上的整套解决方案,称作 散斑成像 Speckle imaging ,即基于艾里斑成因出发,克服成像系统干扰,提升光学分辨率的方案。
不同的天文摄影软件里可能有不同的称呼。

景深模拟 Bokeh simulation

而说到景深模拟,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山寨了一番。

可以参考Google相机的发展梳理

光场与仿光场 Lightfield & lightfield-like

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

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

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

Lytro ILLUM Morio摄

事实上Lytro的传感器也不大,所以2014年,二代的 ILLUM 策划使用1英寸传感器,
但是来的太晚,价格也太高,市场接受平平。
Lytro后来转入了2016年VR热潮的研究,但公司在2018年关闭。

2014年手机,HTC One,也就是M8,利用手机配置的第二镜头,模拟了这种“后选择焦距”的拍摄体验;
虽然并不是真正的光场原理,但带来了仿光场的体验。

M8配置的双镜头,提供的仿光场拍摄,成为后来Android市场常见功能。图片来自 Maurizio Pesce


同样是2014年,松下披露的GH4上携带了DFD技术,这是一种快速对焦系统 —— 虽然从前几代来看,松下的对焦已经是做得出类拔萃。
很快,消费级相机也利用DFD的空间识别,通过调用4K视频功能,用上了这种后对焦技巧,实现大概是这样:
  1. 探测场景,分析最近与最远的物体
  2. 在非常短的时间内,拍摄对焦在其间,并且渐变的照片
  3. 保存这个序列,让用户选择
松下在比如一英寸的TX1(中国大陆叫做ZS110)和其他更大的M43机型上配置,好歹是有了效果。
但是可能大多数买到了支持机型的用户根本不知道这个功能。


Apple Inc.的实现 Apple's Progress


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

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

部分特征:

HEIFJPEGPNGGIF
有损压缩支持
HEVC

JPEG
无损压缩支持
HEVC

TIFF 6.0

PNG

GIF
同文件多图像
透明度
深度信息

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

来自Nokia

来自zoner

比如图示的小文件量情况下抑制渐层,以及同画质条件下更好的压缩比。
这一格式,是保存深度信息的必要条件。

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



以下几台iPhone配置了双镜头:
  • iPhone 7 Plus (2016)
  • iPhone 8 Plus (2017)
  • iPhone X (2017)
  • iPhone XS / XS Max (2018)

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

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

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


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

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


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

以下几款iOS设备支持Face ID,也可以在focos中实现深度自拍:
  • iPhone X (2017)
  • iPhone XS / XS Max (2018)
  • iPhone XR (2018)
  • iPad Pro 11/12 (2018)
微软自己也是有存货的,X1上的新Kinect就是自己做的。
Intel也很积极在做,称之为「RealSense」,中文作实感


复盘来看,苹果做事有条不紊:
  • 推行适配格式
  • 双摄影硬件实现
  • 统一程序接口

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

focos功能


focos app 在发布后也在不断迭代,所以谈论的往往是一个笼统的概念。
收录的版本更新与功能变更大致如下:

版本时间主要更新
1.02017-10-31初代
1.12017-12-07添加光圈类型
连拍模式
1.22018-01-20自定义预设方案
支持图片格式选择
语言选择
2.35:1比例支持
1.32018-03-10背景图片替换
1.31支持透明背景的PNG保存
1.42018-05-10提升景深数据的精度
1.41支持保存为前后对比的实况照片
1.52018-07-31引入3D打光工具
1.62018-11-29支持iPad界面
1.72019-03-19支持编辑历史及回溯
支持编辑规则套用
2.02019-08-28支持非双摄照片的画面内容识别处理
2.12019-12-02支持将普通照片计算后,
存储为景深类型
2.22020-02-05景深工具更新,
以渐变色表示
2.42020支持RAW及ProRAW格式
最高输出20MP输出
可以从「档案」导入照片

景深与虚化

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

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

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

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

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

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

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

2019-08-28 focos更新了2.0版本
允许对非双摄的画面(无论是否来自iOS系统,甚至可以是非照片的手绘图)学习识别,然后进行景深调节。

光线的艺术

focos大概是独立开发者作品里比较少见的,积极持续更新,并带来重要新功能的产品。

当作者发现,具有深度的照片,可以通过点云方式呈现后,一些“歪门邪道”的念头萌生了。

2018年7月,focos的1.5版本更新,带来了光照补充能力。
虽然说只是基于已有画面的基础上,进行一种光效的调整,而不是如在影室般真正的布光,但是对于手机随拍调节而言,已经是相当不容易了。

官方的虚拟光源Demo

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

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

2019年3月,3D Light 系统加入了AR方式。
在平面上进行一个空间点的定义,其实是不太精确的,往往要切换几次视图来确认实现。
所以作者用了流行的AR方式,来确保这个定位是合理的,同时又不增加用户的操作复杂度,整体仍然很直观。
可以观看我的一段演示:



引申联想


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

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

除了这些酷炫的想法之外,在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,出于考虑,一开始并未加入说明。

2019年春,据说HMD挂Nokia牌子的多摄机型要来,但是仍处于迷雾之中,等待时间、实际效果仍然不明。

苹果的新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官网展示

Google的继续进步

Google Pixel 作为后置单镜头的代表,在2018已然是另类。但不得不说,其算法确实有独到之处。
只是虽坚持后置单镜头,却在Pixel3世代,于前置推出了双摄构造。

硬件之外,Google Camera作为Android系的计算摄影标杆App,经过破解移植后广受人民群众考验。

演示工作原理的图片,左边为原始序列帧,右边为计算结果。图片来自Blog.Google
GCam似乎更强调全面性的计算摄影开花,倒对于规整化API就可以做出,类focos功能不感兴趣?
期待能看到强强联合的结果。

竞争者们

一花独放不是春,focos所代表的计算摄影趋势,以及硬件基础是共通的,有类似功能的产品也是合理的,试例举一二。
Anamorphic
这是一款在iOS 11发布后较早诞生的App,可以模拟变形镜头带来的“奇怪”的散景效果。
Halide
Halide是一款手机上应用,偏手动与专业的App,
其在2018年3月的1.7版本更新中,加入了深度数据支持。

focos live

开发者有意进军视频领域,暂定名称「focos live」。
好事多磨,原定2020年初发布,受开发进度影响,focos live 到了2020年夏季才登场。



从实际运行来看,focos live堪称算力黑洞,要想流畅编辑带景深的视频,又在硬件上对进步提出了更多要求。
2021年,伴随 iPhone13 世代的发布,Apple也在这一世代上引入了 Cinematic mode ,
在功能上就和focos live实现的类似,但是加入了AI决定的兴趣点对焦。



参考与引用




2020-08-31更新
DPReview由 Vasily Zubarev 写了三篇关于计算摄影的连载,有兴趣的可以看看。


之乎
2018-08-18 首发于jianshu / 快照
2019-04-30 修改后于blogspot更新

2020-08-27 更新关于focos Live

评论

此博客中的热门博文

God of War Ragnarök 战神 诸神黄昏 NG+新装备数值

《太鼓之達人 合奏咚咚咚!》PS4版曲目列表

Nier:Automata 尼尔机械纪元 武器升级素材、性能及故事