项目主页:https://urban-radiance-fields.github.io/
论文地址:https://urban-radiance-fields.github.io/
利用RGB图像和激光雷达扫描数据(由摄像机和扫描仪在室外场景中移动获得),进行三维重建和新颖的视图合成,适用于城市户外环境中的世界地图绘制(如街景)。
主要有以下三个方面创新
问题与挑战
创新、扩展
优化目标(损失函数)
颜色部分网络结构
总损失函数
场景级神经网络参数θ,每幅图像曝光参数{βi}
光度损失项类似于原始的NeRF方程,但也取决于估计的每幅图像曝光参数{βi}
体渲染方程(volume rendering)由两部分组成
通过映射系统获取的图像通常通过自动白平衡和自动曝光来捕获,这使得光度损失(Lrgb)计算变得复杂。之前使用潜在代码解决了这个问题,针对每个图像分别学习,将图像无关的场景亮度映射到图像相关的亮度。这种方法的一个缺点是,用每个图像的潜在代码建模曝光变化是过度参数化的,因为它允许潜在代码补偿非曝光相关的错误。相反,在体渲染方程中,我们对共享网络预测的亮度进行仿射映射,其中仿射变换是一个从每幅图像潜在代码βi∈R^B解码的3x3矩阵:
这种映射通过一个更严格的函数来模拟白平衡和曝光变化,因此当场景亮度参数θ和曝光映射β联合优化时,不太可能引起不必要的纠缠
户外场景包含天空区域,光线不会相交于任何不透明的表面,因此NeRF模型在这些区域得到微弱的监控信号。为了解决这个问题,渲染模型包括一个以基于坐标的神经网络表示的球形亮度(环境)地图,类似于在GANcraft中使用的亮度地图
对每个图像运行一个预先训练的语义分割模型,以检测可能是天空的像素:Si=S(Ii),其中Si®=1,如果射线r通过图像i中的天空像素。然后我们使用天空掩码来定义一个额外的损失,鼓励通过天空像素的射线在所有点样本的密度为零
每当Si®=1,这将使得体渲染方程中Csky解释在总损失函数中射线r的像素
使用激光雷达数据监督模型的训练,给出了L个激光雷达样本集D={(o ', D ', z ')L ’ =1},每个对应一条射线r(z)=o ’ + zd ',以及相关的3D测量p ’ =r(z ')
损失分成两种不同类型:监督预期深度值,监督从激光雷达传感器到观察位置的视线方向上的自由空间
在体绘制过程中(光学深度),开始监督期望的深度ˆz,以匹配激光雷达测量的深度
对于由激光雷达传感器观测到的点,一个合理的假设是,一个测量点p对应于一个非透明表面上的位置,大气介质对激光雷达测量的颜色没有贡献。
因此,我们期望辐射亮度集中在沿射线的一个点上,也就是说,一个点负责观察到的颜色
δ(.)为连续狄拉克函数。我们可以通过惩罚方法将这种约束转换为损失
为了使这个数值易于处理,我们可以用一个积分为1(即一个分布)的核来代替狄拉克
第二项为
这鼓励了表示增加了p附近的体积密度,从而允许训练更快地收敛
K(x)在[z−, z + ]在[z−, z + ]中有界支持,第一项可以简化为
这要求光线原点和激光雷达点p(即视线)之间的部分空间不包含任何3D表面,这种视线信息一直是“体雕”技术的关键组成部分
最后一项为
这一项的唯一目的是确保w(t)和为1,并且因为NeRF的体积渲染方程只要求w(t)和不超过1,所以在训练过程中可以去掉这一项