Pixel 3了解如何确定照片的深度

Pixel智能手机上的人像模式可让您拍摄具有专业外观的照片,从而使背景模糊,从而引起对主体的注意。 去年,我们介绍了如何使用单相机和相位检测自动对焦(相位检测自动对焦,PDAF)(也称为双像素自动对焦 )来计算深度。 此过程使用了未经培训的传统立体声算法 。 今年在Pixel 3上,我们采用了机器学习,以改善深度评估并在人像模式下产生更好的结果。


左:在HDR +中捕获的原始图像。 右侧是使用传统立体声和机器学习深度的人像模式下拍摄结果的比较。 学习成果产生的错误更少。 在传统的立体声结果中,错误地估计了在男人身后的许多水平线的深度等于男人本人的深度,因此它们保持清晰。

简要介绍以前的资料


去年,我们描述了肖像模式使用神经网络来分离属于人的图像和背景图像的像素,并使用源自PDAF像素的深度信息来补充此两级蒙版。 所有这些都是为了获得模糊效果,具体取决于深度,接近专业相机可以提供的效果。

要进行工作,PDAF会拍摄两个略有不同的场景快照。 在图像之间切换时,您可以看到人不在移动,背景在水平移动-这种效果称为视差 。 由于视差是一个点到相机的距离以及两个视点之间的距离的函数,因此我们可以通过将一个图像中的每个点与另一个图像中的对应点进行比较来确定深度。


左侧和中间的PDAF图像看起来相似,但在右侧的放大片段中可以看到视差。 放大中心的圆形结构最容易引起注意。

但是,在PDAF图像中找到这种对应关系(此方法称为立体深度)是一项极其困难的任务,因为照片之间的点移动非常微弱。 而且,所有立体声技术都存在孔径问题。 如果通过小孔径观察场景,将无法找到与立体基准线平行的线(即连接两个摄像机的线)的点的对应关系。 换句话说,当研究所呈现照片中的水平线(或具有纵向方向的图片中的垂直线)时,一个图像相对于另一个图像的所有偏移看起来几乎相同。 在去年的肖像模式下,所有这些因素都可能导致确定令人不快的文物的深度和外观时出现错误。

改善深度评估


使用Pixel 3的人像模式,我们可以利用以下事实来解决这些错误:立体声照片的视差只是图像中许多线索之一。 例如,离焦平面较远的点看起来不那么尖锐,这将是散焦深度的暗示。 此外,即使我们在平面屏幕上观看图像,也可以轻松估计到物体的距离,因为我们知道日常物体的大致大小(也就是说,您可以使用描绘人脸的像素数来估计其位置)。 这将是一个语义线索。

手动开发组合这些技巧的算法非常困难,但是使用MO可以做到这一点,同时提高PDAF视差技巧的性能。 具体来说,我们训练使用TensorFlow编写的卷积神经网络 ,该网络从PDAF接收像素作为输入,并学习预测深度。 在像素3纵向模式下使用了这种基于MO的改进的深度估计新方法。


我们的卷积神经网络接收PDAF图像并提供深度图。 该网络使用具有附加跳过连接和剩余块的编码器-解码器样式的体系结构。

神经网络训练


要训​​练网络,我们需要大量的PDAF图像和相应的高质量深度图。 而且,由于我们需要深度预测才能在人像模式下使用,因此我们需要训练数据以类似于用户使用智能手机拍摄的照片。

为此,我们设计了一种特殊的Frankenfon设备,其中我们组合了五台Pixel 3手机并在它们之间建立了WiFi连接,这使我们能够同时从所有手机拍照(相差不超过2毫秒)。 借助该设备,我们基于照片,从多个角度同时使用了运动和立体声,从而计算出了高质量的深度图。


左:用于收集训练数据的设备。 中间:在五张照片之间切换的示例。 相机同步确保了在动态场景中计算深度的能力。 右:总深度。 置信度低的点(由于纹理的弱点而无法确定不同照片中像素的比较),被涂成黑色,不用于训练。

由于以下原因,使用此设备获得的数据非常适合训练网络:

  • 五种观点保证了在多个方向上都存在视差,这使我们摆脱了光圈问题。
  • 摄像机的位置可确保至少在两张照片中重复图像中的任何点,从而减少了无法匹配的点数。
  • 基线(即摄像机之间的距离)大于PDAF的基线,这保证了深度的更准确估计。
  • 相机同步确保了在动态场景中计算深度的能力。
  • 设备的便携性保证了自然拍摄照片,模拟用户使用智能手机拍摄的照片的可能性。

但是,尽管使用此设备获得的数据非常理想,但仍然很难预测场景对象的绝对深度-任何给定的PDAF对都可以对应于各种深度图(这完全取决于镜头的特性,焦距等)。 考虑到所有这些因素,我们估计了场景对象的相对深度,足以在人像模式下获得令人满意的结果。

我们结合所有这一切


在Pixel 3上使用MO估算深度应该可以快速完成,这样用户就不必等待太久就能获得人像效果。 但是,要使用较小的散焦和视差获得良好的深度估计,您必须以全分辨率提供照片的神经网络。 为了确保快速获得结果,我们使用TensorFlow Lite (一种可在移动和嵌入式设备上启动MO模型的跨平台解决方案),以及功能强大的Pixel 3 GPU(可让您快速计算异常大的输入数据的深度)。 然后,我们将获得的深度估计值与来自神经网络的遮罩相结合,以区分人,以获得以人像模式拍摄的最漂亮结果。

自己尝试


在Google Camera App 6.1及更高版本中,我们的深度图嵌入在人像模式图像中。 这意味着我们可以在拍摄照片后使用Google照片深度编辑器更改模糊程度和对焦点。 您还可以使用第三方程序从jpeg提取深度图,然后自己研究它们。 您也可以从链接中获取相册,以纵向模式显示相对深度图和相应的图像,以比较传统的立体声和MO方法。

Source: https://habr.com/ru/post/zh-CN433600/


All Articles