RoGS: Large Scale Road Surface Reconstruction based on 2D Gaussian Splatting

news2024/12/26 21:04:21

RoGS

  • 摘要
  • 简介
  • RoGS
  • 基于高斯面元的道路表面表示(Road Surface Representation Based on Guassian Surfel)
    • 2D Gaussian Surfel:
    • Road Surface Modeling:
    • Why use 2D Gaussian Surfels?
  • 基于轨迹的初始化(Trajectory-base Initialization)
  • 优化(Optimization)
    • 颜色和语义渲染(RGB Rendering and Semantic Rendering)
    • 训练损失(loss)
  • 参考文献

摘要

道路表面重建在自动驾驶中起着至关重要的作用,可用于车道感知和自动标注任务。近年来,基于网格的道路表面重建算法表现出了令人瞩目的重建效果。然而,这些基于网格的方法存在处理速度慢和渲染质量差的缺点。相比之下,3D 高斯点技术(3DGS)在渲染速度和质量方面表现出色。尽管 3DGS 采用显式高斯球来表示场景,但其无法直接表示场景的几何信息。为了解决这一限制,我们提出了一种基于二维高斯点(2DGS)的新型大规模道路表面重建方法,称为 RoGS。道路的几何形状通过二维高斯面元显式表示,每个面元存储颜色、语义和几何信息。与高斯球相比,高斯面元更贴近道路的物理现实。与以点云为基础初始化高斯球的传统方法不同,我们引入了一种基于轨迹的高斯面元初始化方法。得益于高斯面元的显式表示和良好的初始化,我们的方法显著提高了处理速度,同时改善了重建质量。

简介

本文提出了一种基于高斯点技术 (Gaussian Splatting) 的大规模道路表面重建方法 RoGS,通过高斯面元 (Gaussian Surfels) 实现高效且高质量的道路表面重建。具体而言,我们设计了一种更贴合道路表面物理特性的二维高斯表示。每个面元包含道路坐标、颜色、语义信息以及其大小和方向。此外,不同于其他利用点云或随机初始化的 3D 高斯方法,我们提出了一种基于轨迹的初始化方法。
在假设车辆轨迹与道路表面平行的先验条件下,我们通过以下步骤进行初始化:

  • 使用轨迹范围初始化道路区域范围;
  • 使用扩展后的轨迹点坐标初始化高斯面元坐标;
  • 使用轨迹曲率初始化高斯面元方向。

这种初始化方法充分利用了车辆轨迹与道路表面之间的关系,更有助于后续的道路表面几何纹理优化。初始化后,我们利用观测到的 RGB 语义图来监督由二维高斯面元渲染的 RGB 图像,同时使用真实的激光雷达点云优化道路表面几何形状。最终,我们获得了具有颜色和语义信息的三维道路表面重建结果。
本文的贡献总结如下:

  • 提出 RoGS:一种基于高斯点技术的大规模道路表面重建方法,其核心是二维高斯面元表示。该
    示符合道路表面的物理特性,包含颜色、语义和几何信息。
  • 提出基于轨迹的初始化方法:使得二维高斯道路表面更贴近物理现实,促进后续优化。
  • 优异实验结果:在 KITTI 和 Nuscenes 数据集上,我们的方法实现了高效且高质量的道路表面重建。在不依赖激光雷达的情况下,与 RoMe 在 PSNR 和 mIoU 指标上表现相近,并在海拔误差指标上实现了 17.62% 的误差降低。更重要的是,我们的方法在速度上实现了 15.84 倍的提升!

RoGS

在这里插入图片描述
RoGS主要包含三个组建:基于高斯面元的道路表面表示、基于轨迹初始化、优化。

  • 左侧展示了基于 2DGS 的道路表示。蓝色曲线表示轨迹。我们使用二维高斯面元来表示真实的道路表面,这些面元存储了位置、尺度、旋转、颜色、不透明度和语义信息。可优化的参数以蓝色标出
  • 中间部分展示了基于轨迹的初始化方法。对于每个高斯面元,其高度(z 坐标)和旋转角度通过轨迹中的最近点进行初始化。
  • 最后,通过渲染生成的颜色和语义使用真实数据进行监督。此外,为了进一步优化结果,还可以引入激光雷达点云对高度进行监督。标记为L*的部分表示可选的损失函数。

基于高斯面元的道路表面表示(Road Surface Representation Based on Guassian Surfel)

2D Gaussian Surfel:

在3DGS里,高斯球 (Gaussian Sphere) 用三维协方差矩阵 Σ Σ Σ和其中心坐标 p p p表示:
G ( p ) = e − 1 2 p T ∑ − 1 p G(p) = e^{- {\frac{1}{2}} p^{T} {\sum}^{-1}p } G(p)=e21pT1p
三维协防差矩阵 ∑ \sum 是由旋转矩阵 R R R和沿三个方向的尺度 s = ( s x , s y , s z ) T s=(s_{x},s_{y},s_{z})^{T} s=(sx,sy,sz)T决定的,为简化表示,尺度 s s s被表示为角对称矩阵 S S S,定义如下:
在这里插入图片描述
通过旋转矩阵R和尺度矩阵S,协防差矩阵 ∑ \sum 表示为:
∑ = R S R T \sum = RSR^{T} =RSRT
这里,S定义了高斯球的基本形状,而 R将该形状旋转到三维空间中的正确方向。这种表示方法允许高斯球通过简单的矩阵运算在几何和空间上进行灵活的调整和优化,非常适合复杂场景中的建模和重建任务。
与之前2DGS[1]类似,通过将高斯球在 z 方向的尺度设置为 0 来获得高斯面元 (Gaussian Surfel)。为了表示纹理信息和语义信息,我们对高斯面元的颜色 (RGB)、不透明度和语义进行参数化。最终,一个高斯面元可以显式地参数化为:
Θ = { ( x , y , z ) , ( r , g , b ) , ( s x , s y ) , α , R , S e m } \Theta = \left \{ (x,y,z),(r,g,b),(s_{x},s_{y}),\alpha,R,Sem \right \} Θ={(x,y,z),(r,g,b),(sx,sy),α,R,Sem}
其中:

  • ( x , y , z ) (x,y,z) (x,y,z)表示高斯面元的中心坐标;
  • ( r , g , b ) (r,g,b) (r,g,b)表示颜色(RGB);
  • ( s x , s y (s_{x},s_{y} (sx,sy分别表示在 x 和 y 方向上的尺度;
  • α \alpha α表示不透明度;
  • R , S e m R,Sem R,Sem表示旋转和语义信息。

在实际应用中,语义 S e m Sem Sem 使用一个长度等于语义类别数量的向量来表示,这样能够准确标注每个高斯面元的语义类别。这种显式的参数化方法使得高斯面元能够在表示道路表面时同时包含几何、纹理和语义信息,有助于提高重建精度和渲染效果.

Road Surface Modeling:

在这里插入图片描述
道路表面建模依赖于相机的姿态和图像的语义信息。相机的姿态通过车辆的里程计和外部参数获得。语义结果主要用于去除非道路元素。与 RoMe 类似,我们也使用 Mask2Former来获取语义结果。
具体流程如下:

  1. 相机姿态:
    第一帧的姿态作为参考系统,后续帧的相机姿态通过车辆里程计和外部参数获得。
  2. 车辆轨迹和道路区域初始化:
    将车辆轨迹投影到xy-平面上,并在此基础上通过扩展一定的范围来初始化道路区域。
  3. 道路区域离散化:
    道路表面区域被离散化为均匀分布的点,这些点的分布具有一定的分辨率。
    这些点被用作高斯面元的中心,如图 3 所示。
  4. 语义信息处理:
    语义结果通过 Mask2Former 提取,主要用于去除图像中的非道路元素,从而帮助更准确地建模道路表面。
    这种方法通过结合相机姿态、语义信息和车辆轨迹,能够有效地初始化道路区域并为高斯面元提供基础,最终实现高质量的道路表面重建。

Why use 2D Gaussian Surfels?

基于网格的道路表面重建通常会遇到一些显著的问题,比如长时间的优化过程。3DGS 通过使用三维高斯原语来表示世界场景,并采用可微分的体积点绘制技术进行图像渲染。这种方法显著加速了渲染速度,并减少了优化时间。尽管 3DGS使用显式的高斯球体来表示场景,它主要关注渲染质量,并未充分利用高斯球体的显式特性来恢复场景几何信息。
为了解决这一局限性,我们采用了 二维高斯面元 (2D Gaussian Surfels) 来建模道路表面。与高斯球体相比,高斯面元表示更贴近道路的物理现实,从而能够更精确地表示道路的几何形态。

基于轨迹的初始化(Trajectory-base Initialization)

在通过将车辆轨迹投影到 xy-平面上获得初始的高斯面元坐标后,由于 z 被设置为 0,它在高度上与道路表面不对齐。因此,对于每个高斯面元,我们通过轨迹上最近点的高度来初始化其 z-坐标。由于车辆轨迹通常与道路平行,高斯面元的旋转 R 被初始化为轨迹上最近点的姿态。这种初始化方法充分利用了车辆轨迹与道路表面之间的关系,有助于后续优化道路表面几何纹理的过程。

优化(Optimization)

颜色和语义渲染(RGB Rendering and Semantic Rendering)

为了使用高斯表面渲染图像,整个过程涉及几个步骤,将三维表面转换为二维图像空间、计算颜色值,并调整相机的曝光差异。以下是详细过程:

  1. 从世界坐标系到相机坐标系的转换:
    最初定义在世界坐标系中的高斯表面,首先需要使用世界到相机的变换矩阵 W W W将其转换为相机坐标系中的表面:
    X C = W X W X_{C} = W X_{W} XC=WXW
  2. 投影到图像平面:
    将转换后的高斯表面通过局部仿射变换 J J J投影到图像平面上。这个投影生成一个新的协方差矩阵 ∑ ′ \sum ^{\prime } , 该矩阵表示高斯表面在二维图像空间中的不确定性和分布。
    新的协方差矩阵通过以下公式计算:
    ∑ ′ = J W ∑ W W T J T {\sum }^{\prime } = JW{\sum}_{W}W^{T}J^{T} =JWWWTJT

其中, ∑ W {\sum}_{W} W是原始的高斯表面在世界坐标系中的协方差矩阵。

  1. 在图像平面上形成椭圆:
    由于 ∑ \sum 表示的是二维协方差,它在图像平面上形成一个椭圆,得到方法是忽略原始三维协方差矩阵的第三行和第三列。这个椭圆描述了高斯表面在二维平面中的不确定性。
  2. 颜色表示:
    对于图像中的每个像素,所有 K K K个投影到该像素的高斯表面根据其原始深度值按升序排列。最终的像素颜色 c ( p ) c(p) c(p)是通过加权这些高斯表面的颜色来计算的,权重由它们的透明度 α k \alpha_{k} αk
    ​决定,并且考虑了表面间的相互作用。颜色的计算公式如下:
    c ( p ) = ∑ k = 1 K c k α k g k ( p ) ∏ i = 1 k − 1 ( 1 − α i g i ( p ) ) c\left ( p \right ) =\sum_{k=1}^{K} c_{k} \alpha_{k}g_{k}(p)\prod_{i=1}^{k-1}(1- \alpha_{i}g_{i}(p)) c(p)=k=1Kckαkgk(p)i=1k1(1αigi(p))
    其中:
  • c k c_{k} ck是第k个高斯表面的颜色
  • α k \alpha_{k} αk是第 k 个高斯表面的透明度
  • g k ( p ) g_{k}(p) gk(p)是第 k 个高斯表面在图像像素p上的投影
  • 乘积项确保了透明度正确混合,考虑了前后表面之间的影响。

在渲染语义时,颜色 c 被替换为语义向量,该向量可能代表不同的类别,例如“汽车”、“行人”等。
5. 曝光补偿:
在现实世界中,不同相机的曝光水平不同。为了在使用多个相机重建路面时考虑这一点,为每个相机引入了可学习的曝光参数a和 b. 这项调整补偿了相机之间的曝光差异,并应用于最终的颜色输出。
其中:

  • a 是曝光参数
  • b 是为曝光补偿添加的偏移量,
  • c ( p ) c(p) c(p)是像素p 的原始颜色值。

这种方法可以渲染出既具真实感的图像(包括颜色和透明度),又可以处理语义信息,同时考虑到相机之间的曝光差异。

训练损失(loss)

颜色损失通过将渲染图像与真实观察图像进行比较来监督渲染的颜色输出。这个损失可以通过像素级的差异来定义,通常使用均方误差(MSE)或L1损失。此损失鼓励网络生成与实际观察场景一致的逼真图像。
L c o l o r = 1 ∣ M ∣ ∑ m i ∣ c i − c i ˉ ∣ L_{color}= \frac{1}{\left | M \right | } \sum m_{i}\left |c_{i}-\bar{c_{i}} \right | Lcolor=M1miciciˉ
语义损失通过将渲染的语义输出与通过Mask2Former推断得到的语义结果进行比较来监督渲染的语义。Mask2Former是一个用于语义分割任务的先进模型。渲染的语义输出是将图像像素分类为不同类别(例如,道路、汽车、行人等)。使用语义掩码M来排除非道路元素,从而确保模型专注于道路相关的区域。语义损失可以定义为:
L s e m = 1 ∣ M ∣ ∑ m i ⋅ C E ( s e m i , s e m i ˉ ) L_{sem}= \frac{1}{\left | M \right | } \sum m_{i} \cdot CE(sem_{i},\bar{sem_{i}} ) Lsem=M1miCE(semi,semiˉ)
其中:

  • CE(CrossEntropy) 是预测语义标签与真实标签之间的交叉熵损失。
  • m i m_{i} mi是语义掩码(0或1),作用是移除非道路元素
  • ∣ M ∣ {\left | M \right |} M表示mask M中有效的像素个数

由于道路表面通常较为平滑,引入了高程平滑度损失,以确保重建的道路表面保持平滑和连续。该损失惩罚高程的突变变化,促使模型生成更加逼真和平滑的道路表面。平滑度损失定义为:
L s m o o t h = 1 N ∑ i = 1 N ∑ j ∈ N ( i ) ∣ ∣ z i − z j ∣ ∣ 2 2 L_{smooth}= \frac{1}{ N } \sum_{i=1}^{N} \sum_{j\in N(i)}^{} \left || z_{i}-z_{j} \right ||_{2}^{2} Lsmooth=N1i=1NjN(i)zizj22

其中 N ( i ) N(i) N(i)表示K个最近邻点。此外,为了提高重建的质量,LiDAR的点云也可以用来做高程的监督:
L z = 1 N ∑ i = 1 N ∣ ∣ z i − z i ˉ ∣ ∣ 2 2 L_{z}= \frac{1}{ N } \sum_{i=1}^{N} \left || z_{i}-\bar{z_{i}} \right ||_{2}^{2} Lz=N1i=1Nziziˉ22

通过查询xy平面中点云的最近邻高程 ,我们可以确保预测的高程与实际的地形数据(来自附近的LiDAR点云)对齐。

最终的总损失是多个损失项的加权和,包括颜色损失、语义损失、高程平滑度损失和LiDAR监督损失。整体损失函数可以定义为:
在这里插入图片描述

参考文献

[1] Binbin Huang, Zehao Yu, Anpei Chen, Andreas Geiger, and Shenghua Gao. 2d gaussian
splatting for geometrically accurate radiance fields. arXiv preprint arXiv:2403.17888, 2024.

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

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

相关文章

使用 postman 传递 binary 类型的图片到后端接口遇到的坑

使用 psotman 传 binary 类型图片报错: -2024-12-04 [http-nio-9090-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver Resolved [org.springframework.http.converter.HttpMessageNotReadableException: Required r…

微服务通讯系统(2)

软件设计及核心代码展示 数据库表设计,ES搜索表设计,Redis键值对设计 数据库表设计 (1)用户表设计 这里的ID是指的是在系统中用户是第几个注册的(从1开始) user_id是指用户的唯一ID是通过uuid()函数生成…

修复docker启动失败:Failed to start Docker Application Container Engine

配置了镜像源之后,运行sudo systemctl restart docker.service失败,提示让运行systemctl status docker.service或journalctl -xeu docker.service查看详细信息。 运行后者发现有如下日志: 红色区域是我设置的一个镜像源这个日志的意思就是…

神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型

(一) pytorch 官网内置的网络模型 图像处理: Models and pre-trained weights — Torchvision 0.20 documentation (二) CIFAR10数据集的分类网络模型(仅前向传播): 下方的网络模型图片有误,已做修改,具…

微信小程序wx.showShareMenu配置全局分享功能

在app.js文件中配置如下即可: onLaunch() {//开启分享功能this.overShare()},/*** 开启朋友圈分享功能* 监听路由切换/自动执行*/overShare() {wx.onAppRoute((res) > {// console.log(route, res)let pages getCurrentPages()let view pages[pages.length - …

Java刷题常见的集合类,各种函数的使用以及常见的类型转化等等

前言 相信大家在刷算法题的过程中,好不容易想出来大概的思路,也知道去用哪个集合类,但各个集合类的一些命令都长得太像,很容易将他们弄错,并且在各集合之间的转化也是特别烦人,还有很多实用的函数都知道可…

用 NotePad++ 运行 Java 程序

安装包 网盘链接 下载得到的安装包: 安装步骤 双击安装包开始安装. 安装完成: 配置编码 用 NotePad 写 Java 程序时, 需要设置编码. 在 设置, 首选项, 新建 中进行设置, 可以对每一个新建的文件起作用. 之前写的文件不起作用. 在文件名处右键, 可以快速打开 CMD 窗口, 且路…

【金猿CIO展】复旦大学附属中山医院计算机网络中心副主任张俊钦:推进数据安全风险评估,防范化解数据安全风险,筑牢医疗数据安全防线...

‍ 张俊钦 本文由复旦大学附属中山医院计算机网络中心副主任张俊钦撰写并投递参与“数据猿年度金猿策划活动——2024大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 数据要素时代,医疗数据已成为医院运营与决策的重要基石…

计算机视觉——相机标定(Camera Calibration)

文章目录 1. 简介2. 原理3. 相机模型3.1 四大坐标系3.2 坐标系间的转换关系3.2.1 世界坐标系到相机坐标系3.2.2 相机坐标系到图像坐标系3.2.3 像素坐标系转换为图像坐标系3.2.4 世界坐标转换为像素坐标 3.3 畸变3.3.1 畸变类型3.3.1.1 径向畸变(Radial Distortion&a…

Go学习:编译器(编写程序时应该注意的点)

一、注意: LiteIDE工具: (1)创建项目后,同一个目录下的go文件 只能有一个 main函数,如果多个文件都有main函数,会出现编译错误。例如: (2)如果一个目录下多…

【计算机网络】实验9: 路由信息协议RIP

实验9 路由信息协议RIP 一、实验目的 本实验的主要目的是深入理解RIP(路由信息协议)的工作原理,以便掌握其在网络中的应用。通过对RIP的学习,我们将探讨该协议如何实现路由选择和信息传播,从而确保数据包能够在网络中…

如何选择适合的开源架构框架

如何选择适合的开源架构框架 一、引言二、明确项目需求 —— 筑牢基石(一)功能需求剖析 —— 精准锁定核心(二)性能要求考量 —— 追求极致卓越(三)可扩展性需求 —— 放眼未来蓝图 三、评估开源框架特性 —…

MongoDB-BSON 协议与类型

前言: MongoDB 是一个高性能、无模式的 NoSQL 数据库,广泛应用于大数据处理和实时数据存储。作为一个数据库系统,MongoDB 的核心之一就是其使用的 BSON(Binary JSON)格式,它用于存储数据以及在客户端和数据…

jmeter如何导出中文版的测试报告?

文章目录 0、初始步骤:把报告模板换成中文形式1、首先添加一份聚合报告2、然后点开【聚合报告】3,生成报告3.1 选择【工具】-【generate HTML report】3.2 【generate HTML report】参数详解3.3 、最后点击 【generate report】直接生成。 声明&#xff…

等差数列末项计算

等差数列末项计算 C语言代码C 代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 给出一个等差数列的前两项a1,a2,求第n项是多少。 输入 一行,包含三个整数a1,a2&#x…

芯科科技突破性超低功耗Wi-Fi 6和低功耗蓝牙5.4模块加速设备部署

致力于以安全、智能无线连接技术,建立更互联世界的全球领导厂商Silicon Labs(亦称“芯科科技”,今日宣布推出SiWx917Y超低功耗Wi-Fi 6和低功耗蓝牙(Bluetooth LE)5.4模块。 作为成功的第二代无线开发平台的新产品&…

Golang内存模型总结1(mspan、mcache、mcentral、mheap)

1.内存模型 1.1 操作系统存储模型 从上到下分别是寄存器、高速缓存、内存、磁盘,其中越往上速度越快,空间越小,价格越高。 关键词是多级模型和动态切换 1.2 虚拟内存与物理内存 虚拟内存是一种内存管理技术,允许计算机使用比…

重生之我在异世界学编程之C语言:操作符篇

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文1. 算术操作符2. 关系&#xff0…

深度学习图像增强介绍

目录 一、引言二、常用数据增广方法三、图像变换类3.1 AutoAugment3.2 RandAugment 四、图像裁剪类4.1 Cutout4.2 RandomErasing4.3 HideAndSeek 五、图像混叠5.1 Mixup5.2 Cutmix 六、结论 一、引言 在图像分类任务中,图像数据的增广是一种常用的正则化方法&#…

HBU深度学习实验14-循环神经网络(1)

前言,预备知识 循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络.在循环神经网络中,神经元不但可以接受其他神经元的信息,也可以接受自身的信息,形成具…