康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重建的关键突破。
一、3DGS技术概述与原理
1、3DGS的技术概述
3DGS是一种基于3D高斯分布的三维场景表示方法。通过将场景中的对象转化为多个3D高斯点,每个点包含位置、协方差矩阵和不透明度等信息,3DGS能够精确地表达复杂场景的几何形状和光照特性。
与传统的神经辐射场(NeRF)方法相比,3DGS在渲染速度和图像质量方面表现出色,弥补了NeRF在动态场景处理和细节保留上的不足。

图1:3DGS重建流程
2、3DGS的技术原理
在3DGS中,首先通过SfM(Structure from Motion)技术进行数据预处理,校准相机位置并恢复其内部和外部参数,生成稀疏点云。然后,基于这些点云初始化一组3D高斯点,每个高斯点的初始位置、协方差矩阵和不透明度都会进行设置。
训练过程中,3DGS通过反向传播不断优化这些高斯点的位置、形状和不透明度。值得注意的是,3DGS采用了自适应密度控制,能够在每次反向传播后去除那些不重要的高斯点,并根据需要对高斯点进行分裂或克隆,以保证场景重建的精度和细节。

图2:训练过程中高斯点的优化
二、3DGS在自动驾驶仿真中的应用
在自动驾驶领域,3DGS技术被广泛应用于高保真仿真场景的重建。通过将多视角图像转化为3D高斯点云,3DGS能够快速、精确地重建复杂的街道场景,为自动驾驶系统的训练和验证提供真实的虚拟环境。例如,Huang等人提出的S³Gaussian方法,通过自监督学习,从4D一致性中分解动态和静态元素,实现了高质量的街道场景重建。
此外,Zhou等人提出的DrivingGaussian方法,针对环视动态自动驾驶场景,发展了基于3D高斯的重建仿真技术。该方法能够有效建模复杂的多尺度背景和前景,提升了自动驾驶系统在复杂环境下的感知能力。

图3:S³Gaussian方法

图4:DrivingGaussian方法
1、3DGS的优势与挑战
(1)优势
高效性:通过显式建模方法,3DGS避免了传统神经网络训练中的计算开销,训练速度更快,渲染效率更高。
精度:3D高斯点可以细致地捕捉场景中的每个细节,从而实现高精度的三维重建。
实时性:3DGS支持实时渲染,适合需要快速响应的应用场景,如自动驾驶仿真。
(2)挑战
场景复杂度:对于极为复杂的三维场景,3DGS可能需要大量的高斯点,这会增加计算负担和内存消耗。
动态场景的支持:目前,3DGS主要集中在静态场景的重建,如何高效地处理动态场景中的物体变化,仍然是一个技术挑战。
三、aiSim的3DGS重建功能
aiSim仿真平台结合3DGS技术,可以提供强大的三维重建功能,极大地提升了自动驾驶仿真测试的效率和精度。
在aiSim中,3DGS被用于从多视角图像中重建复杂的三维场景。aiSim能够精确地捕捉环境的几何形状和光照特性,为自动驾驶系统提供高保真的虚拟环境。这种高精度的三维重建使得自动驾驶算法能够在仿真中进行更为真实的测试,减少了对实际道路测试的依赖。

图5:大FoV相机渲染出现非一致性(左)重建3DGS渲染方案后(右)
aiSim新构建的GGSR通用高斯泼溅渲染器优化了重建场景下光线追踪传感器的渲染效果,增强了广角镜头渲染下的一致性,并能减少伪影的产生,实现高保真度的3DGS重建场景兼容。
在重建的静态场景之上,aiSim支持自定义动态的场景交通流。通过添加动态实体,aiSim可以模拟交通流、行人行为等动态元素,为自动驾驶系统提供更为全面的测试场景。这种动态重建能力使得aiSim在验证自动驾驶系统的泛化能力和应对复杂场景的能力方面,展现出了巨大的优势。

图6:十字路口车辆起步场景
四、结语
3DGS作为一种新兴的三维场景重建技术,凭借其高效、精确和实时的特点,在自动驾驶仿真领域展现出了巨大的潜力。我们有理由相信,未来3DGS将为更多行业带来创新性的解决方案。
▍参考文献
1. 3D Gaussian Splatting for Real-Time Radiance Field Rendering
2. S3Gaussian: Self-Supervised Street Gaussians for Autonomous Driving
3. DrivingGaussian: Composite Gaussian Splatting for Surrounding Dynamic Autonomous Driving Scenes
我是分享自动驾驶技术的康谋
欢迎关注互动
期待与您的进一步交流
aiSim自动驾驶仿真平台 - 端到端智驾仿真工具 | 高保真环境模拟和场景重建 | 软件在环测试 | 康谋科技
https://keymotek.com/adas-simulator-aisim/
相关文章:
康谋分享 | 3DGS:革新自动驾驶仿真场景重建的关键技术
随着自动驾驶技术的迅猛发展,构建高保真、动态的仿真场景成为了行业的迫切需求。传统的三维重建方法在处理复杂场景时常常面临效率和精度的挑战。在此背景下,3D高斯点阵渲染(3DGS)技术应运而生,成为自动驾驶仿真场景重…...
【够用就好008】开新坑自学esb32烧录进军物联网和嵌入式
见字如面,这里是AKA AIGC创意人竹相左边。 学习使用了三年的AI工具,现在最大的自信就是业余时间可以学习任何自己感兴趣的事,感觉手搓火箭也不是梦。 今天开个新坑,也是逐步探索想要进入的新世界。物联网(IoT&#…...
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。
大白话JavaScript实现一个函数,将字符串中的每个单词首字母大写。 答题思路 理解需求:要写一个函数,它能接收一个字符串,然后把这个字符串里每个单词的第一个字母变成大写。分解步骤 拆分单词:一般单词之间是用空格隔…...
Go红队开发—格式导出
文章目录 输出功能CSV输出CSV 转 结构体结构体 转 CSV端口扫描结果使用CSV格式导出 HTML输出Sqlite输出nmap扫描 JSONmap转json结构体转jsonjson写入文件json编解码json转结构体json转mapjson转string练习:nmap扫描结果导出json格式 输出功能 在我们使用安全工具的…...
从零构建高可用MySQL自动化配置系统:核心技术、工具开发与企业级最佳实践
在现代企业级数据库管理中,手动配置 MySQL 已无法满足高效、稳定和可扩展的需求。本文从 MySQL 配置管理的核心原理 出发,深入剖析 自动化配置工具的架构设计、关键技术实现,并结合 企业级落地方案,帮助读者构建一套 高可用、智能化的 MySQL 自动化配置系统。无论是 DevOps…...
element-plus中table组件的使用
1、table组件的基本使用 注意: ①对象集合,要从后端查询。 ②prop是集合中的对象的属性名;label是表格表头的名称。 2、将性别一列的71转为男,72转为女 问题描述: 解决步骤: ①将el-table-column变成双标签…...
K8s 1.27.1 实战系列(三)安装网络插件
Kubernetes 的网络插件常见的有 Flannel 和 Calico ,这是两种主流的 CNI(容器网络接口)解决方案,它们在设计理念、实现方式、性能特征及适用场景上有显著差异。以下是两者的综合对比分析: 一、Flannel 和 Calico 1. 技术基础与网络实现 Flannel 核心机制:基于 Overlay …...
Java基础回顾 Day4
多线程相关 runnable接口实现,解决单继承的问题,因为继承Thread类就不能继承其他类了 Callable接口的特点是满足线程需要返回值和抛出异常的情况 在创建线程后的任何时候都可以重新设置,线程已经创建,可以使用 Thread.setPrior…...
Go加spy++隐藏窗口
最近发现有些软件的窗口就像狗皮膏药一样,关也关不掉,一点就要登录,属实是有点不爽了。 窗口的进程不能杀死,但是窗口我不想要。思路很简单,用 spy 找到要隐藏的窗口的句柄,然后调用 Windows 的 ShowWindo…...
Windows CMD 命令大全(综合开发整理版)
CMD Windows CMD 命令大全(综合整理版)基础操作与文件管理类系统维护与配置类网络与连接类开发者常用命令CMD 黑窗口使用技巧1. **效率操作**2. **高级功能**3. **开发者高效技巧**注意事项**微软官方文档****其他实用资源****如何高效使用官方文档**Windows CMD 命令大全(综…...
网络安全通信架构图
🍅 点击文末小卡片 ,免费获取网络安全全套资料,资料在手,涨薪更快 在安全通信里面我经常听到的2个东西就是SSL和TLS,这2个有什么区别呢?以及HTTPS是怎么通信的?包括对称加密、非对称加密、摘要、…...
当中国“智算心跳”与全球共振:九章云极DataCanvas首秀MWC 2025
3月3日,西班牙巴塞罗那,全球通信与科技领域的盛会“2025世界移动通信大会(MWC 2025)”正式拉开帷幕。中国人工智能基础设施领军企业九章云极DataCanvas公司以全球化战略视野与硬核技术实力,全方位、多维度地展示了在智…...
Clion快捷键、修改字体
文章目录 一、Clion快捷键1.撤销:crtl Z2.重做:crtl shift Z3.删除该行:crtl Y4.多行后退:选中多行 Tab5.多行缩进:选中多行 shift Tab 二、修改注释的斜体 一、Clion快捷键 1.撤销:crtl Z 2.重做…...
基于PySide6的CATIA零件自动化着色工具开发实践
引言 在汽车及航空制造领域,CATIA作为核心的CAD设计软件,其二次开发能力对提升设计效率具有重要意义。本文介绍一种基于Python的CATIA零件着色工具开发方案,通过PySide6实现GUI交互,结合COM接口操作实现零件着色自动化。该方案成…...
在Uniapp中实现特殊字符弹出框并插入输入框
在开发Uniapp项目时,我们经常会遇到需要用户输入特殊字符的场景。为了提升用户体验,我们可以封装一个特殊字符弹出框,用户点击键盘图标后弹出该字符集,选择字符后自动插入到输入框中。本文将详细介绍如何实现这一功能。 1. 功能概…...
golang dlv调试工具
golang dlv调试工具 在goland2022.2版本 中调试go程序报错 WARNING: undefined behavior - version of Delve is too old for Go version 1.20.7 (maximum supported version 1.19) 即使你go install了新的dlv也无济于事 分析得出Goland实际使用的是 Goland安装目录下dlv 例…...
深入解析 BitBake 日志机制:任务调度、日志记录与调试方法
1. 引言:为什么 BitBake 的日志机制至关重要? BitBake 是 Yocto 项目的核心构建工具,用于解析配方、管理任务依赖,并执行编译和打包任务。在 BitBake 构建过程中,日志记录机制不仅用于跟踪任务执行情况,还…...
数据结构链表的C++实现
在C中实现链表是一种常见的练习,有助于理解指针和动态内存分配的概念。下面是一个简单的单向链表(Singly Linked List)的实现示例,包括基本的操作如插入、删除和遍历。 单向链表 (Singly Linked List) 实现 1. 定义节点结构 首…...
《原型链的故事:JavaScript 对象模型的秘密》
原型链(Prototype Chain) 是 JavaScript 中实现继承的核心机制。每个对象都有一个内部属性 [[Prototype]](可以通过 __proto__ 访问),指向其原型对象。每个对象都有一个原型, 原型本身也是一个对象…...
Linux 配置静态 IP
一、简介 在 Linux CentOS 系统中默认动态分配 IP 地址,每次启动虚拟机服务都是不一样的 IP,因此要配置静态 IP 地址避免每次都发生变化,下面将介绍配置静态 IP 的详细步骤。 首先先理解一下动态 IP 和静态 IP 的概念: 动态 IP…...
【Python 数据结构 10.二叉树】
目录 一、二叉树的基本概念 1.二叉树的定义 2.二叉树的特点 3.特殊的二叉树 Ⅰ、斜树 Ⅱ、满二叉树 Ⅲ、完全二叉树 Ⅳ、完全二叉树和满二叉树的区别 4.二叉树的性质 5.二叉树的顺序存储 Ⅰ、完全二叉树 Ⅱ、非完全二叉树 Ⅲ、稀疏二叉树 6.二叉树的链式存储 7.二叉树的遍历概念…...
SwanLab简明教程:从萌新到高手
目录 1. 什么是SwanLab? 1.1 核心特性 2. 安装SwanLab 3. 登录SwanLab账号(云端版) 4. 5分钟快速上手 更多案例 5. SwanLab功能组件 5.1 图表视图 5.2 表格视图 5.3 硬件监控 5.4 环境记录 5.5 组织协同 6. 训练框架集成 6.1 基…...
SQLiteStudio:一款免费跨平台的SQLite管理工具
SQLiteStudio 是一款专门用于管理和操作 SQLite 数据库的免费工具。它提供直观的图形化界面,简化了数据库的创建、编辑、查询和维护,适合数据库开发者和数据分析师使用。 功能特性 SQLiteStudio 提供的主要功能包括: 免费开源,可…...
【智能体Agent】ReAct智能体的实现思路和关键技术
基于ReAct(Reasoning Acting)框架的自主智能体 import re from typing import List, Tuplefrom langchain_community.chat_message_histories.in_memory import ChatMessageHistory from langchain_core.language_models.chat_models import BaseChatM…...
python爬虫系列课程8:js浏览器window对象属性
python爬虫系列课程8:js浏览器window对象属性 一、JavaScript的组成二、document常见属性对象三、navigator对象一、JavaScript的组成 JavaScript可以分为三个部分:ECMAScript标准、DOM、BOM。 ECMAScript标准:即JS的基本语法,JavaScript的核心,描述了语言的基本语法和数…...
Java基础系列:深入理解八大基本数据类型及避坑指南
目录 一、基本数据类型概述 八大类型速查表 二、各类型详解与常见陷阱 1. 整型家族(byte/short/int/long) 2. 浮点型(float/double) 3. 字符型(char) 4. 布尔型(boolean) 三…...
贝塞尔曲线学习
1、一阶贝塞尔曲线 一阶贝塞尔曲线其实是一条直线——给定点 P0、P1,线性贝塞尔曲线就是一条两点之间的直线,公式如下: 一阶曲线很好理解, 就是根据t来线性插值。 void MainWindow::mousePressEvent(QMouseEvent *e) {list.append(e->pos…...
机器学习(六)
一,决策树: 简介: 决策树是一种通过构建类似树状的结构(颠倒的树),从根节点开始逐步对数据进行划分,最终在叶子节点做出预测结果的模型。 结构组成: 根节点:初始的数据集…...
kotlin高级用法总结
Kotlin 是一门功能强大且灵活的编程语言,除了基础语法外,它还提供了许多高级特性,可以帮助你编写更简洁、高效和可维护的代码。以下是 Kotlin 的一些高级用法,涵盖了协程、扩展函数、属性委托、内联类、反射等内容。 协程&#x…...
OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 - 慧知开源充电桩平台
OCPP扩展机制与自定义功能开发:协议灵活性设计与实践 引言 OCPP作为开放协议,其核心价值在于平衡标准化与可扩展性。面对不同充电桩厂商的硬件差异、区域能源政策及定制化业务需求,OCPP通过**扩展点(Extension Points)…...
