当前位置: 首页 > news >正文

自动驾驶三维重建

大概八成估计是未来的科研方向了

文章目录

    • 自动驾驶中的NeRF
      • [4]CLONeR:
      • Urban Radiance Fields
      • [6]S-NERF
      • Block-NeRF
      • Switch-NeRF
      • SceneRF
      • Behind the Scenes
    • 大规模与自动驾驶场景重建:3D高斯
      • VastGaussian
      • Periodic Vibration Gaussian(复旦大学)
      • DrivingGaussian

自动驾驶中的NeRF

在这里插入图片描述
自动驾驶领域的NeRF方法,大部分是在做自动驾驶场景里的环境重建,对大规模无边界场景的重建
自动驾驶和Nerf的交集目前停留在深度估计和环境重建上面
想要做城市级别的场景重建,要用到多个MLP,在重建的过程中可以用雷达作为监督,但实际上雷达能够直接提供空间网格的占用信息,用这一点搭建基于体素的混合隐式场景表达是个很好的思路
未来的思路:要让Nerf和占用网格结合在一起,这样才能真正进入自动驾驶的核心系统中
在这里插入图片描述

[2] Plenoxels: Radiance Fields without Neural Networks, CVPR 2022,arXiv:2112.05131
[3] Grid-Centric Traffic Scenario Perception for Autonomous Driving: A Comprehensive Review, 2023, arXiv:2303.01212
[4] CLONeR: Camera-Lidar Fusion for Occupancy Grid-aided Neural Representations, 2022, arxiv 2209.01194
[5] Urban Radiance Fields, CVPR 2022, arXiv:2111.14643
[6] S-NeRF: Neural Radiance Fields for Street, ICLR 2023, arXiv:2303.00749
[7] Block-NeRF: Scalable Large Scene Neural View Synthesis, CVPR 2022, arXiv:2202.05263
[8] Switch-NeRF: Learning Scene Decomposition with Mixture of experts for Large-sacle Neural Radiance Fields, ICLR 2023, https://openreview.net/pdf?id=PQ2zoIZqvm
[9] SceneRF: Self-Supervised Monocular 3D Scene Reconstruction with Radiance Fields, 2023, arXiv:2212.02501
[10] Behind the Scenes: Density Fields for Single View Reconstruction, 2023, arXiv:2301.07668

[4]CLONeR:

使用占用网格,与自动驾驶联系紧密
在室外的无边界场景里面,NeRF的采样射线并不知道自己该在哪儿终止,于是用占用网格来作为辅助,让NeRF在被占据的(存在场景几何的地方采样),这相较于原版NeRF粗糙的均匀采样会更好

缺点:用两个MLP+一个占用网格地图表示一个大场景,NeRF那边已经有体素里储存特征向量,这样的混合场景表达方法来做类似的事情
改进点:让占用网格储存特征向量,这样在保留新视角合成能力的同时,还能实现地图扩展,不受MLP限制

在这里插入图片描述

Urban Radiance Fields

实现了对城市级场景的重建
解决:采集的图像里光照条件会不一致,作者对图像的曝光进行隐式的编码,再用神经网络将它转化为一个颜色仿射变换,让图像能够有一致的外观
对于无边界的采样,采用圆拱形结构来建模天空
在训练的时候用了一个语义分割,把天空在图像中的位置给mask出来
对画面里动态的人或者车,也用语义模型mask掉
用一个MLP来存储大型的室外场景,显然MLP容量有限,在一系列的场景数据到来的时候,网络会更倾向于学到后面的数据,或者渲染出这些场景混在一起的样子(遗忘问题)
解决问题:1.用多个MLP 2.不用MLP换成点云体素之类的表达方式
在这里插入图片描述

[6]S-NERF

在这里插入图片描述

在重建自动驾驶场景的背景同时,也重建了路上移动的车辆
同样是用相机和雷达两种传感器,把背景和车辆分开建模
对于背景,S-NeRF用了一个半径参数来确定地图边界,然后把地图的内容归一化到这个边界里面
对于车辆,为了得到车辆的Nerf模型,S-NeRF先用一个3D目标检测得到车辆的bounding box,然后把和目标车辆相关的视角,变换到以车辆为中心的坐标系下,这样对于一辆车可以得到2到6张照片
为了得到更好的效果,S-NERF先用一个现有方法从这几个视角的图像和雷达点云里去生成粗糙的mesh,从中渲染出一个稠密的深度图来做监督,背景已经用语义分割模型去除掉了
S-NeRF还设计了一些深度补全的方法来从含有噪声的稀疏的雷达点云获得稠密的高质量的深度图
缺点:单个MLP对大型场景的拟合能力
在这里插入图片描述

Block-NeRF

把场景分解成多个单独的NeRF分开训练,从而让建模能够扩展到任意大的场景,允许每个场景的Block单独更新
虚线黄圈是每个NeRF的可见半径,针对target view的目标位置,如果它处于某个NeRF的可见半径内,那就去渲染一张RGB图,并根据距离预测一个能见度,如果能见度太低就会被舍弃,最后根据能见度和渲染的RGB,把所有可见的NeRF得到的图像融合成为target view的RGB图

在这里插入图片描述和原本NeRF的区别:左下角加上了曝光和外观编码,这样让MLP去学到输入图像的光照条件,从而让建模过程不受光照变化的影响
在这里插入图片描述
缺点:对NeRF本身没有多少改进,仍然会收到NeRF重建缺陷的制约,比如需要很多训练数据,不能实时,还需要手工设置这些MLP的位置,不能自适应调整去扩展

Switch-NeRF

实现了一个端到端的用基于学习的场景分解方法的大规模场景NeRF重建
在这里插入图片描述
对于Switch-NeRF来说,MoE是这样实现的:
从左下角生成了一个3d采样点,把这个采样点的位置进行编码得到PE(x),PE(x)的值经过一个门控网络得知它应该被送往专家2去重建
因为专家2是负责这个PE(x)位置重建的,就是一个MLP
专家2的输出结果再接一个head去预测得到RGB和体密度
也就是对于大规模场景的重建,Switch-NeRF把地图划分为很多个MLP来储存,为了把这些MLP组织起来,搭建了这个MoE系统,让每个专家负责一个MLP,通过训练过程学习该怎么给各个专家分配任务,同时也培养了每个专家的重建能力,最终协作实现重建
在这里插入图片描述

SceneRF

借助NeRF来实现单目重建的方法,具有新视角合成和新深度合成

在这里插入图片描述
从输入图像里面提取特征体积,划定重建范围,然后在这个范围内沿着一条假想的路径去生成多个新视角,对每个新视角合成一个新深度,用这些深度去估计一个三位重建的结果,从而去和ground truth求loss来优化
作者设计了一个概率射线采样策略,把沿着每条射线的连续密度通过MLP转换为一个一维高斯混合,通过学习能够让这些高斯混合的比较大的值接近真实的表面位置,这样就能显著减少采样点
这里的监督就来自NeRF对颜色和深度的预测,作者实现每条线仅用64个点,就能完成100米射线上的采样
NeRF的渲染是被设定在一定体积内的,也就是场景里面的特征体积,为了跳出这个限定的特征体积,作者提出了带有球形解码器的U-Net用来放大视场,生成原图像视场之外的图像和深度
具有一定的泛化能力

Behind the Scenes

从输入的图像里去预测一个隐式密度场来描述当前视角下的平截头体范围内的体密度分布,这个密度场里不储存颜色信息,在渲染新视角时,像素的颜色是从输入图像里变换过来的
这篇论文的工作:在生成隐式密度场的编解码器上
在这里插入图片描述

大规模与自动驾驶场景重建:3D高斯

3D高斯工作的辛苦整理 github仓库
近期工作有:
VastGaussian:用来重建大规模场景
Street Gaussian :建模动态的城市场景
DrivingGaussian:重建动态的自动驾驶场景
Periodic Vibration Gaussian:动态城市场景重建和实时渲染
都是基于3D GS的大规模室外场景重建方法,后3篇是针对自动驾驶场景做的重建(动态内容)
在这里插入图片描述

VastGaussian

第一个基于3D GS的高质量的,并且能够实时渲染的大规模场景重建方法
对标的是Mega-NeRF和Switch-NeRF,属于NeRF时代的大规模场景重建方法
利用分区域的逐步构建辐射场的方法来减少计算压力
用解耦的外观模型来去除光照对建模的影响
在这里插入图片描述
直接在3d gs模型里渲染出来的图,它不考虑光照,所以和GT图像之间是有误差的,即便建模很准确,光照也会造成误差(漂浮的光斑)
解决方法是把模型和光照解耦,模型渲染出来之后的内容用CNN添加光照信息,做外观修正之后就能和GT图像保持一致
这时候求误差就不会受到光照变化的干扰,这样模型就能够专注地去学习几何,以及一个光照比较平均的外观

在这里插入图片描述

Periodic Vibration Gaussian(复旦大学)

自动驾驶下的场景重建,但是多了动态物体和视角的限制
主打的是动态的城市街景重建
对于高斯点来说,均值是它所在的位置,PVG这样的建模能偶控制它的移动,建模它在不同时刻出现在不同的位置
不透明度可以看作是它是否可见,也让它与时间建立关联
PVG思路是让时间参与建模,相当于建模每一时刻的场景,但并不是作用在整个场景上的,并不是每个时刻都建一个模型出来,而是精确地作用在每个高斯点上,作用在表示位置的均值和表示可见性的不透明度上
在这里插入图片描述
前景的动态物体就可以用短生命周期的PVG来建模
静态的背景物体就可以用长生命周期的PVG来表示

具体流程是这样的:
先查询t-▲t时刻的状态,在这个时刻下去计算一个速度v,蓝色箭头就是v的方向
v乘以▲t就是点该移动的距离,用这个v来预测t时刻下的PVG点的位置,拿这个位置来做渲染
把渲染结果和t时刻的GT数据求误差
并不是直接拿t时刻的PVG点来做渲染,而是用▲t之前的点去预测t时刻的状态,再拿预测的t时刻的点做t时刻下的训练的监督,相当于动态过程参与训练,从而对运动有更好的学习效果
在这里插入图片描述

DrivingGaussian

相关文章:

自动驾驶三维重建

大概八成估计是未来的科研方向了 文章目录 自动驾驶中的NeRF[4]CLONeR:Urban Radiance Fields[6]S-NERFBlock-NeRFSwitch-NeRFSceneRFBehind the Scenes 大规模与自动驾驶场景重建:3D高斯VastGaussianPeriodic Vibration Gaussian(复旦大学)…...

30分钟学会css

CSS 基本语法 CSS(Cascading Style Sheets)是一种样式表语言,用于描述 HTML(或 XML)文档的呈现。它可以控制网页元素的颜色、字体、布局等外观样式,实现内容与表现的分离,让网页设计更加灵活和…...

vue路由模式面试题

vue路由模式 1.路由的模式有哪些?有什么区别? history和hash模式 区别: 1.表现的形态不同: 在地址栏url中:hash模式中带有**#**号,history没有 2.请求错误时表现不同: 在hash模式中,对于404地址请求时,不会进行请求 但是在history模式中,对于404请求时,仍然会进行请求…...

Python 开发框架搭建简单博客系统:代码实践与应用

在当今数字化时代,博客作为一种流行的信息分享和交流平台,拥有广泛的受众。Python 以其强大的功能和丰富的库,为构建博客系统提供了理想的技术支持。本文将详细介绍如何利用 Python 开发框架搭建一个简单博客系统,包括功能实现、代…...

如何在 VSCode 中配置 C++ 开发环境:详细教程

如何在 VSCode 中配置 C 开发环境:详细教程 在软件开发的过程中,选择一个合适的开发环境是非常重要的。Visual Studio Code(VSCode)作为一款轻量级的代码编辑器,凭借其强大的扩展性和灵活性,受到许多开发者…...

三甲医院等级评审八维数据分析应用(一)--组织、制度、管理可视化篇

一、引言 1.1 研究背景与意义 在当今医疗领域,三甲医院作为医疗服务的核心载体,肩负着保障民众健康、推动医学进步的重任。随着信息技术的飞速发展,数据已成为医院运营管理、医疗质量提升以及科学决策的关键要素。三甲医院等级评审作为衡量医院综合实力与服务水平的重要标…...

2024 年度总结|勇敢去探索~

写作这件事,果然是一旦中断,就很难再拾起来。但年度总结这么有意义的话题,思来想去,万万不能落下。 工作 得益于同事们的帮衬和认可,年初的时候,我的角色发生了变化:需要开始承担部门内的一些…...

2024年, Milvus 社区的那些事

随着跨年钟声响起,2024 年告一段落。这一年,Milvus GitHub Stars 正式突破 3 万大关,Docker 下载量突破6700w 次,达到一个新的里程碑,在开源向量数据库领域继续引领前行。在这遥遥领先的数据背后,不妨让我们…...

vue代理问题

vue代理问题 场景:前后端分离项目问题,在前端中请求接口,返回数据这个过程,但是在这个过程中,前端会有两个环境,一个是开发环境,一个是生产环境. 在开发环境中请求接口可能会遇到跨域问题,比如请求的端口是3000,当前端口是8080,这时候就会遇到跨域问题,或者ip不同,也会存在跨…...

Git快速入门(三)·远程仓库GitHub以及Gitee的使用

目录 1. 远程仓库GitHub 1.1 登录 1.2 创建库 1.3 创建文件 1.4 修改文件 1.5 创建分支 1.6 删除库 1.7 将远程仓库下载到本地 1.7.1 关联登录 1.7.2 克隆 1.7.3 通过GitHub Desktop更改远程库 2. 远程仓库Gitee 2.1 登录 2.2 创建文件 2.3 关联…...

[开源]C++代码分享

一,声明 被人水平有限,开源只是为了分享。勿喷!!!还请大佬指点。 二,代码 // --------------------------------------------------------- 头文件 ----------------------------------------------- #in…...

CSS3——3. 书写格式二

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--css书写&#xff1a;--><!--1. 属性名:属性值--><!--2.属性值是对属性的相关描述--><!--3.属性名必须是…...

PHP语言的计算机基础

计算机基础与PHP语言入门 在当今信息技术高速发展的时代&#xff0c;计算机已经成为我们日常生活中不可或缺的重要工具。学习计算机基础知识&#xff0c;不仅能增强我们对信息技术的理解&#xff0c;还会为我们后续学习编程语言打下良好的基础。本文将以PHP语言为切入点&#…...

第 23 章 JSON

第 23 章 JSON 23.1 语法 JSON 语法支持表示 3 种类型的值。 ❑ 简单值&#xff1a;字符串、数值、布尔值和 null 可以在 JSON 中出现&#xff0c;就像在 JavaScript 中一样。特殊值 undefined 不可以。 ❑ 对象&#xff1a;第一种复杂数据类型&#xff0c;对象表示有序键/值…...

Java 正则表达式入门与应用(详细版)

正则表达式&#xff08;Regular Expression&#xff0c;简称Regex&#xff09;是一种文本模式匹配工具&#xff0c;在许多编程语言中都得到了广泛应用。Java 作为一种强大的编程语言&#xff0c;提供了对正则表达式的内建支持&#xff0c;使得在字符串处理、数据验证和文本解析…...

洛谷:P1540 [NOIP2010 提高组] 机器翻译

[NOIP2010 提高组] 机器翻译 题目背景 NOIP2010 提高组 T1 题目描述 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于…...

基于AT89C51单片机的可暂停八路抢答器设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90196607?spm1001.2014.3001.5503 C15 部分参考设计如下&#xff1a; 摘要 随着社会进步和科技发展&#xff0c;电子设备在各类活动中的应用日益普遍&#xff0c…...

面试题解,Java中的“对象”剖析

一、说一说JVM中对象的内存布局&#xff1f;new一个对象到底占多大内存&#xff1f; 话不多说&#xff0c;看下图&#xff0c;对象的内存布局图 一个对象的内存布局主要由三部分组成&#xff1a;对象头&#xff08;Object Header&#xff09;、实例数据&#xff08;Instance D…...

行为模式3.迭代器模式

行为型模式 模板方法模式&#xff08;Template Method Pattern&#xff09;命令模式&#xff08;Command Pattern&#xff09;迭代器模式&#xff08;Iterator Pattern&#xff09;观察者模式&#xff08;Observer Pattern&#xff09;中介者模式&#xff08;Mediator Pattern…...

第8章 DMA控制器

DMA的基本概念 DMA是用硬件实现不再通过CPU的&#xff0c;计算机内存储器与I/O设备之间的直接数据传送技术。该硬件称为DMA控制器&#xff08;简称DMAC)&#xff0c;用来控制数据的输入和输出&#xff0c;复杂性堪比CPU。 DMA方式可实现: 数据存储器RAM→I/O端口的DMA读传送I/O…...

后端java开发路由接口并部署服务器(四)

一、安装IntelliJ IDEA&#xff0c;安装包下载 1、官网下载 2、网盘资源 安装包下载完成后进行傻瓜式下一步安装就可以了 打开IntelliJ IDEA&#xff0c;输入网盘资源文件内容 三、汉化处理 插件搜索chinese&#xff0c;就会找到相应的插件安装重启软件即可 四、新建后端j…...

检索增强生成 和思维链 结合: 如何创建检索增强思维链 (RAT)?

论文地址&#xff1a;https://arxiv.org/pdf/2403.05313 Github地址&#xff1a;https://github.com/CraftJarvis/RAT 想象一下&#xff0c;一个人工智能助手可以像莎士比亚一样写作&#xff0c;像专家一样推理。这听起来很了不起&#xff0c;对吧&#xff1f;但是&#xff0…...

在 SQL 中,区分 聚合列 和 非聚合列(nonaggregated column)

文章目录 1. 什么是聚合列&#xff1f;2. 什么是非聚合列&#xff1f;3. 在 GROUP BY 查询中的非聚合列问题示例解决方案 4. 为什么 only_full_group_by 要求非聚合列出现在 GROUP BY 中&#xff1f;5. 如何判断一个列是聚合列还是非聚合列&#xff1f;6. 总结 在 SQL 中&#…...

单元测试3.0+ @RunWith(JMockit.class)+mock+injectable+Expectations

Jmockit使用笔记_基本功能使用Tested_Injectable_Mocked_Expectations_jmockit.class-CSDN博客 静态变量直接赋值就好&#xff0c;没必要mock了 测试框架Jmockit集合junit使用 RunWith(JMockit.class) 写在测试案例类上的注解 Tested 在测试案例中,写在我们要测试的类上…...

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…...

MotionCtrl: A Unified and Flexible Motion Controller for Video Generation 论文解读

目录 一、概述 二、相关工作 三、前置知识 1、LVDM Introduction 2、LVDM Method 3、LVDM for Short Video Generation 4、Hierarchical LVDM for Long Video Generation 5、训练细节 6、推理过程 四、MotionCtrl 1、CMCM 2、OMCM 3、训练策略 五、实验 一、概述…...

LINUX线程操作

文章目录 线程的定义LINUX中的线程模型一对一模型多对一模型多对多模型 线程实现原理线程的状态新建状态&#xff08;New&#xff09;就绪状态&#xff08;Runnable&#xff09;运行状态&#xff08;Running&#xff09;阻塞状态&#xff08;Blocked&#xff09;死亡状态&#…...

在Lua中,Metatable元表如何操作?

Lua中的Metatable&#xff08;元表&#xff09;是一个强大的特性&#xff0c;它允许我们改变表&#xff08;table&#xff09;的行为。下面是对Lua中的Metatable元表的详细介绍&#xff0c;包括语法规则和示例。 1.Metatable介绍 Metatable是一个普通的Lua表&#xff0c;它用于…...

4D LUT: Learnable Context-Aware 4D LookupTable for Image Enhancement

摘要&#xff1a;图像增强旨在通过修饰色彩和色调来提高照片的审美视觉质量&#xff0c;是专业数码摄影的必备技术。 近年来&#xff0c;基于深度学习的图像增强算法取得了可喜的性能并越来越受欢迎。 然而&#xff0c;典型的努力尝试为所有像素的颜色转换构建统一的增强器。 它…...

瑞芯微rk3568平台 openwrt系统适配ffmpeg硬件解码(rkmpp)

瑞芯微rk3568平台 openwrt系统适配ffmpeg硬件解码(rkmpp) RK3568及rkmpp介绍编译安装mpp获取源码交叉编译安装 libdrmlibdrm-2.4.89 make 方式编译(cannot find -lcairo, 不推荐)下载源码编译编译错误: multiple definition of `nouveau debug‘错误cannot find -lcairo:…...