Depth Completion from Sparse LiDAR Data with Depth-Normal Constraints
在本文中,作者从3D场景都是由分段平面所组成的,这些平面与原点之间的距离(plane-origin distance )是分段恒定的这一假设出发,通过构建表面法向量和深度之间的约束来给深度补全过程以几何层面的约束来提高深度补全(深度完成)的效果。本来自CVPR 2019.
摘要
深度补全(Depth completion)旨在从稀疏深度测量中恢复密集的深度图。 它对于自动驾驶的重要性日益增加,并且引起了视觉界的越来越多的关注。 大多数现有方法直接训练网络以学习从稀疏深度输入到密集深度图的映射,这在利用3D几何约束和处理实际传感器噪声方面有困难。 在本文中,为了规范深度补全并提高抗噪声能力,我们提出了一个统一的CNN框架:1)在扩散模块中模拟深度和表面法向量之间的几何约束 2)预测由激光雷达(LiDAR)测量得到的稀疏深度图的置信度以减轻噪声的影响。 具体而言,我们的编码器-解码器主干可同时预测法向量,粗略深度和LiDAR输入的置信度,然后将其输入到我们的扩散优化模块中,以获得最终的完成结果。 在KITTI深度补全数据集和NYU-Depth-V2数据集上进行的大量实验表明,我们的方法达到了最先进的性能。 进一步的消融研究和分析为提出的方法提供了更多的见识,并证明了我们模型的泛化能力和稳定性。
简介
广泛使用得深度传感器,诸如LiDAR, RGBD camera和TOF camera 由于有限的感测范围,来自环境的干扰和经济因素,通常会产生稀疏的深度测量值。例如,顶级LiDAR传感器Velodyne HDL64E的价格约为100,000美元,但只能提供垂直分辨率/角度分辨率为0.4°/ 0.08°的稀疏测量。另一方面,在许多高级应用程序中需要密集的深度图,包括语义分割、3D重建、SLAM。为了减轻稀疏和密集深度图之间的差距,深度补全,即从稀疏深度测量生成密集深度图已被广泛采用。
随着深度学习方法的发展,提出了许多基于卷积神经网络(CNN)的深度补全方法。 这些方法的主流是将稀疏深度图(有/没有彩色图像)直接输入到编码器-解码器网络中,并预测密集的深度图[26、16、36、15、10、23、2]。 这些黑匣子方法迫使CNN学习从稀疏深度测量到密集图的映射,这通常是一项艰巨的任务,并导致不稳定的完成结果,如图1(c)所示。 我们认为,应将适当的几何约束条件纳入端到端框架,以规范完成过程并使之更具可解释性。
深度和表面法向量是世界中的两个高度相关的因素,深度之间可以使用它们之间的局部线性正交性。 张等以法向量贴图(由CNN框架预测)为指导,并通过分别优化线性系统来获得密集深度图。 尽管与忽略3D几何约束的方法相比,他们的方法在对室内RGB-D数据进行后处理方面表现更好,但是它仍然遭受巨大的运行时间成本以及对驾驶场景的概括性有限。 此外,它们的常规预测训练和密集深度的优化是独立的,这阻止了以数据驱动的方式进行联合优化。
在本文中,为了用3D几何约束对深度补全结果进行正则化,我们建议通过将其与平面原点距离空间(plane-origin distance space,plane-origin distance即对应平面到原点的距离)相关联,对深度与法向量之间的局部线性正交性进行建模。 我们首先采用基于CNN的主干来估计表面法向量和深度(根据稀疏的LiDAR测量和彩色图像)。 然后,我们转换预测的深度并垂直于平面原点距离空间,并通过扩散模型在该空间中进行细化处理以实施几何约束。 与先前的建模2D空间中的深度变化并假设分段恒定深度的工作[21,2]相比,我们基于3D结构由分段平面和平面原点构成的假设对3D空间中的几何约束进行建模因此,距离是分段恒定的。 向平面起点距离的转换在训练过程中在深度和法向量之间施加了约束,并提高了推理的完成精度和稳定性。 此外,为减轻如图1(g)所示不可避免地对边界或移动物体产生的传感器噪声的影响,我们在我们的框架中引入了置信度分支来预测来自传感器的稀疏深度测量的不确定性。
我们的贡献主要在于三个方面:
- 1.我们基于3D场景由分段平面构成的假设,将深度补全的焦点从2D空间重新定位到3D空间。 具体来说,我们在原点距离空间中结合深度和表面法向量,并通过递归扩散模块对其进行细化,该模块在深度补全过程中强制了深度和表面法向量之间的约束。
- 2.基于此见解,我们提出了一个统一的两阶段CNN框架,以通过非常稀疏的输入(例如LiDAR测量)实现深度补全。 为了提高实际传感器中噪声的鲁棒性,我们进一步引入了置信度预测分支,以阻止与噪声相关的信息的传播。
- 3.我们的框架可以以端到端的方式进行训练,大量的实验结果表明,我们的模型在保持良好的泛化能力的同时,实现了最先进的性能。
方法
在本文中,我们假定3D场景由分段平面组成,因此这些平面与原点之间的距离(plane-origin distance )因此是分段恒定的。 基于此假设,我们提出了一个两阶段的端到端深度学习框架,该框架使用深度和表面法向量之间的约束来规范深度补全过程。 如图2所示,我们的框架主要由两部分组成,即预测网络和优化网络。 预测网络使用共享的权重编码器和独立的解码器估算表面法向量,粗略深度图和稀疏深度输入的置信度。 然后,将稀疏的输入和粗略的深度图通过估计转换到plane-origin distance space。 接下来,细化网络(扩散模型)会反复细化plane-origin distance,从而强制执行分段平面约束并规范深度补全。 与先前许多假定分段恒定深度的工作[21,2]相比,我们的方法利用了深度和表面法向量之间的几何约束,并且在缺失区域中表现更好,更稳定。 最终,可以通过逆变换获得精制深度,而在精制完成时不会损失精度。
Prediction Network
Prediction Network是一个U-Net结构,输入为稀疏深度图 D ˉ \bar{D} Dˉ 和对应的彩色图像I,通过一个共享权重的encoder提取特征,然后通过不同的decoder输出表面法向量图N,粗略深度补全图D 和稀疏深度图的置信图 M。
-
粗略的深度补全图D使用L2距离作为Loss,其中n是像素点的个数:
L D = 1 n ∑ x ∥ D ( x ) − D ∗ ( x ) ∥ 2 2 L_{D}=\frac{1}{n} \sum_{\mathbf{x}}\left\|D(\mathbf{x})-D^{*}(\mathbf{x})\right\|_{2}^{2} LD=n1x∑∥D(x)−D∗(x)∥22
-
对于表面法向量N的Loss , 先使用 深度GT 生成一个 法向量的GT :为每个位置选择一组最接近的3D点,并通过主成分分析(PCA)基于这些点计算法线方向,然后使用负余弦损失( negative cosine loss)作为损失函数:
L N = − 1 n ∑ x N ( x ) ⋅ N ∗ ( x ) L_{N}=-\frac{1}{n} \sum_{\mathbf{x}} \mathbf{N}(\mathbf{x}) \cdot \mathbf{N}^{*}(\mathbf{x}) LN=−n1x∑N(x)⋅N∗(x)
-
置信图M用于说明LiDAR测量的可信度,因为没有置信度的GT,所以使用Laplace分布对其建模生成一个置信图的GT:
M ∗ = exp ( − ∣ D ˉ − D ∗ ∣ b ) M^{*}=\exp \left(-\frac{\left|\bar{D}-D^{*}\right|}{b}\right) M∗=exp(−b∣∣Dˉ−D∗∣∣)
其中 D ˉ \bar{D} Dˉ是带有噪声的的稀疏输入, D ∗ D^{*} D∗是深度的GT,b是控制在对置信度建模时对误差的容忍度的参数。
对置信图的Loss使用L2距离:
L C = 1 n ∑ x ∥ M ( x ) − M ∗ ( x ) ∥ 2 2 L_{C}=\frac{1}{n} \sum_{\mathbf{x}}\left\|M(\mathbf{x})-M^{*}(\mathbf{x})\right\|_{2}^{2} LC=n1x∑∥M(x)−M∗(x)∥22
Recurrent Refifinement Network
世界坐标系中的X 和图像坐标系中的x可以由法向量联系起来:
N ( x ) ⋅ X − P = 0 \mathbf{N}(\mathbf{x}) \cdot \mathbf{X}-P=0 N(x)⋅X−P=0
对于同一平面上的所有3D点, P = N ( x ) ⋅ X P=N(x) \cdot X P=N(x)⋅X 应该是恒定的,这里的P就是plane-origin distance。在小孔相机模型中,X和x还有如下的关系:
X = D ( x ) ⋅ C − 1 x \mathbf{X}=D(\mathbf{x}) \cdot \mathbf{C}^{-1} \mathbf{x} X=D(x)⋅C−1x
其中C表示相机内参矩阵,联立上面两个式子就可以得到:
P ( x ) = D ( x ) N ( x ) C − 1 x P(\mathbf{x})=D(\mathbf{x}) \mathbf{N}(\mathbf{x}) \mathbf{C}^{-1} \mathbf{x} P(x)=D(x)N(x)C−1x
又上面的式子变形,细化的深度图可以这样得到:
D ( x ) = P ( x ) / ( N ( x ) C − 1 x ) D(\mathbf{x}) = P(\mathbf{x}) /\left(\mathbf{N}(\mathbf{x}) \mathbf{C}^{-1} \mathbf{x}\right) D(x)=P(x)/(N(x)C−1x)
到这里我们就可以通过上面推理得到的式子对粗略的深度补全进行几何约束了,首先我们将稀疏的深度图 D ˉ \bar{D} Dˉ 和粗略的深度补全图 D {D} D 映射到plane-origin distances space 中得到 P ˉ \bar{P} Pˉ 和 P P P,然后遵照下面的公式对其进行diffusion refifinement:
P ( x i ) ← ( 1 − ∑ x j ∈ N ( x i ) w ( x i , x j ) ) P ( x i ) + ∑ x j ∈ N ( x i ) w ( x i , x j ) P ( x j ) \begin{aligned} P\left(\mathbf{x}_{\mathbf{i}}\right) \leftarrow(1&\left.-\sum_{\mathbf{x}_{j} \in \mathcal{N}\left(\mathbf{x}_{i}\right)} w\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)\right) P\left(\mathbf{x}_{\mathbf{i}}\right) \\ +& \sum_{\mathbf{x}_{j} \in \mathcal{N}\left(\mathbf{x}_{i}\right)} w\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) P\left(\mathbf{x}_{\mathbf{j}}\right) \end{aligned} P(xi)←(1+−xj∈N(xi)∑w(xi,xj)⎠⎞P(xi)xj∈N(xi)∑w(xi,xj)P(xj)
其中 x j x_j xj是 x i x_i xi附近的点,而 w ( x i , x j ) w\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right) w(xi,xj)是其于同一平面上的可能性,由下面这个式子得到:
w ( x i , x j ) = 1 S ( x i ) exp ( − ( 1 − f ( G ( x i ) ) T g ( G ( x j ) ) ) 2 2 σ 2 ) w\left(\mathbf{x}_{i}, \mathbf{x}_{j}\right)=\frac{1}{S\left(\mathbf{x}_{i}\right)} \exp \left(-\frac{\left(1-f\left(\mathbf{G}\left(\mathbf{x}_{i}\right)\right)^{T} g\left(\mathbf{G}\left(\mathbf{x}_{j}\right)\right)\right)^{2}}{2 \sigma^{2}}\right) w(xi,xj)=S(xi)1exp⎝⎜⎛−2σ2(1−f(G(xi))Tg(G(xj)))2⎠⎟⎞
优化过程的算法如下所示:
该部分的结构如下:
在每个细化迭代中,引导特征图G中的高维特征向量(例如,维数为64)通过两个不同的函数f和g(被建模为两个卷积层,然后进行正规化)独立地进行变换。 然后,使用等式计算从每个位置 x i x_i xi(在平面起点距离图P中)到其相邻的K个像素(xj∈Ni)的相似性。 最后,通过卷积运算执行融合,运算由先前计算的相似性定义。通过这种扩散,深度完成结果受到深度和法线之间的约束条件的调节。
细化网络的Loss: L D r = 1 n ∑ x ∥ D r ( x ) − D r ∗ ( x ) ∥ 2 2 L_{D_{r}}=\frac{1}{n} \sum_{\mathbf{x}}\left\|D_{r}(\mathbf{x})-D_{r}^{*}(\mathbf{x})\right\|_{2}^{2} LDr=n1x∑∥Dr(x)−Dr∗(x)∥22
因此最终的整体网络Loss为: L = L D + α L D r + β L N + γ L C L=L_{D}+\alpha L_{D_{r}}+\beta L_{N}+\gamma L_{C} L=LD+αLDr+βLN+γLC
其中α,β和γ调整损失函数中不同项之间的权重。 在实验中,据经验设置α= 1,β= 1,γ= 0.1。