找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 50|回复: 0

学习预测 Pixel 3 手机的深度

[复制链接]

545

主题

0

回帖

1677

积分

金牌会员

积分
1677
发表于 2024-12-5 09:04:56 | 显示全部楼层 |阅读模式
Pixel 智能手机上的人像模式可让您拍摄出专业级的照片,通过模糊背景来吸引拍摄对象的注意力。去年,我们描述了如何使用单摄像头的相位检测自动对焦 (PDAF) 像素(也称为双像素自动对焦)使用传统的非学习 立体算法来计算深度。今年,在 Pixel 3 上,我们转向机器学习来改进深度估计,从而产生更好的人像模式效果。
左图:原始HDR+图像。右图:使用传统立体深度和机器学习深度的人像模式结果比较。学习深度结果的错误较少。值得注意的是,在传统立体结果中,男子身后的许多水平线被错误地估计为与男子处于同一深度,并且保持清晰。
(Mike Milne)
简要回顾如去年的博客文章
中所述,人像模式使用神经网络来确定哪些像素对应于人物与背景,并使用从 PDAF 像素获取的深度信息增强这个两层人物分割蒙版。这是为了实现与深度相关的模糊,这更接近专业相机的功能。PDAF 像素的工作原理是捕捉场景的两个略有不同的视图,如下所示。在两个视图之间翻转,我们会看到人是静止的,而背景在水平移动,这种效果称为视差。因为视差是点与相机的距离以及两个视点之间距离的函数,所以我们可以通过将一个视图中的每个点与另一个视图中的对应点进行匹配来估计深度。
左侧和中间的两张 PDAF 图像看起来非常相似,但在右侧的裁剪图中,您可以看到它们之间的视差。裁剪图中间的圆形结构最为明显。
然而,在 PDAF 图像中找到这些对应关系(一种称为立体深度的方法)极具挑战性,因为场景点在视图之间几乎不会移动。此外,所有立体技术都存在光圈问题。也就是说,如果你通过小光圈观察场景,就不可能找到与立体基线平行的线的对应关系,即连接两个摄像头的线。换句话说,当查看上图中的水平线(或纵向拍摄中的垂直线)时,这些线在一个视图中相对于另一个视图的任何拟议偏移看起来都差不多。在去年的肖像模式中,所有这些因素都可能导致深度估计错误并造成令人不快的伪影。通过 Pixel 3 上的肖像模式
改进深度估计
,我们利用立体深度算法使用的视差只是图像中存在的许多深度线索之一这一事实来修复这些错误。例如,距离对焦平面较远的点看起来不如距离较近的点清晰,这给了我们一个散焦深度线索。此外,即使在平面屏幕上查看图像,我们也可以准确地判断事物的距离,因为我们知道日常物体的大致大小(例如,我们可以使用人脸照片中的像素数来估计它有多远)。 这被称为语义线索。
设计一种手工算法来组合这些不同的线索极其困难,但通过使用机器学习,我们可以做到这一点,同时更好地利用 PDAF 视差线索。 具体来说,我们训练一个用TensorFlow编写的卷积神经网络,它将 PDAF 像素作为输入并学习预测深度。 这种基于 ML 的全新改进深度估计方法为 Pixel 3 上的人像模式提供支持。
我们的卷积神经网络将 PDAF 图像作为输入,并输出深度图。该网络采用带有跳过连接和残差块的编码器-解码器式架构。
训练神经网络
为了训练网络,我们需要大量的 PDAF 图像和相应的高质量深度图。由于我们希望预测的深度可用于人像模式,因此我们还需要训练数据与用户用智能手机拍摄的照片相似。为了实现这一点,我们构建了自己的定制“Frankenphone”装备,其中包含五部 Pixel 3 手机,以及基于 Wi-Fi 的解决方案,使我们能够同时从所有手机拍摄照片(容差约为 2 毫秒)。借助此装备,我们利用运动结构和多视角立体
成像从照片中计算出高质量深度。
左图:用于收集训练数据的自定义装置。中图:五幅图像之间的翻转示例。摄像机之间的同步确保我们可以计算动态场景的深度,例如这个场景。右图:地面真实深度。低置信度点(即由于纹理较弱而立体匹配不可靠的点)用黑色表示,训练期间不使用。(Sam Ansari 和 Mike Milne)
该设备捕获的数据非常适合训练网络,主要原因如下:
五个视点确保多个方向存在视差,因此不存在光圈问题。
相机的排列确保图像中的点通常至少在另一幅图像中可见,从而导致没有对应关系的点较少。
基线,即摄像机之间的距离比我们的 PDAF 基线大得多,从而可以实现更准确的深度估计。
摄像机之间的同步确保我们可以计算上述动态场景的深度。
该装置的便携性确保我们可以在野外拍摄照片,模拟用户用智能手机拍摄的照片。
然而,即使从该装置捕获的数据是理想的,预测场景中物体的绝对深度仍然极具挑战性——给定的 PDAF 对可以对应一系列不同的深度图(取决于镜头特性、焦距等)。为了解决这个问题,我们改为预测场景中物体的相对深度,这足以产生令人满意的人像模式效果。
综合起来
这种基于 ML 的深度估计需要在 Pixel 3 上快速运行,以便用户不必等待太长时间才能拍摄人像模式照片。然而,为了获得利用微妙的散焦和视差线索的良好深度估计,我们必须将全分辨率、多百万像素的 PDAF 图像输入网络。为了确保快速获得结果,我们使用TensorFlow Lite,这是一种跨平台解决方案,用于在移动和嵌入式设备上运行机器学习模型,以及 Pixel 3 强大的 GPU,尽管我们的输入异常大,但仍可以快速计算深度。然后,我们将得到的深度估计与来自人物分割神经网络的蒙版相结合,以产生漂亮的人像模式结果。
亲自尝试
在 Google 相机应用 6.1 及更高版本中,我们的深度图嵌入在人像模式图像中。这意味着您可以在拍摄后使用Google相册深度编辑器更改模糊量和焦点。您还可以使用第三方深度提取器从 jpeg 中提取深度图并亲自查看。此外,这里有一个相册,展示了 传统立体和基于学习的方法的相对深度图和相应的人像模式图像。致谢如果没有 Sam Ansari、Yael Pritch Knaan、David Jacobs、Jiawen Chen、Juhyun Lee 和 Andrei Kulik,这项工作就不可能实现。特别感谢 Mike Milne 和 Andy Radin 使用五摄像头装置捕获数据。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|绿色天空实验室

GMT+8, 2024-12-27 08:10 , Processed in 0.081886 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表