科技魔方

谷歌专利为XR VIO 6DOF追踪提出结合基于机器学习的测量提高SfM校准的准确性

AR/VR

2023年08月03日

  视觉惯性里程计VIO可用于为AR/VR体验提供六自由度。VIO运行过程会利用多种系统,例如摄像头和运动传感器,而且它们可以作为VIO系统的元件一起进行操作校准。但一个问题是,VIO系统可能无法以必要的运动量进行精确的操作校准,而如果没有精确的操作校准,最终用户操作过程中的姿态和方向估计可能不准确。

  针对这个问题,谷歌在名为“Visual inertial odometry with machine learning depth”的专利申请中提出了具有机器学习深度的VIO,通过基于使用神经网络生成的每个帧的深度图来确定图像的深度和/或帧之间的相对深度,并使用校准参数来确定深度测量置信度和/或优化VIO系统的校准状态。

  简单来说,通过结合基于机器学习的测量提高传统SfM校准的准确性。

  团队指出,所述系统的优点是在用户操作期间改进了VIO使用校准值的估计,包括在低运动(例如低视差)和高运动(例如高视差)条件下操作的校准期间精确计算或估计姿态。

  图1示出了用于根据示例实现校准VIO系统的数据流的框图。VIO系统可以在制造和/或组装设施进行预校准。但VIO系统的预校准可能会保留一定的校准误差。所以,VIO系统可以在设备使用之前和使用期间进行校准。

  用户操作校准可以修改和/或优化预校准状态,以生成一个用户操作校准状态,从而消除和/或最小化预校准后VIO系统中剩余误差的影响。如图1所示的VIO系统的校准可以配置为接收图像并确定图像的深度。

  深度可用于修改和/或优化预校准状态作为用户操作校准状态。如图1所示,VIO系统校准数据流包括IMU数据模块105、图像数据模块110、光流测量模块115、深度估计器模块120和校准生成器模块125。

  IMU数据模块105可以包括线性加速度数据和旋转速度数据。图像数据模块110可以包括表示由摄像头捕获、感测或获得的多个像素的数据。

  光流测量模块115可以包括表示图像平面上单个像素的运动的数据。光流可以定义为图像中亮度图案运动的视速度分布。因此,光流可以与帧对帧的测量相关联,例如,作为瞬时图像速度或离散图像位移的运动估计。

  深度估计器模块120可以配置为从图像数据110推断深度和/或相对深度。所推断或估计的深度可由校准发生器125在校准操作中使用,例如,校准操作可以修改预校准状态以定义用户操作校准状态。

  深度估计模块器120可以配置为基于深度估计和/或由神经网络生成的深度图生成深度图。深度图可用于VIO校准、修改、优化和/或类似的系统、过程、操作等。V

  深度估计可以与图像数据110相关联。深度估计可以包括图像数据110中特定像素的公制尺度的深度值。深度估计可以认为是稀疏深度估计。

  校准发生器模块125可以配置为修改预校准状态以定义用户操作校准状态。预校准状态可以是在VIO系统(制造期间产生的校准状态。用户操作校准状态可以是在例如AR/VR设备中使用VIO系统之前和/或期间执行的VIO系统的最佳校准状态。

  校准发生器模块125可以配置为使用具有来自估计深度的相对深度约束的视觉惯性结构-运动(VI-SFM)问题。VI-SFM问题可以估计关键帧姿态、速度和校准状态,然后将其用作完整VIO系统的初始条件。VIO校准可以由封闭形式的求解器组成,然后使用视觉惯性束调整(VI-BA)对其解进行细化。

  IMU数据模块105可以包括加速度计数据。参考图2,加速度计数据可以用来推断与图像时间戳相关联的重力矢量。图像可以使用推断的重力矢量对齐到重力对齐。神经网络可以训练来预测重力对齐图像的深度。在推理之后,估计的深度可以存储在存储器中,供校准生成器125在VIO校准过程中查询。

  图2示出了根据示例实施例估计深度的框图。如图2所示,深度估计流包括IMU数据模块105、图像数据模块110、对准向量生成器模块205、图像对准器模块210、深度估计器模块120和缓存模块220。

  图像数据110可由例如AR/VR设备的摄像头捕获。深度估计器120可以配置为在期望的方向上使用图像数据110(。因此,可以将图像数据110重新定向到深度估计器120的所需方向。

  对准矢量发生器205可以配置为确定重力方向、重力法线和/或重力矢量。重力方向可以根据IMU数据105中包含的加速度计数据确定。图像对准器210可以配置为旋转与图像数据110相关联的图像。旋转的图像可以是重力对齐的图像。

  深度估计器120可以进一步配置为基于重力对齐图像生成估计深度。缓存220可以配置为存储估计的深度。深度估计、姿态数据、重力方向和/或类似的可以在AR/VR应用程序可执行的AR/VR会话期间从缓存220检索。

  在一个示例实施中,结合深度估计系统的其他组件,AR/VR应用程序可以配置为检测和追踪设备相对于物理空间的位置以获得姿态数据,检测不同类型表面(例如水平,垂直,角度)的大小和位置以获得平面区域,从加速度计数据(例如IMU数据105)获得重力方向,并生成深度估计(例如,通过深度估计器120)。

  回到图1,为了准确地确定姿态数据,检测不同类型表面的大小和位置,以使用VIO系统获得平面区域,校准生成器125可以使用深度估计器120估计的神经网络生成的深度来校准VIO系统。图3进一步描述了深度估计系统。

  在校准过程中,由于校准过程中系统运动不足,传统的SfM校准可能不太准确。示例实现可以通过结合基于机器学习的测量提高SfM校准的准确性。例如,学习到的单目深度图像可以用来约束特征的相对深度,并通过对相对深度尺度和移位的联合优化,将单目深度升级到度量尺度。

  VIO可以使用单目摄像头和提供线性加速度和旋转速度的惯性测量单元来精确追踪度量3D位置和方向。VIO SfM算法可以生成关键系统参数的估计,如尺度、起始速度、加速度计和陀螺仪偏差、起始姿态窗口和起始重力方向。

  示例实现使用学习的单目深度先验进行VIO校准。利用残差函数,可以在传统VI-SFM公式中耦合尺度和位移不变的单目深度测量。示例实现同时使用基于梯度的残差加权函数和异常值抑制模块来有效地处理有噪声的深度预测。

  在示例实施例中,图像和运动传感器的校准包括将图像传感器生成的数据与运动传感器生成的数据在空间上对齐和在时间上对齐。

  示例实现使用单目深度推断和VIO校准模块从每个RGB关键帧推断深度,并从推断的单目深度中获得相对深度约束。这个VI-SFM可以配置为估计关键帧姿态、速度和校准状态,然后将其用作完整VIO系统的初始条件。VIO校准可以由一个封闭形式的求解器组成,然后用视觉惯性束调整(VI-BA)对其解进行细化。

  示例实现可以在经典VIO校准框中合并先验驱动的深度约束,以便更好地进行追踪。例如,深度模型可以包括单目深度估计模型,并训练轻量级的单深度网络。示例实现可以使用具有边缘敏感深度损失(es)的尺度移动不变损失,并在各种数据集上训练模型,同时使用使用大型预训练模型在数据集上生成的伪ground truth差图。

  图3示出了根据示例实现的深度估计系统的框图。深度估计系统300可以配置为基于深度估计308和由神经网络318生成的深度图320生成深度图338。由神经网络318生成的深度图320可以具有第一比例尺。在示例实现中,第一个尺度是非公制尺度。

  深度图338可以有第二个比例尺。第一标度和第二标度可以基于两种不同的测量系统,并具有不同的标准。在示例实现中,第二个尺度是公制尺度。深度估计系统300可以配置为将具有第一比例尺的深度图320转换为具有第二比例尺的深度图338。

  深度估计系统300包括传感器系统302,传感器系统302配置为获取图像数据304。传感器系统302可以包括一个或多个摄像头307。在示例实现中,传感器系统302包括单个摄像头307。在示例实施例中,传感器系统302包括两个或更多个摄像头307。

  神经网络318可配置为基于所述传感器系统302捕获的图像数据304生成深度图320。在示例实施例中,神经网络318接收图像数据304的图像帧304a,并基于图像帧304a生成深度图320。

  图像帧304a可以是红绿蓝图像。在示例实现中,可以将神经网络318配置为使用单个图像帧304a生成深度图320。在可以将神经网络318配置为使用两个或多个图像帧304a生成深度图320。

  神经网络318可以是配置为使用一个或多个图像帧304a生成深度图320的任何类型的深度神经网络。在示例实现中,神经网络318是一个卷积神经网络。神经网络318可以认为是单目深度神经网络,因为神经网络318基于单个图像帧304a预测深度图320。神经网络318可以配置为预测来自图像帧304a的逐像素深度。在示例实现中,神经网络318包括U-Net架构。

  在示例实现中,神经网络318可以具有配置为在计算设备执行的大小。神经网络318可以包括双线性上采样,这可以将参数减少到转置卷积,从而减少网络的大小。

  在示例实现中,可以配置神经网络318来预测可以描述图像帧304a的表面方向的表面法线322a。表面法线322a包括每像素法线或每像素表面方向。表面法线322a包括表面法向量。图像中像素的表面法线322a可以定义为3D矢量,对应于像素在现实世界中表示的3D表面的方向。

  3D表面的方向可以用一个垂直于真实三维曲面的方向矢量来表示。在示例实施中,可以将神经网络318配置为检测图像帧304a内的平面区域324。平面区域324可以包括垂直和/或水平面。

  深度估计系统300可包括深度估计发生器306,其获得与图像数据304相关联的深度估计308。深度估计生成器306可以是配置为基于图像数据304生成深度估计308的任何类型的组件。

  在示例实施例中,深度估计生成器306同时获得姿态数据310并识别图像数据304中的平面区域314。姿态数据310可以识别执行深度估计系统300的设备的姿态。在示例实现中,姿态数据310包括设备的六自由度位置。

  参考图4,深度估计生成器306可以包括视觉惯性运动追踪器405、深度传感器415、运动立体深度估计器425、稀疏主动深度估计器430和/或预先计算的稀疏地图435。

  深度估计生成器306的每个组件可以表示用于获得深度估计308的单独源。例如,每个组件可以独立地生成深度估计308,其中深度估计生成器306可以包括一个组件或多个组件。

  在一个示例实施中,深度估计生成器306可以包括一个源。如果深度估计生成器306包括多个源,则可以将深度估计生成器306配置为选择用于生成深度图338的源之一。在示例实施例中,如果深度估计生成器306包括多个源,则深度估计生成器306可以配置为选择多个源以用于生成深度图338。

  视觉惯性运动跟踪器405可配置为生成表示图像数据304的视觉特征点410。视觉特征点410可以与深度估计308相关联。例如,每个视觉特征点410可以包括公制尺度的深度值。视觉特征点410可以由视觉惯性运动追踪器405使用表示真实世界场景的图像数据304生成。视觉特征点410可以包括公制尺度的深度值。

  所述视觉特征点410可以是表示所述用户环境的3D空间中的多个点。在示例实施例中,每个视觉特征点410包括3D空间中固定位置和方向的近似值,并且视觉特征点410可以随时间更新。

  深度传感器415可以配置为根据图像数据304生成深度估计308。在示例实施中,深度传感器415包括光探测和测距LiDAR传感器。双像素深度估计器420可以使用机器学习模型从摄像头的双像素自动对焦系统中估计深度。通过分别读出半像素图像,可以获得两个稍微不同的场景视图,

  不同的视图可以由双像素深度估计器420用于生成深度估计308。运动立体深度估计器425可以配置为在用于生成深度估计308的立体匹配算法中使用多个图像。在一个示例实现中,单个摄像头可以在场景中移动以捕获多个图像,并可以用于立体匹配以估计度量深度。稀疏主动深度估计器430可以包括稀疏飞行时间估计器或稀疏相位检测自动聚焦PDAF估计器。

  参照图3,深度估计系统300可以包括深度图transformer326,其配置为使用深度估计308将由神经网络318生成的深度图320转换为深度图338。深度图338可以引用图像,其中每个像素根据图像数据304中相应像素的公制比例尺表示深度值。深度图transformer326配置为使用深度估计308为神经网络318生成的深度图320提供公制比例尺。

  图5示出了根据示例实施例校准视觉惯性里程计系统的方法的框图。

  在步骤S505,对VIO系统进行校准。例如,可以通过校准VIO系统的各个元素或组件来校准VIO系统。

  在步骤S510,对校准进行细化。例如,可以向预校准状态添加一个或多个参数,以定义用户操作校准状态。

  步骤S515生成深度图。例如,可以使用如上所述的神经网络来估计深度图。

  在步骤S520,生成包含缩放和移位参数的对齐参数。例如,可以使用深度图和/或梯度图生成对齐参数。

  在步骤S525,拒绝异常值。

  在步骤S530中,对校准进行细化。例如,可以使用带有重投影误差的VI-SFM问题的封闭解算器对预校准状态进行重新校准。

  名为“Visual inertial odometry with machine learning depth”的谷歌专利申请最初在2022年1月提交,并在日前由美国专利商标局公布。

+1

来源:映维网

延展资讯