【论文笔记】NeuRAD: Neural Rendering for Autonomous Driving

原文链接:https://arxiv.org/abs/2311.15260

1. 引言

神经辐射场(NeRF)应用在自动驾驶中,可以创建可编辑的场景数字克隆(可自由编辑视角和场景物体),以进行仿真。但目前的方法或者需要大量的训练时间,或者对传感器的建模过于简单(导致仿真和真实数据的间隙),或者性能较低。
在这里插入图片描述
本文提出NeuRAD,一种可编辑的新视图合成模型。该方法可以处理大型自动驾驶场景,建模了重要的传感器特性(如相机的卷帘式快门、激光雷达的光束发散)。此外,本文的模型简单,其中静态和动态元素通过位置嵌入分辨。NeuRAD有泛化性和SotA性能。

3. 方法

本文的NeuRAD在各数据集上均有低重建误差和推断时间,其总览如下图所示。
在这里插入图片描述

3.1 场景表达和传感器建模

神经场景表达:本文使用神经特征场(NFF,是NeRF和类似方法的推广)。给定位置 x x x和视线方向 d d d,NFF输出隐式几何 s s s和特征向量 f f f,并进行体积渲染。

为提取射线 r ( τ ) = o + τ d r(\tau)=o+\tau d r(τ)=o+τd的特征,沿射线采样 N r N_r Nr个点,并使用传统的alpha合成方法聚合这些采样点的特征:
f ( r ) = ∑ i = 1 N r w i f i , w i = α i ∏ j = 1 i − 1 ( 1 − α j ) (1) f(r)=\sum_{i=1}^{N_r}w_i f_i,w_i=\alpha_i\prod_{j=1}^{i-1}(1-\alpha_j)\tag{1} f(r)=i=1Nrwifi,wi=αij=1i1(1αj)(1)
这里 α i \alpha_i αi表示点 x i = o + τ i d x_i=o+\tau_i d xi=o+τid的不透明度, w i w_i wi为沿射线从原点到 x i x_i xi的累积透射率。本文使用能恢复高质量几何的有符号距离函数(SDF)表达隐式几何并近似得到不透明度:
α i = 1 1 + e β s i \alpha_i=\frac{1}{1+e^{\beta s_i}} αi=1+eβsi1
其中 s i s_i si x i x_i xi处的SDF值, β \beta β为可学习参数。使用更精确的SDF公式能提高性能,但需要对每个3D点进行梯度计算,从而影响运行时间。

相机建模:对相机射线集合进行体积渲染,生成特征图 F ∈ R H f × W f × N f \mathcal{F}\in\mathbb{R}^{H_f\times W_f\times N_f} FRHf×Wf×Nf。然后使用CNN上采样渲染得到更高分辨率的最终图像 I ∈ R H I × W I × 3 \mathcal{I}\in\mathbb{R}^{H_I\times W_I\times 3} IRHI×WI×3。这样可以减少渲染的射线数量。

激光雷达建模:将激光雷达的发射脉冲视为射线,进行体积渲染。设激光雷达点对应的射线为 r ( τ ) = o + τ d r(\tau)=o+\tau d r(τ)=o+τd,其中 o o o为激光雷达原点, d d d为归一化光束方向。射线的期望深度 E [ D l ( r ) ] = ∑ i = 1 N r w i τ i \mathbb{E}[D_l(r)]=\sum_{i=1}^{N_r}w_i\tau_i E[Dl(r)]=i=1Nrwiτi。预测强度时,根据式(1)得到特征,并通过MLP。

射线丢弃的建模在激光雷达的建模中很重要,但基于物理的建模不可行,因其依赖低级传感器的(未公开的)检测逻辑。使用MLP将(1)式的输出特征映射为射线丢弃概率 p d ( r ) p_d(r) pd(r)。由于使用的数据集未作考虑,本文未建模激光雷达光束的第二返回。

3.2 扩展神经特征场

将神经特征场扩展为学习函数 ( s , f ) = N F F ( x , t , d ) (s,f)=NFF(x,t,d) (s,f)=NFF(x,t,d),其中时间 t t t作为输入,以建模动态物体。

结构:给定位置 x x x和时间 t t t,本文查询参与者感知的哈希编码。然后将编码送入小型MLP计算有符号距离 s s s和中间特征 g ∈ R N g g\in\mathbb{R}^{N_g} gRNg。使用球面谐波编码视线方向 d d d,使模型捕捉视线相关的特征。最后,使用MLP联合处理方向编码和 g g g,使用 g g g的跳跃连接增强后,得到 f f f

场景组成:本文将场景分解为两个部分,静态背景和刚性动态参与者集合,其中每个动态参与者由一个3D边界框和SO(3)姿态定义。其目的有二:简化学习过程与实现可编辑性(参与者可以在训练完成后被移动)。本文使用统一的NFF处理各场景元素,其中动态和静态成分的区分来自于参与者感知的哈希编码。编码策略很直接:若给定的样本 ( x , t ) (x,t) (x,t)位于边界框内,就使用一种函数编码;否则使用另一种函数。

无界静态场景:本文对静态场景使用多分辨率哈希网格。但由于静态场景的无界性,本文使用了MipNeRF-360的收缩方法,从而能使用单一哈希网格精确表达附近的道路元素和远处的云。

刚性动态参与者:若样本 ( x , t ) (x,t) (x,t)位于边界框内,则 x x x和视线方向 d d d会转化到 t t t时刻的参与者坐标系中。这使得可以像静态场景一样,从时间无关的多分辨率哈希网格中采样特征。与使用多个哈希网格表达不同参与者的方法相比,本文使用单一4D哈希网格(其中第4维度表示参与者索引),以并行采样所有参与者的特征。

3.3 汽车数据建模

多尺度场景:对汽车数据使用神经渲染的一大挑战是处理数据中的多层次细节。过去的方法如Zip-NeRF使用多采样和降权法建模视锥,能极大提高性能,但运行时间也极大增加了。

本文的方法基于哈希网格特征相对视锥的大小来进行降权。将射线 r ( τ ) = o + τ d r(\tau)=o+\tau d r(τ)=o+τd建模为金字塔,其横截面积为 A ( τ ) = r ˙ h r ˙ v τ 2 A(\tau)=\dot{r}_h\dot{r}_v\tau^2 A(τ)=r˙hr˙vτ2,其中 r ˙ h , r ˙ v \dot{r}_h,\dot{r}_v r˙h,r˙v分别为水平和垂直的光束发散性,基于图像的patch大小或激光雷达的光束发散性得到。对区间 [ τ i , τ i + 1 ) [\tau_i,\tau_{i+1}) [τi,τi+1)之间的视锥截体,记其两端的截面面积分别为 A i A_i Ai A i + 1 A_{i+1} Ai+1,其体积为
V i = τ i + 1 − τ i 3 ( A i + A i A i + 1 + A i + 1 ) V_i=\frac{\tau_{i+1}-\tau_i}{3}(A_i+\sqrt{A_iA_{i+1}}+A_{i+1}) Vi=3τi+1τi(Ai+AiAi+1 +Ai+1)
其位置编码 e i e_i ei x i = o + τ i + τ i + 1 2 d x_i=o+\frac{\tau_i+\tau_{i+1}}{2}d xi=o+2τi+τi+1d处的结果。对第 l l l层的、分辨率为 n l n_l nl的哈希网格,其位置编码的权重为 w i , l = m i n ( 1 , 1 n l V i 1 / 3 ) w_{i,l}=\mathtt{min}(1,\frac{1}{n_lV_i^{1/3}}) wi,l=min(1,nlVi1/31),即单元格大小( 1 / n l 3 1/n_l^3 1/nl3)与截锥体积之比。

高效采样:渲染大尺度场景的另一困难是高效采样。由于需要同时渲染附近物体细节丰富的纹理和远处物体的视差,沿射线均匀采样需要大量采样点,导致计算可行性低。

本文根据幂函数沿射线采样,即沿射线距离越远的地方,采样点越稀疏。但这样也需要大量的采样。因此本文使用两轮提案采样,其中轻量级NFF采样沿射线的权重分布,并根据权重采样新样本集合。这样可以得到细化的样本集合,沿射线关注相关区域,以查询完整的NFF。为监督提案网络,本文使用抗混叠在线蒸馏;额外使用激光雷达监督,对应的损失项为3.4节中的 L d \mathcal{L}^d Ld L w \mathcal{L}^w Lw

建模卷帘式快门:标准的NeRF假设图像的所有像素来自相同原点 o o o,但许多相机有卷帘式快门,即像素是按顺序捕获的。此时相机的原点会在不同行之间变化。这对于侧视相机来说影响很大。激光雷达也有相同的情况,即激光雷达扫描是在一段时间内采集得到的。本文通过为每个射线分配时间,并根据估计的运动调整原点,来建模卷帘式快门。详见附录E。

不同的相机设置:不同的相机可能会有不同的捕捉参数,如曝光时间。本文为每个传感器使用简单的编码,并与 g g g一起输入第二个MLP。在体积渲染之后,也会使用这些传感器编码,从而极大地减小计算开销。

带噪声的参与者姿态:本文的模型依赖动态参与者的估计姿态。为考虑估计误差,本文将参与者姿态作为模型的可学习参数,并联合优化之。姿态被表达为平移 t ∈ R 3 t\in\mathbb{R}^3 tR3和旋转的6D表示。

3.4 损失

本文使用相机和激光雷达观测作为监督 L = L image + L lidar \mathcal{L}=\mathcal{L}^\text{image}+\mathcal{L}^\text{lidar} L=Limage+Llidar

图像损失:图像损失是逐patch计算的,然后将 N p N_p Np个patch的损失取均值。损失包含重建项和感知项:
L image = 1 N p ∑ i = 1 N p λ rgb L i rgb + λ vgg L i vgg \mathcal{L}^\text{image}=\frac{1}{N_p}\sum_{i=1}^{N_p}\lambda^\text{rgb}\mathcal{L}^\text{rgb}_i+\lambda^\text{vgg}\mathcal{L}^\text{vgg}_i Limage=Np1i=1NpλrgbLirgb+λvggLivgg
其中重建项 L i rgb \mathcal{L}^\text{rgb}_i Lirgb为像素之间的平方误差,感知损失 L i vgg \mathcal{L}^\text{vgg}_i Livgg与pix2pixHD中的相同。

激光雷达损失:使用激光雷达提供的几何先验,通过为激光雷达射线添加深度损失,并为空区域进行权重衰减以惩罚密度。此外,还引入强度损失和预测的射线丢弃概率损失:
L lidar = 1 N ∑ i = 1 N λ d L i d + λ int L i int + λ p d L i p d + λ w L i w \mathcal{L}^\text{lidar}=\frac{1}{N}\sum_{i=1}^{N}\lambda^\text{d}\mathcal{L}^\text{d}_i+\lambda^\text{int}\mathcal{L}^\text{int}_i+\lambda^{p_d}\mathcal{L}^{p_d}_i+\lambda^\text{w}\mathcal{L}^\text{w}_i Llidar=N1i=1NλdLid+λintLiint+λpdLipd+λwLiw
其中深度损失 L i d \mathcal{L}^\text{d}_i Lid和强度损失 L i int \mathcal{L}^\text{int}_i Liint为平方误差,对于丢弃的射线,不进行强度监督,仅惩罚传感器距离较低的估计。射线丢弃概率损失 L i p d \mathcal{L}^{p_d}_i Lipd使用二元交叉熵损失。权重衰减被用于激光雷达距离在 ϵ \epsilon ϵ以上的观测:
L i w = ∑ τ i , j > ϵ ∥ w i j ∥ 2 \mathcal{L}^\text{w}_i=\sum_{\tau_{i,j}>\epsilon}\|w_{ij}\|_2 Liw=τi,j>ϵwij2
其中 τ i , j \tau_{i,j} τi,j为激光雷达射线 i i i上样本 x i j x_{ij} xij的距离。丢弃射线仅在特定范围内进行权重衰减。最后,省略光程损失,因其有高计算代价,而性能提升很小。

4. 实验

NeuRAD在所有5个数据集上的实验有相同的超参数。

4.2 新视图合成

相机:本文的方法有更快的训练时间和SotA的性能。

激光雷达:由于射线丢弃的建模,NeuRAD能生成真实的激光雷达点云。

4.3 新场景生成

本文通过横向移动自车传感器(模拟自车改道)、纵向移动自车传感器(模拟传感器的放置位置变动)、参与者移动和旋转。由于无真值图像,本文以无移动的情况做为参考,报告FID值。将优化相机姿态能进一步提高锐度。

4.4 消融研究

使用CNN解码器可以极大增加质量与速度,且能减少渲染射线数并实现射线交互。精确的传感器建模(考虑卷帘式快门、将射线建模为视锥截体、传感器嵌入、考虑激光雷达射线丢弃)也能提高性能。使用统一的4D哈希网格替代独立的3D哈希网格不影响性能,但能极大提高速度。使用NeRF的密度估计替代SDF函数,性能几乎相同,这表明本文方法的灵活性:若需要建模物体表面,则可以使用SDF;但若场景存在雾、透明表面或其余SDF失效的情况,可以使用密度。

5.结论

局限性:NeuRAD假设所有参与者均为刚性,不支持变形。且许多建模对于大雨或大雪等恶劣天气无效。

补充材料

A. 实施细节

哈希网格:为静态场景和动态参与者使用两个不同的哈希网格。其中静态场景的哈希表远大于动态参与者,因为动态参与者在场景中的占比很小。

提案采样:首先根据幂函数 P ( 0.1 x , − 1.0 ) \mathcal{P}(0.1x,-1.0) P(0.1x,1.0)均匀采样,并进行两轮提案采样,由两个不同的密度场表达。密度场也使用参与者感知的哈希编码,但哈希表和特征维度更小。使用线性层解码密度。

D. 射线丢弃推断

推断激光雷达射线丢弃的过程因数据集不同而不同,但总的步骤包含三步:自车运动补偿的移除、二极管索引分配和点填充。原始点云、移除自车运动补偿后的点云以及填充点的点云的如下所示。

移除自车运动补偿:由于数据集的点云是经过自车运动补偿的,即其笛卡尔坐标在公共的坐标系下。直接将其转换到球坐标下获得水平角和俯仰角是不行的。

对时间 t t t的激光雷达点 ( x , y , z ) (x,y,z) (x,y,z),首先投影到世界坐标系下,然后根据已知的激光雷达姿态线性插值,得到 t t t时刻的激光雷达姿态。对于旋转角,使用四元数表达,进行球面线性插值。然后将点云投影回传感器坐标系下,并转化为球面坐标。
二极管索引分配:数据集使用旋转激光雷达,即一组二极管绕传感器360度旋转,每一个传感器对应一个俯仰角。可根据俯仰角得到二极管的索引值。由于移除自车运动补偿的不准确性,可设计聚类算法推断二极管索引。

接下来,为每一帧定义每个二极管的俯仰角范围(在激光雷达的俯仰角范围内均匀分布),然后使用直方图划分方法根据俯仰角将点云聚类,其中划分的区间数远大于二极管数。对于落在空区间的决策边界,记为真实边界。若真实边界数小于期望边界数,则在已有边界之间进行插值,直到数量满足要求:对距离最大的两个边界,根据垂直分辨率进行尽可能多的插值,得到更多决策边界。

点填充:经历上面两步后,可推断哪些激光射线不返回点。根据激光雷达的水平分辨率,定义水平角区间,若有点落入区间,则标记为又返回;其余区间通过线性插值得到水平角和俯仰角。

E. 建模卷帘式快门

在这里插入图片描述
上图为一帧激光雷达进行自车运动补偿后的BEV视图,可以从中间的断裂处看到卷帘式快门的影响。本文首先为每个射线分配时间戳。对于激光雷达,若数据集不提供射线时间戳,则基于水平角和传感器转速估计。对于图像,手动近似快门时间并为图像的不同行添加时间偏移量。然后线性插值传感器姿态以移动原点。此外,也在将射线样本点转化到参与者坐标系之前,插值了参与者的姿态。

F. 额外结果

提案采样:UniSim使用的基于激光雷达占用进行剪枝的均匀采样会导致无占用的远处物体被建模为天空,且近处物体则需要密集采样恢复细节。

传感器嵌入:可视化表明,忽视相机的不同设置会导致色彩和光照的偏移,通常发生在图像边缘处。引入传感器嵌入可以得到更精确的重建结果。

相机优化:NeRF依赖精确的传感器姿态,但数据集给出的姿态存在噪声。类似动态参与者姿态的优化(3.3节),本文也优化了相机的姿态。这样做能导致渲染锐度和FID指标增加,但新视图合成指标会有下降。这是因为姿态优化导致训练数据中的世界坐标和验证时的姿态不一致,使得验证时在略微偏移的位置进行渲染。可视化表明,使用相机优化能生成更清晰的图像,但评估性能更低。

F.1 局限性

可变形动态参与者:由于行人不符合刚性假设,会导致模糊的重建。

夜晚场景:夜晚场景包含大量与几何无关的测量噪声,且长的曝光时间与运动耦合,使得产生模糊或透明的参与者渲染结果;强光会导致光晕和透镜耀斑;来自自车或其余车辆的动态光照也未被建模。

时间变化的目标外表:如刹车灯和交通灯的建模,与可变形物体类似,但:不需要几何随时间变化,且可以视为离散状态;需要对其完全可编辑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/237982.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像处理—小波变换

小波变换 一维小波变换 因为存在 L 2 ( R ) V j 0 ⊕ W j 0 ⊕ W j 0 1 ⊕ ⋯ L^{2}(\boldsymbol{R})V_{j_{0}}\oplus W_{j_{0}}\oplus W_{j_{0}1}\oplus\cdots L2(R)Vj0​​⊕Wj0​​⊕Wj0​1​⊕⋯,所以存在 f ( x ) f(x) f(x)可以在子空间 V j 0 V_{j_0} Vj0…

springboot使用Validated实现参数校验

做为后端开发人员,一定有前端传的数据是可能会出错的警惕性,否则程序就可能会出错,比如常遇到的空指针异常,所以为了程序运行的健壮性,我们必须对每一个参数进行合法校验,就能避免很多不必要的错误&#xf…

【高效开发工具系列】eclipse部署web项目

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

el-select绑定值的坑

碰到一个问题,选择框的数据是后端传过来的,下拉框的数据也是后端传过来的,但是打开下拉框时,发现数据没有高亮。 最后发现,只要选择框v-model给的值和option的value绑定的值一致,就可以高亮。 大多数情况下…

机器学习——分类评价指标

【说明】文章内容来自《机器学习——基于sklearn》,用于学习记录。若有争议联系删除。 1、评价指标 对于模型的评价往往会使用损失函数和评价指标,两者的本质是一致的。一般情况下,损失函数应用于训练过程,而评价指标应用于测试过…

【Xcode】解决Unable to process request - PLA Update available

出现场景 IOS更新app时,使用Xcode上传新版本的包时,提示无法上传。 Unable to process request -PLA update available you currently dont have access to this membership resource. To resolve this issue ,agree to the latest program license a…

Flutter ExpansionPanelList 去除展开后的间隔距离,及属性

可展开列表中,展开后条目有一个间距,可以 使用materialGapSize: 0,来去掉 // child: ExpansionPanelList(//expandedHeaderPadding: EdgeInsets.zero,//头部顶部间隔// materialGapSize: 15,//展开后的间距// animationDuration: const …

实在智能成功完成近2亿元C轮融资,全面迎接2024年Agent智能体应用元年

在这个最冷的季节,杭州实在智能科技有限公司(以下简称“实在智能”)依然表现火爆,近日,实在智能成功完成C轮融资近2亿元人民币,由金泰富资本和安吉智慧谷共同领投、安吉两山国创跟投。 在此轮融资以前&…

61权限提升-RedisPostgre令牌窃取进程注入

主要讲解redis数据库和postgresql数据库,然后还要两个windows的提权方式令牌窃取和进程注入。 postgresql是基于两个cve的漏洞,redis的提权方式第一种是利用任务执行的反弹shell,第二个是写一个ssh-keygen的公钥使用私钥登录,这是…

[SWPUCTF 2021 新生赛]Do_you_know_http已

打开环境 它说用WLLM浏览器打开,使用BP抓包,发送到重发器 修改User-Agent 下一步,访问a.php 这儿他说添加一个本地地址,它给了一个183.224.40.160,我用了发现没用,然后重新添加一个地址:X-Forwa…

QListView的setResizeMode,setViewMode,setFlow

参考: qt的QListwiget设置横向的排列_qlistwidget 横排-CSDN博客 希望实现类似的效果: 感觉关键是搞清楚这三句: list.setViewMode(QListView::IconMode);list.setFlow(QListView::LeftToRight);list.setResizeMode(QListView::Adjust); …

mysql自增序列 关于mysql线程安全 独享内存 溢出 分析

1 MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。 相对其他数据库而言,MySQL的锁机制比较简单&#xff0c…

nginx 离线安装 https反向代理

这里写自定义目录标题 安装步骤1.安装nginx所需依赖1.1 安装gcc和gcc-c1.1.1下载依赖包1.1.2 上传依赖包1.1.3安装依赖 1.2 安装pcre1.2.1 下载pcre1.2.2 上传解压安装包1.2.3 编译安装 1.3 下载安装zlib1.3.1 下载zlib1.3.2 上传解压安装包1.3.3 编译安装 1.4 下载安装openssl…

STM32G4x FLASH 读写配置结构体(LL库下使用)

主要工作就是把HAL的超时用LL库延时替代,保留了中断擦写模式、轮询等待擦写,我已经验证了部分。 笔者用的芯片为STM32G473CBT6 128KB Flash,开环环境为CUBEMXMDK5.32,因为G4已经没有标准库了,笔者还是习惯使用标准库的…

企业招股书API,轻松获取公司招股书信息

前言 随着互联网的普及和信息技术的不断发展,获取公司招股书信息变得越来越便捷。企业招股书API作为一种新型的技术手段,为投资者提供了更加高效、准确、全面的招股书信息。本文将介绍企业招股书API的功能和优势,帮助投资者轻松获取公司招股…

什么是多边形网格以及如何编辑它?

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 多边形网格是 3D 建模中经常使用的一个词,它的含义…

Ionic实战二十七:移动端录音方案及Nginx部署配置

文章目录 1.最终效果预览2.实现思路说明3.移动端外壳集成iframe4.视频页nginx配置5.组态页iframe集成6.组态页Nginx配置7.Nginx启动及关闭8.H5页面录音1.最终效果预览 2.实现思路说明 摄像头对接的海康的或者大华,将设备集成到青柿视频平台中,这样视频的播放用video标签即可…

文件夹数据同步工具 Sync Folders Pro mac支持选项

Sync Folders Pro for Mac 是一款功能强大的文件夹同步工具,旨在帮助用户在 Mac 计算机和移动设备之间创建双向同步。这款软件支持各种文件系统和设备,如 iPhone,iPad,iPod,Android 等。通过这款软件,用户可…

模型评估方法

目录 数据集切分 交叉验证 交叉验证实例 混淆矩阵 实例 代码实现 阈值 全局阈值处理 自适应阈值处理 阈值对结果的影响 ROC曲线 数据集切分 数据集切分是指将一个数据集分割成训练集和测试集的过程。常用的方法是随机切分,即将数据集中的样本按照一定比…

OpenAI 官方 Prompt 工程指南:写好 Prompt 的六个策略

其实一直有很多人问我,Prompt 要怎么写效果才好,有没有模板。 我每次都会说,能清晰的表达你的想法,才是最重要的,各种技巧都是其次。但是,我还是希望发给他们一些靠谱的文档。 但是,网上各种所…