基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS

基于NeRF的路面重建算法——RoME / EMIE-MAP / RoGS

  • 1. RoMe
    • 1.1 Mesh Initialization / Waypoint Sampling
    • 1.2 Optimization
    • 1.3 Experiments
  • 2. EMIE-MAP
    • 2.1 Road Surface Representation based on Explicit mesh and Implicit Encoding
    • 2.2 Optimizing Strategies
    • 2.3 Experiments
  • 3. RoGS
    • 3.1 Road Surface Representation Based on Guassian Surfels
    • 3.2 Optimization
    • 3.3 Experiments

使用NeRF进行路面重建的思路要从Tesla AI Day的下面这页PPT说起:
在这里插入图片描述
地面重建的目的主要用于BEV框架下的道路结构的真值标注或者网络训练,好处主要是可以基于MLP进行颜色、语义等信息的融合并保持光滑,三年过去了有几篇和该方法相关的论文,本文进行一个简单的总结

1. RoMe

RoMe是地平线2023年发布的一篇Paper,原论文为《RoMe: Towards Large Scale Road Surface Reconstruction via Mesh Representation》,该论文将路面分解为三角形网格,通过隐式建模来恢复路面的高程信息以及Pytorch3D来进行颜色和语义渲染,基于Waypoint采样进行分块渲染来实现对大规模场景的重建,算法流程图如下图所示:在这里插入图片描述

1.1 Mesh Initialization / Waypoint Sampling

RoMe算法的基本数据结构是三角形网格,每个三角网格的顶点上存储着位置 ( x , y , z ) (x, y, z) (x,y,z),颜色 ( r , g , b ) (r, g, b) (r,g,b)和语义等信息,三角形网格初始化是在自车位姿附近采样一系列的半稠密点 ( x , y ) (x, y) (x,y)作为顶点,这些顶点的高度 z z z初始化为自车位姿高度减去自车高度,后续优化过程中高度 z z z通过一个Elevation MLP输出,如上图(b)所示,作者在Ablation Study中提到,如果将高度 z z z直接作为一个优化变量会导致地面不够平滑,增加一个Elevation MLP主要是为了保持地面的平滑性,如下图所示:
在这里插入图片描述

为了实现对大规模场景进行渲染,作者使用了Waypoinnt Sampling的策略来提高效率,其核心思想就是分而治之,具体算法流程如下
在这里插入图片描述
简而言之就是先通过随机选取一个位姿点构建一个子区域进行训练优化,该子区域会覆盖一部分位姿,然后迭代贪婪地选取未被覆盖的位姿点中最远的一个构建子区域进行训练优化,直到左右位姿点被覆盖到,如下是示意图:
在这里插入图片描述

1.2 Optimization

RoMe的优化主要分为两部分:

第一部分是相机位姿的优化,相机位姿优化的主要是相机到车体的标定;

第二部分网格的优化,这部分优化的主要是三角形网格节点中存储的RGB、语义以及Elevation MLP,作者使用先Pytorch3D完成渲染,然后再图片上构建损失函数,渲染部分为: [ C j , S j , D j , Mask  j ] = MeshRender ⁡ ( π j , M ) \left[C_j, S_j, D_j, \text { Mask }_j\right]=\operatorname{MeshRender}\left(\pi_j, M\right) [Cj,Sj,Dj, Mask j]=MeshRender(πj,M)其中 C j , S j C_j, S_j Cj,Sj D j D_j Dj分别代表第 j j j帧的RGB、语义和深度图, Mask  j \text { Mask }_j  Mask j指定了图片上需要监督的部分,具体的渲染过程作者也没有在论文里详述,只是介绍了下是如何定义Pytorch3D模型中pixel-to-faces、z-buffers等输入变量,因为笔者对这部分也不是很了解因此不再深入展开,渲染后构建的损失主要包括RGB损失和语义损失两部分: L color  = 1 N ∗ sum ⁡ ( Mask ⁡ j ) ∑ j = 1 N Mask ⁡ j ∗ ∣ C j − C ˉ j ∣ L_{\text {color }}=\frac{1}{N * \operatorname{sum}\left(\operatorname{Mask}_j\right)} \sum_{j=1}^N \operatorname{Mask}_j *\left|C_j-\bar{C}_j\right| Lcolor =Nsum(Maskj)1j=1NMaskj CjCˉj L sem  = 1 N ∗ sum ⁡ ( Mask  j ) ∑ j = 1 N Mask ⁡ j ∗ C E ( S j , S ˉ j ) L_{\text {sem }}=\frac{1}{N * \operatorname{sum}\left(\text { Mask }_j\right)} \sum_{j=1}^N \operatorname{Mask}_j * C E\left(S_j, \bar{S}_j\right) Lsem =Nsum( Mask j)1j=1NMaskjCE(Sj,Sˉj)

1.3 Experiments

RoMe在效果上做到了SOTA,其的训练速度如下(感觉还是比较慢的):
在这里插入图片描述
此外论文中提到如果光照变化强烈时RoMe的算法效果会变差

2. EMIE-MAP

EMIE-MAP发表于2024年CVPR,原论文为《EMIE-MAP: Large-Scale Road Surface Reconstruction Based on Explicit Mesh and Implicit Encoding》,RoMe在光照变化强烈时效果较差,本文就是旨在解决这个问题,算法流程如下:
在这里插入图片描述

2.1 Road Surface Representation based on Explicit mesh and Implicit Encoding

EMIE-MAP的基本数据结构和RoMe基本上是一致的,通过构建三角形网格,每个顶点上保存着位置信息、颜色和语义信息,下面我们来看下EMIE-MAP和RoME的主要区别,,

对于高度信息,RoMe是直接通过一个MLP输出实际地面高度,EMIE-MAP则是通过轨迹初始化一个地面高度,然后通过MLP输出实际地面高度与初始化地面高度的差值: z r = M L P h r ( P E ( x , y ) ) , z f = z 0 + z r z_r=M L P_{h r}(P E(x, y)), z_f=z_0+z_r zr=MLPhr(PE(x,y)),zf=z0+zr作者认为这样可减小拟合难度。

对于颜色信息,颜色信息EMIE-Map在顶点上记录的不是RGB,而是颜色的编码,然后不同相机使用不同的MLP对颜色编码进行解码才或者最终的RGB: r g b i = M L P r g b − i ( l c ) r g b_i=M L P_{r g b_{-} i}\left(l_c\right) rgbi=MLPrgbi(lc)颜色编码代码场景的物理属性,而MLP解码器则学习了不同相机的属性,因此可以解决不同相机曝光不同而导致渲染效果差的问题。

2.2 Optimizing Strategies

在数据采样策略上,作者使用了基于轨迹的采样策略来提高训练效率,具体来说就是将距离相近的轨迹点放入同一个Batch进行训练,因为训练过程会提取每个轨迹点前后80米的路面进行训练,相近的轨迹点在同一个Batch可以使得每次训练迭代都发生在一个小范围区域从而加收敛;

在渲染策略上,作者没有使用原始NeRF基于Volume的渲染策略,而是根据相机投影矩阵将顶点直接投影回图像进行渲染然后建立监督,这种方式可以进一步减少计算量。

在训练损失上,作者构建了如下训练损失: L total  = λ r g b L r g b + λ sem  L sem  + λ z L z + λ smooth  L smooth  L_{\text {total }}=\lambda_{r g b} L_{r g b}+\lambda_{\text {sem }} L_{\text {sem }}+\lambda_z L_z+\lambda_{\text {smooth }} L_{\text {smooth }} Ltotal =λrgbLrgb+λsem Lsem +λzLz+λsmooth Lsmooth 其中颜色和语义损失如下: L r g b = 1 ∣ M ∣ ∑ M ∣ C − C g t ∣ , L_{r g b}=\frac{1}{|M|} \sum M\left|C-C_{g t}\right|, Lrgb=M1MCCgt, L sem  = 1 ∣ M ∣ ∑ M ⋅ C E ( S , S g t ) ,  L_{\text {sem }}=\frac{1}{|M|} \sum M \cdot C E\left(S, S_{g t}\right) \text {, } Lsem =M1MCE(S,Sgt)如果有激光存在的话可以使用激光监督高度: L z = 1 ∣ M ∣ ∑ M ∣ z − z g t ∣ . L_z=\frac{1}{|M|} \sum M\left|z-z_{g t}\right| . Lz=M1Mzzgt.同时加上一个高度的平滑损失: L smooth  = ∑ i = 1 N ∑ j ∈ N ( i ) ∣ z i − z j ∣ 2 ,  L_{\text {smooth }}=\sum_{i=1}^N \sum_{j \in N(i)}\left|z_i-z_j\right|^2 \text {, } Lsmooth =i=1NjN(i)zizj2

2.3 Experiments

在PSNR上EMIE-MAP要全面超越RoMe:
在这里插入图片描述

从Ablation Study上我们可以看到,RGM MLP和颜色编码骑着至关重要的作用:在这里插入图片描述
从下图可以看到不同相机使用不同MLP训练渲染的地图颜色会不相同:
在这里插入图片描述

3. RoGS

RoGS发表于2024年,原论文名为《RoGS: Large Scale Road Surface Reconstruction based on 2D Gaussian Splatting》,这篇论文主要是受3D Gaussian Splatting的启发,通过2D Gaussian Spaltting的加速了道路重建的渲染效率和质量。算法流程如下:
在这里插入图片描述

3.1 Road Surface Representation Based on Guassian Surfels

在3D Gaussian Spaltting中我们将3D Gassian建模为: G ( p ) = e − 1 2 p T Σ − 1 p G(p)=e^{-\frac{1}{2} p^T \Sigma^{-1} p} G(p)=e21pTΣ1p其中 Σ \Sigma Σ为3D协方差, p p p为中心坐标,为了方便进行优化,将协方差定义为: Σ = R S S T R T \Sigma=R S S^T R^T Σ=RSSTRT其中 S = Diag ⁡ ( s x , s y , s z ) S=\operatorname{Diag}\left(s_x, s_y, s_z\right) S=Diag(sx,sy,sz),当我们将 s z s_z sz设置为 0 0 0时就得到一个2D Gaussian Surfel,每个2D Gaussian Surfel村出的信息包括: Θ = { ( x , y , z ) , ( r , g , b ) , ( s x , s y ) , α , R , Sem  } \Theta=\left\{(x, y, z),(r, g, b),\left(s_x, s_y\right), \alpha, R, \text { Sem }\right\} Θ={(x,y,z),(r,g,b),(sx,sy),α,R, Sem }其中 ( r , g , b ) (r, g, b) (r,g,b)表示颜色, α \alpha α表示透明度,在初始化阶段,高度 z z z和协方差的旋转矩阵 R R R都和轨迹点的高度以及位姿保持一致。

3.2 Optimization

2D Gaussian Surfel的渲染方式和3D Gasussian Splatting保持一致,即通过世界到相机的变换矩阵 W W W以及投影矩阵的仿射近似 J J J对协方差进行投影 Σ ′ = J W Σ W T J T \Sigma^{\prime}=J W \Sigma W^T J^T Σ=JWΣWTJT然后对深度排序进行渲染: c ( p ) = ∑ k = 1 K c k α k g k ( p ) ∏ i = 1 k − 1 ( 1 − α i g i ( p ) ) \mathbf{c}(p)=\sum_{k=1}^K \mathbf{c}_k \alpha_k g_k(p) \prod_{i=1}^{k-1}\left(1-\alpha_i g_i(p)\right) c(p)=k=1Kckαkgk(p)i=1k1(1αigi(p))由于我们有可能通过不同的相机进行渲染,因为还针对不同相机的曝光参数映入了两个可学习参数 α \alpha α b b b做最后的输出: c ′ ( p ) = e a ⋅ c ( p ) + b \mathbf{c}^{\prime}(p)=e^a \cdot \mathbf{c}(p)+b c(p)=eac(p)+b损失函数和EMIE-MAP是保持一致的,即 L total  = λ color  L color  + λ sem  L sem  + λ smooth  L smooth  + λ z L z L_{\text {total }}=\lambda_{\text {color }} L_{\text {color }}+\lambda_{\text {sem }} L_{\text {sem }}+\lambda_{\text {smooth }} L_{\text {smooth }}+\lambda_z L_z Ltotal =λcolor Lcolor +λsem Lsem +λsmooth Lsmooth +λzLz

3.3 Experiments

如下是RoMe和RoGS的结果对比:
在这里插入图片描述
可以看到RoGS有15倍的速度提升,同时在渲染效果上也有变好,如下是结果对比图:
在这里插入图片描述
在论文中作者并没有展示多相机渲染的效果

以上就是最近看的三篇使用NeRF对路面进行重建的算法,在实际的工程应用中,其实用传统算法就能达到一个不错的基本面,NeRF Like的方法或者之后在纯视觉方案或者多相机重建这种更难的任务上能发挥作用吧

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

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

相关文章

在 CI/CD Pipeline 中实施持续测试的最佳实践!

随着软件开发周期的不断加快,持续集成(CI)和持续交付/部署(CD)已经成为现代软件开发的重要组成部分。在这一过程中,持续测试的实施对于确保代码质量、提高发布效率至关重要。本文将详细介绍在CI/CD流水线中…

JVM:JavaAgent技术

文章目录 一、Java工具的介绍二、Java Agent技术1、介绍2、静态加载模式3、动态加载模式 三、搭建java agent静态加载模式环境1、创建maven项目2、编写类和premain方法3、编写MANIFEST.MF文件4、使用maven-assembly-plugin进行打包5、创建Spring Boot应用 一、Java工具的介绍 …

mac数据恢复软件哪个好用 macbook数据恢复专业软件下载 mac数据恢复概率大吗 苹果电脑数据恢复软件哪个好

作为办公的必需品,mac的普及率虽然比不上其他品牌的windows操作系统,但是使用人群也一致居高不下,因此,mac数据丢失的问题也时常发生。当数据丢失以后,如何找回数据成了一大难题。 一、Mac数据恢复概率大吗 一般情况下…

配置mysql8.0.21版本docker-compose启动容器

1. 总览 2 docker-compose.xml配置 version: 3 services:mysql:image: 192.168.188.131:8000/mysqlrestart: alwaysvolumes:- ./data:/var/lib/mysql- ./my.cnf:/etc/mysql/my.cnf- ./mysql-files:/var/lib/mysql-files- ./log/mysql:/var/log/mysqlenvironment:MYSQL_ROOT_PA…

huawei USG6001v1学习----NAT和智能选路

目录 1.NAT的分类 2.智能选路 1.就近选路 2.策略路由 3.智能选路 NAT:(Network Address Translation,网络地址转换) 指网络地址转换,1994年提出的。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局…

【MySQL】一些业务场景常见的查询,比如实现多表字段同步,递归查询等

目录 快速加注释多表关联查询更新多个字段循环查询子级方法1:递归查询方法2:循环查询 快速加注释 使用ALTER TABLE语句可以修改表结构,包括添加注释。以下是添加注释的语法: ALTER TABLE 表名 MODIFY COLUMN 列名 列类型 COMMEN…

【数据结构初阶】顺序表三道经典算法题(详解+图例)

Hello!很高兴又见到你了~~~ 看看今天要学点什么来充实大脑吧—— 目录 1、移除元素 【思路图解】 【总结】 2、删除有序数组中的重复项 【思路图解】 【总结】 3、合并两个有序数组 【思路图解】 【总结】 至此结束,Show Time! 1、…

TCP/IP协议,以及对等网络通信原理!

TCP/IP模型协议分层 应用层: HTTP:超文本传输协议(网站访问WEB)(Apache、nginx)(IIS) FTP:文件传输协议(网络文件传输) TFTP:简单文件传输协议&#xff0…

神经网络理论(机器学习)

motivation 如果逻辑回归的特征有很多,会造出现一些列问题,比如: 线性假设的限制: 逻辑回归是基于线性假设的分类模型,即认为特征与输出之间的关系是线性的。如果特征非常多或者特征与输出之间的关系是非线性的&#…

【云原生】Kubernetes微服务Istio:介绍、原理、应用及实战案例

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

数据恢复篇:适用于 Android 视频恢复的 6 个工具

在智能手机这个动态的世界里,每一刻都被捕捉并以数字方式存储,丢失珍贵的视频可能是一种令人心碎的经历。不必担心,因为 Android 生态系统提供了大量旨在挽救这些珍贵回忆的视频恢复应用程序。 这些应用程序是强大的工具,旨在挽救…

MongoDB文档整理

过往mongodb文档: https://blog.csdn.net/qq_46921028/article/details/123361633https://blog.csdn.net/qq_46921028/article/details/131136935https://blog.csdn.net/qq_46921028/article/details/139247847 1. MongoDB前瞻 1、MongoDB概述: MongoDB是…

华为智慧交通-高速公路视频云联网解决方案

华为高速公路视频云联网解决方案摘要: 智慧高速愿景智慧高速旨在实现人、车、路互信协同,提供更安全、高效、便捷的出行体验。通过全路段感知、全过程管控、全天候通行,以及智慧路段、服务区的建设,实现数字化、知识型、安全型、高…

[经验] 孙叔敖举于海,百里奚举于市的翻译 #学习方法#学习方法#微信

孙叔敖举于海,百里奚举于市的翻译 1、孙叔敖举于海 孙叔敖,春秋时期鲁国大夫,是古代中国的著名政治家和军事家,他被誉为“孔子之后”的大贤。 孙叔敖的主要贡献在于他的外交策略和军事管理能力。在他的领导下,鲁国积极扩张其疆…

前端学习(三)之CSS

一、什么是CSS html定义网页的结构和信息(骨架血肉)css定义网页的样式(衣服)js定义用户和网页的交互逻辑(动作) 通过CSS,可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式&…

pig4cloud启动流程

环境 SpringBoot版本:2.7.16 SpringSecurity版本:5.7.11 pig4cloud版本:3.7.1-JDK8 流程图 概述 pig4cloud是对SpringSecurity的实现,其工作原理脱离不了SpringSecurity;pig4cloud启动首先SecurityAutoConfigurati…

9.11和9.9哪个大?

没问题 文心一言 通义千问

Puromycin(嘌呤霉素)— pac基因筛选抗生素

Puromycin是由Streptomyces alboniger(白黑链霉菌)产生的一种氨基糖苷类抗生素,可抑制原核细胞和真核细胞的肽基转移。Puromycin可抑制革兰氏阳性菌、多种动物细胞和昆虫细胞的生长,但是真菌和革兰氏阴性菌对Puromycin具有抗性&am…

大屏系统类优质UI风格

大屏系统类优质UI风格

C 语言回调函数

回调函数的概念 您的理解是正确的。pFunCallBack 是一种函数指针类型,它定义了函数的签名(即函数的参数类型和返回类型)。当我们说 pFunCallBack pFun,我们是在声明一个变量 pFun,其类型是 pFunCallBack —— 即一个函…