【论文笔记】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 局限性

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【AI美图】第09期效果图,AI人工智能汽车+摩托车系列图集

期待中的未来AI汽车 欢迎来到未来的世界,一个充满创新和无限可能的世界,这里有你从未见过的科技奇迹——AI汽车。 想象一下,你站在十字路口,繁忙的交通信号灯在你的视线中闪烁,汽车如潮水般涌来,但是&…

建构伦敦银交易策略可遵循的三个原则

构建交易策略,我们应该遵循什么原则呢?有的人说可以盈利就行了,确实盈利是很关键的,没有人想使用一个导致自己亏损的策略。但构建伦敦银策略的时候可不能简单地以一个可以盈利带过,下面我们就来介绍构建策略时所需的三…

鹦鹉目标检测数据集VOC+YOLO格式2000张

鹦鹉是一种非常受欢迎的鸟类,它们通常生活在热带和亚热带地区的森林和草原中。鹦鹉是一种非常聪明、有趣和亲密的动物,也是一种受到广泛关注和保护的物种。 鹦鹉的身体结构非常适应于它们的生活方式。它们的身体非常修长,有着漂亮的羽毛和强…

鸿蒙应用开发初体验 HelloWorld

9 月 25 日,华为常务董事、终端 BG CEO、智能汽车解决方案 BU 董事长余承东华为秋季全场景新品发布会上介绍了鸿蒙系统的最新进展:HarmonyOS 4 发布后,短短一个多月升级用户已经超过 6000 万,成为史上升级速度最快的 HarmonyOS 版…

众和策略证券开户首选:股票增持是好还是坏?大股东增持规定?

股票增持是好仍是坏? 股东增持在一定程度上反映股东对个股比较看好,大量的买单,增加了市场上的多方力气,会推动股价上涨,是一种利好消息。 一般大股东会增持可能是上市公司运营成绩较好,具有较大的发展前…

java 项目日记实现两种方式:拦截器方式实现日记与定义日记注解方式实现日记

通常只要是java web项目基本都离不开项目日记,项目日记存在的意义很多,例如:安全审计,问题追踪都离不开项目日记。下面我们说一下项目日记实现最常用的两种方式 。 一 拉截器实现项目日记 1 实现一个拦截器基类,用于事…

在做题中学习(37):复写零

1089. 复写零 - 力扣(LeetCode) 思路:双指针法 1.因为是就地修改不能用新数组,但可以试试看看结果是什么(结尾数是4) (cur遍历数组)(当cur!0时替换一个 当c…

FFmpeg windows安装与使用

FFmpeg下载: 1、进入ffmpeg官网,点击“Download”。官网地址:FFmpeg 2、选择对应环境的编译工具,如下载windows环境下的ffmpeg编译工具 3、点击下载编译好的ffmpeg工具 FFmpeg使用: 1、将ffmpeg编译的bin文件复制出来…

【大模型】1、LoRA | 大模型高效微调技术

文章目录 一、背景1.1 什么是秩1.2 为什么要用低秩 二、方法三、效果 论文:LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 代码:https://github.com/microsoft/LoRA 出处:微软 一、背景 1.1 什么是秩 矩阵的秩是指其行&#xff0…

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot

Tomcat转SpringBoot、tomcat升级到springboot、springmvc改造springboot 起因:我接手tomcat-springmvc-hibernate项目,使用tomcat时问题不大。自从信创开始,部分市场使用国产中间件,例如第一次听说的宝兰德、东方通,还…

算法模板之栈图文详解

🌈个人主页:聆风吟 🔥系列专栏:算法模板、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️模拟栈1.1 🔔用数组模拟实现栈1.1.1 👻栈的定义1.1.…

R语言贝叶斯网络模型、INLA下的贝叶斯回归、R语言现代贝叶斯统计学方法、R语言混合效应(多水平/层次/嵌套)模型

目录 ㈠ 基于R语言的贝叶斯网络模型的实践技术应用 ㈡ R语言贝叶斯方法在生态环境领域中的高阶技术应用 ㈢ 基于R语言贝叶斯进阶:INLA下的贝叶斯回归、生存分析、随机游走、广义可加模型、极端数据的贝叶斯分析 ㈣ 基于R语言的现代贝叶斯统计学方法(贝叶斯参数估…

如何把透明OLED显示屏介绍给用户人群

透明OLED显示屏是一种新型的显示技术,它具有透明度高、色彩鲜艳、对比度高、响应速度快等优点。下面是一些介绍透明OLED显示屏的要点: 透明度:透明OLED显示屏的最大特点是其透明度,它可以让光线透过显示屏,使得屏幕背后…

TG5032CGN TCXO / VC-TCXO(超高稳定10pin端子型)

TG5032CGN 晶振是EPSON推出的一款额定频率10MHz至40MHz的石英晶体振荡器,该型号采用互补金属氧化物半导体技术,输出波形稳定可靠。外形尺寸为5.0 3.2 1.45mm具有小尺寸,高稳定性。该款晶体振荡器,可以在G:-40C至 85C的温度内稳定…

共建还是对抗?BTC 铭文风波中开发者、矿工与社区的平衡艺术

近期,比特币铭文正加速进入一场争议与危机的漩涡。12 月 6 日,比特币核心开发人员 Luke Dashjr 在 X 表示,铭文(Inscriptions)正在利用比特币核心客户端 Bitcoin Core 的一个漏洞向区块链发送垃圾信息,Bitc…

在灾难推文分析场景上比较用 LoRA 微调 Roberta、Llama 2 和 Mistral 的过程及表现

引言 自然语言处理 (NLP) 领域的进展日新月异,你方唱罢我登场。因此,在实际场景中,针对特定的任务,我们经常需要对不同的语言模型进行比较,以寻找最适合的模型。本文主要比较 3 个模型: RoBERTa、Mistral-7B 及 Llama-…

基于javaWeb的長安智慧医疗管理系统设计与实现论文

長安智慧医疗管理系统 摘 要:如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决…

Shell 脚本应用(三)

使用 for 循环语句 for语句的结构 使用for循环语句时,需要指定一个变量及可能的取值列表,针对每个不同的取值重复执行相同 的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为for语句的执行条件,其中包括多…

makefile例子

1、目录结构 2、文件 2.1、 test.h extern void test(void); 2.2 、test.c #include <stdio.h>void test(void) {printf("Hello world!\n"); }2.3 、main.c #include "test.h"int main(void) {test();return 0; }2.4、makefile TEST_DIR : $(s…

ai学习笔记-入门

目录 一、人工智能是什么&#xff1f;可以做什么&#xff1f; 人工智能(Artificial Intelligence): 人工智能的技术发展路线&#xff1a; 产业发展驱动因素&#xff1a;数据、算力、算法 二、人工智能这个工具的使用原理入门 神经网络⭕数学基础 1.神经网络的生物表示 …