原文链接:https://arxiv.org/abs/2405.00900
1. 引言
自动驾驶等应用领域需要逼真的仿真。传统的仿真流程需要手工创建3D资产并构成虚拟环境,但其人力和专业需求使其难以具有可放缩性。
NeRF有不错的仿真能力,但需要大范围覆盖的训练数据以学习潜在的几何、材料特性和光照。在自动驾驶场景中,数据覆盖很稀疏,且相机的轨迹共线。此外,路面纹理较少,进一步引入重建的模糊性。
本文引入激光雷达作为NeRF缺少显式几何约束的补偿。本文的方法称为DiL-NeRF,大幅提升视图合成的质量。
本文(1)使用3D稀疏卷积从激光雷达点云中提取3D网格表达的几何特征;(2)积累激光雷达点云进行深度监督,并考虑遮挡(从近到远地监督深度,并逐步过滤虚假深度);(3)使用激光雷达密集化训练视图,即将激光雷达点云投影到新训练视图上,加入训练视图中,并使用上述监督策略考虑遮挡问题。
4. 方法
4.1 概述
本文方法基于Nerfacto,以激光雷达点云为输入,提取其中的几何特征,并与基于哈希的特征网格融合。混合特征被送入MLP解码颜色与密度,再通过标准的体渲染。输出会使用跨帧积累的密集激光雷达点作为深度监督,同时考虑遮挡。这在原始Nerfacto损失 L Nerfacto L_\text{Nerfacto} LNerfacto的基础上引入两个额外损失 L d s L_{ds} Lds和 L a u g L_{aug} Laug:
L = L Nerfacto + λ 1 L d s + λ 2 L a u g L=L_\text{Nerfacto}+\lambda_1 L_{ds}+\lambda_2 L_{aug} L=LNerfacto+λ1Lds+λ2Laug
其中
L Nerfacto = L r g b + λ 3 L d i s t + λ 4 L interval L_\text{Nerfacto}=L_{rgb}+\lambda_3 L_{dist}+\lambda_4 L_\text{interval} LNerfacto=Lrgb+λ3Ldist+λ4Linterval
4.2 带激光雷达编码的混合表达
动机:激光雷达点云有潜力对NeRF进行几何指导,但由于其稀疏性(即便有时间积累),其渲染分辨率也很低。此外,激光雷达无法捕捉完整的场景(如超过一定高度的建筑物)。本文将激光雷达特征与高分辨率空间网格特征融合,以利用两者的优势进行高质量且完整的场景渲染。
激光雷达特征提取:首先聚合序列所有帧的点云生成更加密集的点云。然后进行体素化,其每个体素的特征为其中所有点位置坐标的平均值。使用3D稀疏UNet编码场景几何特征,输出神经体特征( n n n维),这产生了本文的激光雷达嵌入 P = { ( p i , f i ) ∣ i = 1 , ⋯ , N } P=\{(p_i,f_i)|i=1,\cdots,N\} P={(pi,fi)∣i=1,⋯,N},其中点 i i i位于 p i p_i pi处,其对应体素的神经特征为 f i f_i fi,编码了 p i p_i pi周围的局部和全局几何。
激光雷达特征的查询:对射线上的每个采样点 x x x,若其 R R R半径邻域内至少有 K K K个激光雷达点,则查询其对应的激光雷达特征(否则其激光雷达特征被设置为空,即全零)。本文使用固定半径最近邻(FRNN)方法选择 x x x的 K K K近邻激光雷达点集 S x K S_x^K SxK,并作为采样点的的分布,随训练