您好!欢迎来到子极数码科技!
News information
新闻动态
概述谷歌PIXEL 4深度传感UDEPTH工作原理和底层算法
来源: | 作者:Caen | 发布时间: 194天前 | 125 523次浏览: | 分享到:


概述uDepth的工作原理和底层算法

映维网 2020年04月11日)确定场景三维信息的能力称为深度感测,这对开发者和用户都是一项十分有价值的工具。深度传感是一个非常活跃的计算视觉领域,近年来的创新包括人像模式和AR等应用,以及诸如透明对象检测等基础感测创新。基于RGB的常见立体深度传感技术需要十分高昂的计算,而且在低纹理区域会受到影响,并且在极低光照条件下会完全失效。

因为Pixel 4的人脸解锁功能必须以高速执行并支持黑暗环境,所以它需要一种不同的解决放哪。Pixel 4的前端包含实时红外有源立体深度传感器uDepth。这项技术是Pixel 4的一项关键计算机视觉功能,有助于身份验证系统识别用户,同时能够防止欺骗攻击。另外,它支持一系列的新功能,如事后照片润色、基于深度的场景分割、背景模糊、人像效果和3D照片等。

谷歌最近以Camera2 API的方式来提供了uDepth的访问权限,允许使用Pixel Neural Core、两个红外摄像头和一个红外模式投影仪并以30Hz提供时间同步的深度帧。Google Camera App使用这个API为Pixel 4用户的自拍带来优化的深度功能。在这篇博文中,谷歌将向大家概要解释uDepth的工作原理和底层算法,并用Piexl 4的示例结果对用例进行讨论。下面是映维网的具体整理:

1. 立体深度感测的综述

所有立体摄像头系统都会采用视差重建深度。对于这种效果,你可以注视一个对象,闭合左眼,然后张开左眼并闭合右眼。你会发现对象的位置会出现移动,而越靠近的对象移动得越快。uDepth是Dense Local Stereo匹配技术家族的一员,其主要是通过计算来估计每个像素的视差。所述技术会在一个摄像头形成的图像中评估由每个像素包围的区域,并尝试在第二个摄像头的相应图像中寻找相似的区域。正确校准后,生成的重构属于可度量,这意味着它们表示实际的物理距离。

为了处理无纹理区域和处理弱光条件,团队使用了“有源立体”设置,将红外图案投影到由立体红外摄头机检测到的场景中。所述方法提高了低纹理区域的可识别性,从而优化了识别效果并降低了系统的计算量。

2. uDepth与众不同的地方

立体感测系统的运算量非常大。对于以30Hz频率运行的感测器,其在保持高质量的前提下必须是低功耗。uDepth利用了众多关键的见解来实现这一点。

其中之一是,给定一对彼此相似的区域,而大多数对应的子集同样相似。例如,给定两个相似的8×8像素块,两者左上的4×4子区域同样可能相似。这将告知uDepth管道的初始化过程,后者通过比较每个图像中的非重叠像素块并选择最相似的像素块来构建深度建议金字塔。这个过程从1×1像素块开始,并按层累积支持,直到生成初始低分辨率深度映射。

在初始化之后,团队应用一种全新的神经深度细化技术来支持Pixel 4的规则网格图案照明器。典型的有源立体系统投射一个伪随机网格图案来帮助消除场景中的匹配歧义,但uDepth能够支持重复的网格模式。重复结构产生的区域在立体对中看起来十分相似,并可能导致不正确的匹配。针对这个问题,团队采用了轻量级卷积架构,通过红外亮度和邻近信息来调整不正确的匹配,而每帧耗时不到1.5ms。

神经深度细化架构


在神经深度细化之后,合适的深度估计将从相邻的像素块迭代传播。这个和后续的管道步骤利用了uDepth成功的另一个关键洞察:自然场景通常是局部平面,只有很小的非平面偏差。这使得团队能够找到覆盖场景的平面像素块,然后只为一个像素块中的每个像素细化单个深度,从而大大减少计算负载。

最后,从相邻平面假设中选择最佳匹配。

绿色组件由GPU运行,黄色组件由CPU运行,蓝色组件则由Pixel Neural Core运行


当手机出现跌落情况时,这可能会导致立体摄像头的出厂校准偏离实际位置。为了在实际使用中确保高质量的结果,uDepth系统支持自校准。计分程序评估每个深度图像是否存在误校准的迹象,并建立对设备状态的信心。如果检测到校准错误,则从当前场景重新生成校准参数。

左边是未校准的立体深度;右边是经过自校准后的立体深度


更多的信息请参阅Slanted O(1) Stereo

3. 用于计算摄影的深度

uDepth传感器的原始数据需要是精确和可度量,这是人脸解锁的基本要求。诸如人像模式和三维照片等计算摄影应用有着非常不同的需求。在所述用例中,实现视频帧速率并不重要,但深度应该是平滑的,边缘对齐的,并且在彩色摄像头的整个视场中都是完整的。

从左到右:原始深度感测结果,预测深度,3D照片


为了实现这一目标,团队训练了一个端到端的深度学习架构。它增强了原始uDepth数据,并推断出一个完整、密集的3D深度映射。谷歌采用了RGB图像、人像分割和原始深度的组合。

用于计算摄影深度的架构


为了获得Ground Truth,团队利用了一个体三维捕捉系统。这是一个配备有331个自定义彩色LED灯、一组高分辨率色摄像头和一组自定义高分辨率深度传感器的测地线球体,能够生成接近照片真实感的人像模型。谷歌在设置中添加了Pixel4智能手机,并将它们与其他硬件(灯光和摄像头)同步。生成的训练数据包括Pixel 4视点真实图像和合成渲染的组合。

数据获取综述


4. 将一切整合起来

当所有一切就位后,uDepth将能够以30Hz产生深度数据流,并生成平滑的后处理深度映射。系统生成的平滑、密集、每像素深度支持启用Social Media Depth功能的所有Pixel 4自拍照片,并且可用于社交媒体的散焦和3D照片等后期捕获效果。

谷歌最后提供了一个演示应用,这样你就可以利用uDepth提供的实时点云可视化工具进行体验。请点击这里下载(注,这个应用仅用于演示和研究目的,不用于商业用途;谷歌不会提供任何支持或更新)。这个演示应用会从你的Pixel 4可视化三维点云。由于深度映射属于时间同步,并且与RGB图像位于同一坐标系中,所以可以显示3D场景的纹理映射,如下面示例:

利用uDepth获取的单帧RGB点云示例