市面上的摄影类应用很多,却很少有像今年的 年度国产应用 Focos 这样特别的产品。功能上,Focos 巧妙地运用了 iPhone 的双摄镜头和 iOS 提供的 API 接口,带来了「先拍照,后对焦」的强大功能。在与开发者王晓东的交流中我也得知,Focos 背后使用的技术也非常复杂,足见开发者对于技术知识储备的深厚。


得知 Focos 获奖之后,我们也第一时间联系上了开发者王晓东,向他了解了更多 Focos 背后的故事、原理,也谈了谈王晓东对于未来的规划和目标。

Focos 开发者王晓东

当初为什么想到做 Focos?介绍一下你的经历吧

大家好,我是 Focos 的开发者王晓东。我的话一直都在做应用方面的开发工作,之前在上海开过 2 家公司。后来我发现在上海开公司创业比较难,主要是赚的钱还不够我用来发工资,所以在 2016 年我选择了成为一名独立开发者。因为我一直专注于移动应用的开发,也积累了非常多摄影方面的开发经验,所以我的 App 都是与摄影有关,比如 MaxCurcve、色影,还有 Focos。

Focos 的由来还要回到 2016 年,当时我跟 Apple 的人提过我想利用扣图技术做一款应用,将照片分为前景、中景和背景 3 层,刚好 Apple 在 2017 年 WWDC 大会开放了相机景深数据的 API 接口,我就立马将 Focos 开发了出来。

你说 2016 年就想通过扣图技术做 Focos 这款产品,为什么一直等到一年之后才开始开发?

虽然我刚才提到 2016 年就想用抠图技术做 Focos 这款应用,但实际上用抠图技术实现人像和景深模式是最「笨」的一种方法,用这种方法只能将照片分解为 3 层,做出来的效果也都是「假景深」和「假虚化」,这可能是开发者在走投无路的情况下才会选择的方法。

因此,我一直在等技术点有一个突破的时候再开始开发 Focos。很巧的是,第二年 Apple 就在 WWDC 上公布了景深数据的 API 接口,我就把 Focos 实现了出来。

你认为 Focos 相较于其它摄影类应用,优势在哪里?

摄影是我擅长的开发领域,我选择聚焦在软件算法和效果上面开发 App,也正是因为我在这方面积累了大量的开发经验。举个例子,在摄影的效果方面我做过很多相对高级的效果,比如二线性虚化、折返镜头、上焦旋转等。这些都是很多别的开发者不会去碰的东西,因为对他们来说很多摄影技术上的开发都是浅尝辄止,不像我对于各种摄影相关的开发接口和技术运用的这么重度。

Focos 中的部分高级功能

Focos 也一样,即使 Apple 开放了景深数据的 API,但是仍有很多功能和数据需要开发者根据经验去找到突破点,更好地利用它们。之前就有很多开发者问过我如何将一张照片处理成人像模式,而这都是要开发者自己拿着很多的数据去对比,再根据自己的经验去分析然后解决的问题。

最后,Focos 在功能方面也非常与众不同。现在市面上的摄影类产品太多了,但是我敢说 Focos 拿出去不会找到另外一款相同的东西,它是「Totally Different」的一款产品。所以,Focos 在技术上的复杂度,以及它在功能方面的独特性,都是我认为 Focos 能脱颖而出的优势。

交谈中你提到 iOS 系统相机对于景深输出的精度非常低,能不能简单解释一下?这对于用户拍照会产生什么影响?你觉得为什么 Apple 没有在这块发力把功能和效果做到更好的水平?

iPhone 双摄摄像头的景深输出精度非常低,比如前置镜头的景深输出精度只有 576x768,实时预览的景深精度只有 240x320,而且错误率非常高,比如它们在同时处理纯色物体、黑色的镜面以及玻璃等物体的时候,就会产生非常多进程错误。另外,Face ID 使用的前置摄像头景深输出精度同样很低,最终输出景深精度只有480x640。

再说说 iPhone XR,它的景深输出精度甚至低到了 300x400,错误率同样很高。iPhone XR 相机使用的是 Google Pixel 相机使用的亚像素,用光栅分割的方法来判断临近的 2 个非常接近的点的左右和色彩差异,从而识别出景深数据。这个景深数据只能作为参考,和双摄像头得到的景深数据精度完全不能比。所以,我虽然在单摄的 iPhone XR 上打开了人像模式权限,但是只有在拍一些比较大的物体时会有效果,在拍小物体的时候完全没办法拍出来。

景深输出精度低的情况下,一个很直观的例子就是拍头发,得到的照片完全没有细节。另一方面,比如你在拍摄花和树枝树干的时候,设备需要将 576x768 的景深精度映射到 1200 万像素上面,每一个景深的覆盖范围会非常广,完全看不出处理效果。

Focos 怎么解决景深输出精度低这个问题?

先说一下 iOS 的处理方式。iOS 12 提供了一个名为 Portrait Effects Matte 的接口,并利用了之前收购的一家芬兰公司的快速人像抠图技术。利用这个技术可以通过抠图抠出头发丝级别的景深精度,弥补低景深产生的错误,从而提高输出的人像在边缘的显示精度。

Focos 除了利用了这一接口,还增加了一些智能的景深优化的算法,可以识别更大的物体。之后我还会通过 Core ML 技术再在这一方面做一些优化。

另外,Focos 现在提供了一个景深修复工具,能够帮助用户将照片的景深精度修复到 1000x1500 级别的景深精度。我也在新版中提供了对新版 iPad Pro 和 Apple Pencil 的支持,用户可以拿画笔画照片的景深。

Focos 支持用 Apple Pencil 画出照片的景深

手机修图有 2 个比较大的方向:一键「傻瓜式」修图和更加精细并且专业的修图工具,你怎么看待这两个方向?你对于在手机上修图这件事怎么看?

传统的图像处理工具都是基于 PhotoShop,比如泼辣修图和 Enlight 之类的产品,它们在修图技术本身并没有突破,都属于基于 PhotoShop 的扩展。Focos 不一样,它的定位是 Computational Photography,也叫做计算式摄影。

摄影技术走到现在已经到了第三代技术的起步阶段,也就是计算式摄影。之前的 2 代分别是胶片摄影和数字化摄影。胶片摄影比较好理解,你拍好了照片就无法进行任何修改,而数字化摄影则是以数码相机为代表的一代摄影技术。到了计算式摄影,是先采集数据,然后再通过软件和硬件的结合去优化和渲染这些数据,从而达到以前必须使用非常昂贵的光学系统才能达到的摄影效果。

Focos 支持先拍照,后对焦

从计算式摄影摄影的角度来说,Focos 目前在这一方面做的最好也最完善。其它开发者要不都还在 Photoshop 的老路上,要不就是在做一些人工智能方面的优化和自动处理功能。凡是涉及到一些比较复杂和繁琐的方面,大部分摄影类产品都还是浅尝辄止,不像 Focos 做的比较全面。

计算式摄影是一个很伟大的技术,也是摄影史的第三代技术,未来 10 年肯定会越来越普及,而 Focos 作为先驱肯定会被载入史册。

你开发的色影、MaxCurve 和 Focos 分别获得了 2015、2016 和今年的年度最佳 App,它们也都是非常独特和有创意的 App,能不能说说你怎么确定产品的方向,决定要做什么功能的产品?

做特别的产品,特别的体验,找准一个点无限放大。

4 年获得了 3 次年度最佳奖项,说说你的心得体会吧,你认为获得年度 App 奖项的应用应该是怎么样的?

我之前在摄影领域做了很多年的产品,积累了很多经验。不谦虚地说,在 Apple 生态做应用久了之后,我还是能够知道 Apple 和用户分别需要怎么样的产品,大概会有多少同类别的产品,以及会有哪些人会使用这些产品。

根据我这么多年的经验来看,Apple 还是比较喜欢一些相对来说更「小而精」的产品。只要你找到合适的需求和方向,在某一点上深耕精耘,做出优势之后我相信获奖的概率能提高不少。另一点就是我上面讲的,你的产品一定要非常与众不同。这两点也是我一直以来做产品的理念,所以我觉得我继续在摄影方面把这些技术深入地做下去,接下来继续拿奖也很正常。

既然说到了继续拿奖的事,我也想听听你接下来对于新 App 方面的计划

关于新的 App,我的观点如同上文提到的,只有当开发者本身的技术储备到了一定程度,同时技术在某一个点有突破才能去做一个新 App,或者说新产品。我现在还在等着一个技术的突破点。

你说 Apple Design Awards 是你的下一个目标,这个奖项对你意味着什么?你对这一奖项也有一些了解,能不能简单跟我们介绍一下?

举个很简单的例子,演员需要拿终身成就奖,而 Apple Design Awards 对我来说就是开发者的终身成就奖,这是对于一位开发者最大的认可。

关于 Apple Design Awards,它是由一个秘密的小组进行评选和决定,像是中国这边 App Store 的编辑都使不上劲,完全不知道是谁在评这个奖。有时候,可能是一款没什么下载量、质量也一般的游戏获奖,仅仅是因为它比别人做的特别一点。可能跟运气也有关系吧,这种事情很难说清楚。对于我来说,只要把之前的准备工作做好做到位就可以了。

你可以在少数派找到更多 幕后故事,这是「幕后」栏目的第 58 篇文章 。