编注:本文首发于摄影应用 Halide 官方博客,原名《iPhone SE: The One-Eyed King?》。作者是应用开发者 Ben Sandofsky,少数派经授权翻译转载。
时隔四年,我们又迎来了一款平价版 iPhone。和上一代一样,新款 iPhone SE 采用新老硬件结合的方式控制了售价。iFixit 在拆解时还发现 这一代 iPhone SE 的后置镜头模组是可以与 iPhone 8 的互换使用的。
如果只是从硬件参数层面评价 iPhone SE 的镜头,我们直接让你去读 iPhone 8 的评测就好了。简单来说,尽管是三年前的镜头,我们认为它仍然很优秀。Sebastiaan1 最近用它拍了不少 RAW 格式的照片来测试它的实际效果。
但 iPhone SE 相机的重点是在系统上,这款 iPhone 利用「单幅图像深度估测」(Single Image Monocular Depth Estimation)技术做到了其他 iPhone 没做到的事情。翻译成大白话就是,这是第一款仅用一张平面图像就能生成「人像」效果的 iPhone。
你可能会说,「难道 iPhone XR 不是这样吗?它也只有一颗摄像头呀!」但正如我们 此前在文章中提到的 一样,尽管 iPhone XR 也是后置单摄,但是它还是利用硬件来获取景深信息的。iPhone XR 会从传感器的相位对焦像素点中获取信息,你可以将其理解为辅助对焦的一双双小眼睛,它会利用不同眼睛观测到的轻微区别来生成一张粗略的景深图。
但在新款 iPhone SE 上这个方法却不可用,这是因为它的传感器尺寸比较小,所以没有足够多的相位对焦像素点可以使用,所以 iPhone SE 完全是通过机器学习来生成景深数据的。你自己就可以做一个简单的测试:对着一张照片拍照就行。
(我们推荐你使用 Halide 相机并不完全因为这款应用是我们开发的,更多是因为系统相机只在拍摄人物时开启人像模式。我们会在后面的部分讨论这一问题。)
我们来把这张图片放大到全屏,再用 iPhone SE 拍张照:
一台 iPhone XR 会看到近乎纯平的表面——也就是电脑的显示器。它似乎是凭借着图片上的色彩来调整景深图的,并且猜测中间的这一块要比其他部分稍稍靠前。
iPhone SE 则会生成一张完全不同的景深图。虽然是错的,却令人啧啧称奇!
下面这张是在收拾我爸房子的时候,翻出来多一张有着 50 年历史的我祖母的胶片……
真是令人惊叹。这招确实很厉害,但毕竟这都是经过设计的实验场景。要是换到真实世界中去试试会怎么样呢?
实战测试:偶有瑕疵
为什么苹果只允许系统相机在拍摄人物时开启人像模式?这是因为在处理图片是苹果有一项额外的步骤:如果拍摄主体是人,那么效果相当不错;但如果拍摄主体不是人,那么有时就会出点小问题。
在这个例子中,神经网络没能分清 June 的头和后面的树。也许是把树当成头上的角了?
而且,似乎景深图在分区(指切分一张图片的不同部分)方面非常出色,但在判断实际距离时却时好时坏。这里我们以一张 June 的惊恐脸为例:
我同时用 iPhone 11 Pro 和 iPhone SE 拍摄,明显可以看出更多的镜头可以得到更好的数据。iPhone 11 捕捉到了过道的全部景深信息,而 iPhone SE 在逐渐延伸到远处的地板上出现了判断失误。
这在现实生活中会有什么影响?我们就拿这一株多肉作为对象来说明吧,因为这张照片有着不错的层次感。
在 iPhone 11 Pro 的景深图中我们能看到明显的边缘,而 iPhone SE 仅仅是抓住了一个大概。也许是因为神经元网络学习了不少狗的图片,没怎么学习如何辨别植物?
那最终的结果呢?正常来说,处于前景的物体和处于背景的物体的模糊强度应该有所区别,然而 iPhone SE 的模糊效果全都混在一起了。
需要说明的是,为了让效果更为显著,我加强了人像效果的强度。如果你喜欢 iPhone SE 的效果的话,你是可以在 iPhone 11 Pro 上复制的,反之则不行——你没办法在 iPhone SE 上复制 iPhone 11 Pro 上那种层次分明的效果。
苹果的机器学习的第二步在区分层次上起到了至关重要的作用。苹果在推出 iPhone XR 时引入了一个叫做「人像模式遮罩」(Portrait Effects Matte)的 API,它可以检测照片中的人像,并为其创建一个拥有丰富细节的遮罩。实际上,这个遮罩比照片中包含的景深信息的分辨率还要高。
只要前景的物体对上了焦,成像锐利,多数人永远也不会知道你没怎么在背景模糊上下功夫。
所以还是回到这个问题:为什么苹果只允许在人物上开启人像模式呢?
苹果倾向于「做的比说的多(under-promise and over-deliver)」。想让你使用人像模式拍一切不是不行,但相对于一个不甚稳定的成像效果来说,他们宁愿让用户觉得「人像模式只能拍人」。不过作为开发者,我们还是很高兴苹果允许我们自由查看这些景深数据。
下一个问题:机器学习会不会好到不需要多摄像头设备?
机器学习测算景深的挑战
我们的大脑非常不可思议。与新款 iPad Pro 不一样,我们的眼中没有 LiDAR 来提供景深信息。我们的大脑是从一系列信息源来获取这一信息的。
最佳方法就是比较我们两只眼看到的不同图像。我们的大脑会将两张图的信息串联对比,差别越大物体就离得越远,拥有两颗摄像头的 iPhone 采集景深信息的原理就和这个差不多。
另一种方法是通过运动。在你走路的时候,远处的物体要比近处的物体运动得慢一些。
这种方法和 AR 应用判断你在现实世界中的位置时采用的方法类似。对于摄影师来说,这种方法并不理想:因为要是在拍照之前总得让人们在空中挥舞一会他们的手机的话,可就太麻烦了。
于是我们只剩下了这最后一招:那就是从一张单镜头拍摄的静止图片中取得景深信息。如果你碰巧认识只有一只眼能看到东西的人,你就会知道他们的生活和其他正常人别无二致;只不过可能在开车的时候要多费点功夫。这是因为我们需要依赖其他线索来判断距离,比如说已知物体的相对大小之类。
举个例子,你知道一部电话一般来说有多大。如果你看到一部非常大的电话,你的大脑就会猜测它离你很近,尽管你之前从没看见过这部电话。大多数时间来说,这种判断方法都是对的。
那就很简单啦。只要训练神经网络来检测这些细节线索就行了,对吧?不幸的是,这其实是一个「不适定问题(Ill Posed problem)」。在「适定性问题(Well Posed problem)」中,问题有且存在唯一解,就像「一列火车从 A 地以 60mph 的速度开出,另一辆火车从 B 地以 80mph 的速度开出……」一样。
但在猜测景深方面,一张图片可以得出多种结论。看看下面这段爆火的抖音视频,视频中的这个人到底是在面对拍摄者,还是在背对拍摄者呢?
有些图片是没办法处理的,要么是因为辅助信息不够,要么是因为图片本身便不可解。
所以总的来说,神经网络看起来非常神奇,但是它们同样无法突破人类智能所遭遇的限制。在某些情境下,一张图片根本不够。机器学习模型可能会生成一张合理的景深图,但是这并不意味着这就一定是真实的情况。
如果说你只想轻松地拍一张好看的人像照片的话,这算不上是什么问题。但如果你想要准确地记录一幅画面,保留尽可能多的信息以供后期编辑的话,你就需要一个额外视角(比如双摄系统)或其他传感器(比如 LiDAR)。
机器学习会超越多摄手机吗?答案是否定的,因为无论是何种系统,能获取更多信息通常都是更好的,这也是为什么我们进化出了两只眼睛。
问题在于,若是某一天景深测算和实际情况相当接近,鲜有失手情况的话,就算是专业摄影师也会思考,要不要掏更多的钱买额外的硬件。我们觉得这个愿景在今年还没法实现,但是看现在机器学习的发展速度的话,或许几年之后我们就会迎来这一技术的应用,而不必寄希望于数十载之后的未来了。
现在的这个时代对于摄影来说真可谓激动人心。
自己动手试试吧
如果你在看完这篇文章之后,对现在景深捕捉领域感到好奇的话,可以试试我们刚刚更新的 Halide 相机。
如果你手上有任何一部支持人像模式的 iPhone,你都可以用 Halide 的「景深」模式拍摄,看看生成的景深图是什么样子的。看看你的 iPhone 是用什么样的方式来看这个美丽的三维世界,还真的挺有意思。
最后,感谢你的阅读。如果你还有更多关于 iPhone SE 的问题,欢迎在 Twitter 上 联系我们。祝拍照愉快!