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

READ: Large-Scale Neural Scene Rendering for Autonomous Driving

READ: Large-Scale Neural Scene Rendering for Autonomous Driving :面向自动驾驶的大规模神经场景绘制
门卷积

https://www.jianshu.com/p/09fc8490104d
https://blog.csdn.net/weixin_44996354/article/details/117409438

摘要:论文提出了一种大规模神经绘制自动驾驶场景合成方法,使得在PC机上通过多种采样方案合成大规模驾驶场景成为可能。为了表示驾驶场景,提出了一个𝜔−𝑛𝑒𝑡渲染网络,用于从稀疏点云中学习神经描述符。该模型不仅可以合成真实感驾驶场景,而且可以对驾驶场景进行拼接和编辑。
介绍:
基于神经辐射场(NeRF)的方法在多视点真实感场景合成中取得了很好的效果,NeRFW 利用潜在优化编码和分割动态来合成野外场景。与纯粹依赖于每场景拟合的基于NeRF的方法不同,NPBG 从原始点云数据中学习神经描述符,对局部几何和外观进行编码,避免了经典点云在空场景空间中的采样光线,反映了真实的世界场景的几何特征。基于点的神经绘制方法通过三维点云信息初始化场景,可以用较少的捕获图像合成较大的场景。
主要工作:
论文提出了神经场景绘制方法,通过高效的蒙特卡罗采样、大规模点云筛选和patch sampling,实现了大规模驾驶场景的合成。为了从稀疏点云合成真实感驾驶场景,提出了一种𝜔−𝑛𝑒𝑡网络,通过基本门模块过滤神经元描述符,并采用不同策略融合相同尺度和不同尺度的特征。通过𝜔−𝑛𝑒𝑡,我们的模型不仅可以合成真实感场景,还可以通过神经描述子编辑和拼接场景。此外,我们还能够更新特定区域,并将它们与原始场景缝合在一起。场景编辑可用于合成来自不同视角的各种驾驶场景数据,甚至用于交通紧急情况。

1、Overview

输入一组输入图像和点云𝑃= {𝑝1,𝑝2,,,𝑝N}以及相机参数,得到模拟场景,可以拼接编辑。主要分为三部分:光栅化、稀疏点云采样,𝜔−𝑛𝑒𝑡渲染网络。pipeline如下图
在这里插入图片描述
首先对输入图像进行配准,然后通过特征点匹配和稠密构造得到场景的点云。我们以几种分辨率光栅化点。给定点云𝑃、可学习的神经描述符𝐷和摄像机参数𝐶,我们提出𝜔-𝑛𝑒𝑡渲染网络通过过滤从数据中学习的神经描述符并融合相同尺度和不同尺度的特征来合成真实的驾驶场景。

稀疏3D点云𝑃𝑖可以通过经典的sfm和MVS pipeline获得,每个点pi有一个神经描述符编码场景内容(与NPBG相同)。点云P中的每个点有位置信息:𝑝𝑖= {𝑥𝑖,𝑦𝑖,𝑧𝑖},外观特征通过图像像素的RGB值映射到对应的三维空间得到的,神经描述符从输入点云计算,即表示局部几何形状和光度特性的本征矢量。
通过将梯度传播到输入端来更新这些特征,从而使神经描述符的特征能够从数据中自动学习。给定摄像机的内外参数,可以通过设计8维神经描述符来表示RGB值,从而从不同的角度观察场景。在光栅化阶段,针孔摄像机𝐶采集𝑊×𝐻的图像,构造一个由光栅化图像组成的金字塔,{𝑆𝑡}(t=1~4),空间尺寸为W/2t ×H/2t该金字塔是由通过深度测试的点的神经描述符分配给每个像素而形成的。然后,在摄像机的全投影变换下将其投影到像素上。
本质上,渲染网络表示了一个局部3D功能𝑓,它输出在点𝑥具体的神经场景描述𝑓(𝑖, 𝑥) , 由其局部框架中的神经点建模。

2、Sampling with Sparse Point Cloud

为了减少内存使用提高训练效率,利用稀疏采样策略,从原始可用像素的1/4生成稀疏点云,从而只得到训练点云总数的25%。

筛选出被遮挡的点云

为了避免更新被遮挡点的描述符,近似每个点的可见性。通过构造一个Z缓冲区来使用最近的光栅化方案,仅保留像素位置处具有最低Z值的点。神经描述符避开远离当前帧的相机的点以更好地合成场景。从而减少了计算遮挡点云的计算量,大大提高了训练效率。类似于NPBG的操作。

蒙特卡罗抽样

由于场景中点云的分布不同,区域点云丰富的地方,具有明显的特征。对于天空或动态物体的区域,由于缺乏明显的特征或特征点较少,相应的区域点云较少。为了有效地训练,提出了动态训练策略,利用蒙特卡洛方法对大量驾驶场景数据进行采样。对于图像集𝑆𝑒 在训练阶段𝑒,
在这里插入图片描述
𝑄(𝐼𝑒)是图像𝐼𝑒的综合质量,是通过感知损失来计算的。采用每个阶段性能最差的Top 𝑛 个样本作为训练数据。该模型通过动态采样的训练策略,加强了对点云稀疏区域的学习,减少了整体训练时间。

Patch sampling

通过一种采样策略将整幅图像随机划分为多个patch(图像块),该策略可以根据GPU可用内存大小选择大小为𝑤×ℎ的随机patch。patch中像素的比例𝑤 × ℎ,占整个图像𝑊×𝐻的比例小于15%。给定如下的内参K
在这里插入图片描述
𝑓𝑥和𝑓𝑦分别表示𝑥和𝑦轴的焦距。(𝑐𝑥,𝑐𝑦)是主点相对于图像平面的位置。图像坐标系(Ox-y)与像素坐标系(Ou-v)(仿射变换)的转换矩阵
对于在Se中的每张图像I,patch集合 Sp通过以下策略获取,以确保场景中的所有区域都可以训练
在这里插入图片描述
其中𝛼是缩放比。它移动patch(𝑥Δ,𝑦Δ)以增强来自不同视图的场景的合成质量。

3、𝜔 − 𝑛𝑒𝑡

点云,尤其是外部重建方法,通常具有降低渲染质量的孔和异常值。受MIMOUNet 的启发,提出了𝜔-𝑛𝑒𝑡,一种基于稀疏点云合成新视图的绘制网络,它由三部分组成。
给定稀疏点云𝑃,绘制网络的目的是学习可靠的神经描述符来表示场景。然而,从点云学习的神经描述符仍然存在漏洞。为了解决这个问题,设计了一个基本的门模块来过滤不同尺度的神经描述符。
如下图所示。考虑到计算效率,首先采用3 × 3卷积层𝐶𝑂𝑁𝑉来提取神经元描述子的特征𝐷𝑖。通过sigmoid函数学习掩码以过滤神经描述符中的无效值。输出是(0,1)的取值范围,它表示特征在神经描述符中的重要性。为了提高学习效率,使用ELU激活函数。⊗ 表示元素乘法。将初始特征与过滤后的特征连接(©)为新特征。最后,使用一个额外的1 × 1卷积层来进一步细化级联特征。此外,引入门卷积以重新过滤融合的特征。
在这里插入图片描述
上图是基本门模块。从稀疏点云中学习的神经描述子可以有效地筛选出无效值。

Fusing features at different scales.

点云中缺少拓扑信息会导致 holes and bleeding。给定𝐹𝑎带有孔洞的神经描述符的𝐷𝑖特征,如下图中的红框所示。虽然𝐷𝑖具有更高的分辨率和精细的细节,但它仍然遭受更大的表面bleeding。对于没有值的特征块𝐹𝑎,可以在平均合并之后获得粗略值。𝐷𝑖+1的分辨率较低,但能够减少表面bleeding。
对于稀疏点云,在两种不同的尺度下融合特征仍然不能完全填充该孔。因此,提出了建议𝜔-𝑛𝑒𝑡融合多尺度特征。使用了四个尺度的神经描述符,以达到效率和准确性之间的折衷。该模型通过融合不同尺度下的特征,从数据中学习稀疏点云中缺失的点,从而合成出真实感的天空、远处物体等新视图。在上采样阶段,采用双线性插值代替转置卷积。这是因为转置卷积基本上是可学习的上采样,并且可学习的参数招致额外的计算。
在这里插入图片描述

Fusing features at the same scale

神经描述符𝐷𝑖+𝑖 的特征𝐹𝑏,来自𝐷𝑖 通过平均池化操作。神经描述符𝐷𝑖+𝑖的 下采样特征𝐹𝑑 ,将其自身与最后一个1×1层特征连接,用于细节增强以保留丢失的信息。同时, 大小为𝐻/2 ×𝑊/2的特征𝐹𝑐,由使用门卷积的门模块的神经描述符𝐷𝑖获得的。融合相同尺度的𝐹𝑐 和𝐹𝑑 特征可以利用特征之间的互补信息,其中融合特征是𝐹𝑓𝑢𝑠𝑖𝑜𝑛 = 𝐹𝑐 + 𝐹𝑑 ⊗ 𝐹𝑐 , 如图上的红圈所示。

4、Scene Editing and Stitching

由于我们提出的模型从点云中学习神经描述符来表示场景,因此可以通过改变训练好的神经描述符来编辑场景。

相关文章:

READ: Large-Scale Neural Scene Rendering for Autonomous Driving

READ: Large-Scale Neural Scene Rendering for Autonomous Driving :面向自动驾驶的大规模神经场景绘制 门卷积 https://www.jianshu.com/p/09fc8490104d https://blog.csdn.net/weixin_44996354/article/details/117409438摘要:论文提出了一种大规模神…...

Linux环境C语言开发基础

C语言是一门面向过程的计算机编程语言,与C、C#、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言诞生于美国的贝尔实验室,由丹…...

string类(上)

string类(上)1.标准库中的string类2.string类对象的常见构造①string()②string(const char* s)③string(size_t n,char c)④string(const string&s)⑤string(const string& str,size_t pos,size_t lennpos)⑥string(const char* s,s…...

ElasticSearch快速入门详解(亲测好用,强烈推荐收藏)

3.快速入门 接下来快速看下elasticsearch的使用 3.1.概念 Elasticsearch虽然是一种NoSql库,但最终的目的是存储数据、检索数据。因此很多概念与MySQL类似的。 ES中的概念数据库概念说明索引库(indices)数据库(Database)ES中可…...

出入了解——Vue.js

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…...

MySQL8 双主(主主)架构部署实战

前言 大家好,我是 沐风晓月 本文收录于《数据库入门到精通系列》专栏, 更多内容可以关注我的csdn博客。 本文主要讲解MySQL主主架构实战,在开始之前需要根据下面的提示来配置环境: Linux基础命令不熟参考: 《linux基本功-基础…...

【数据结构】第三站:单链表

目录 一、顺序表的缺陷 二、链表 1.链表的概念以及结构 2.链表的分类 3.单链表的逻辑结构与物理结构 三、单链表的实现 1.单链表的定义 2.单链表的接口定义 3.单链表的接口实现 四、单链表的实现完整代码 一、顺序表的缺陷 在上一篇文章中,我们了解了顺序…...

【蓝桥杯2020】七段码

【题目描述】 七段码 HUSTOJ 题目导出文件 [蓝桥杯2020] 第十一届蓝桥杯第二次省赛—填空题E题 七段码 小蓝要用七段码数码管来表示一种特殊的文字。 上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a, b, c,…...

Spark读取JDBC调优

Spark读取JDBC调优,如何调参一、场景构建二、参数设置1.灵活运用分区列实际问题:工作中需要读取一个存放了三四年历史数据的pg数仓表(缺少主键id),需要将数据同步到阿里云 MC中,Spark在使用JDBC读取关系型数…...

【文心一言】什么是文心一言,如何获得内测和使用方法。

文心一言什么是文心一言怎么获得内测资格接下来就给大家展示一下文学创作商业文案创作数理逻辑推算中文理解多模态生成用python写一个九九乘法表写古诗前言: 🏠个人主页:以山河作礼。 📝​📝:本文章是帮助大家了解文心…...

CentOS8服务篇10:FTP服务器配置与管理

一、安装与启动FTP服务器 1、安装VSFTP服务器所需要的安装包 #yum -y install vsftpd 2、查看配置文件参数 Vim /etc/vsftpd/vsftpd.conf (1)是否允许匿名登录 anonymous_enableYES 该行用于控制是否允许匿名用户登录。 (2&…...

笔试强训3.14

一、选择题 1.以下说法错误的是(C) A.数组是一个对象 B.数组不是一种原生类 C.数组的大小可以任意改变 D.在Java中,数组存储在堆中连续内存空间里 ​ 相关知识点:原生/内置数组是那八个,其他的都是引用的,借…...

elasticsearch 环境搭建和基本操作

参考资料 适合后端编程人员的elasticsearch快速实战教程 ElasticSearch最新实战教程 ElasticSearch配套笔记 自制搜索引擎 https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup.html restful风格的api REST 设计风格 例如以下springboot示例 RestContr…...

IDEA操作:Springboot项目打包为jar包并运行

在IDEA环境下对Springboot项目打包为jar包且在terminal运行操作 1、 2、 3、注意:在项目目录里创建一个用来存放jar包的文件夹(res),该路径不能使用IDEA设置的默认路径,必须手动创建。 4、 5、点击ok后加载运行包 (8…...

原理底层计划---JVM

二、JVM对空间大小怎么配置?各区域怎么划? 新生代:短时间生成,可以马上回收 老生代:少部分对象会存在很久,回收策略应不同 三、JVM哪些内存区域会发生内存溢出(程序计数器不会) …...

CSDN-猜年龄、纸牌三角形、排他平方数

猜年龄 原题链接:https://edu.csdn.net/skill/practice/algorithm-a413078fb6e74644b8c9f6e28896e377/2258 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议&#xf…...

【Linux】软件包管理器 yum

什么是软件包和软件包管理器 在 Linux 下需要安装软件时, 最原始的办法就是下载到程序的源代码, 进行编译得到可执行程序。但是这样太麻烦了,所以有些人就把一些常用的软件提前编译好, 做成软件包 ( 就相当于windows上的软件安装程序)放在服…...

一天吃透TCP面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...

zzu天梯赛选拔

C. NANA去上课 — 简单数学 需要记录上一步处在哪个位置 然后判断如果是同一侧移动距离就是abs&#xff08;x1 - x2&#xff09; 如果不同就是x1 x2 #include <iostream> #include <cmath> using namespace std; #define int long long signed main() {int n; c…...

【C语言】一篇让你彻底吃透(结构体与结构体位段)

本章重点 主要讲解结构体和位移动的使用和定义与声明&#xff0c;并且结构体和位段在内存中是如何存储的。 文章目录结构体结构体类型的声明结构体特殊的声明结构体变量的定义和初始化结构体成员的访问结构的自引用结构体内存对齐结构体传参位段什么是位段位段的内存分配位段的…...

数据结构之二叉树构建、广度/深度优先(前序、中序、后序)遍历

一、二叉树 1.1 树 说到树&#xff0c;我们暂时忘记学习&#xff0c;来看一下大自然的树&#xff1a; 哈哈 以上照片是自己拍的&#xff0c;大家凑合看看 回归正题&#xff0c;那么在数据结构中&#xff0c;树是什么呢&#xff0c;通过上面的图片大家也可以理解 树是一种非…...

“国产版ChatGPT”文心一言发布会现场Demo硬核复现

文章目录前言实验结果一、文学创作问题1 :《三体》的作者是哪里人&#xff1f;问题2&#xff1a;可以总结下三体的核心内容吗&#xff1f;如果要续写的话&#xff0c;可以从哪些角度出发&#xff1f;问题3&#xff1a;如何从哲学角度来进行续写&#xff1f;问题4&#xff1a;电…...

202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己,依心而行

202304读书笔记|《不被定义的女孩》——做最真实最漂亮的自己&#xff0c;依心而行《不被定义的女孩》作者ASEN&#xff0c;很棒的书。处处透露着洒脱&#xff0c;通透&#xff0c;悦己&#xff0c;阅世界的自由的氛围和态度&#xff01; 部分节选如下&#xff1a; 让自己活得…...

SpringBoot帮你优雅的关闭WEB应用程序

Graceful shutdown 应用 Graceful shutdown说明 Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and servlet-based web applications. It occurs as part of closing the applica…...

递归与递推

递归 直白理解&#xff1a;函数在其内部调用自身&#xff08;自己调用自己&#xff09;所有递归都可以采用递归搜索树来理解递归的特点&#xff1a; 一般来说代码较为简短&#xff0c;但是理解难度大一般时间和空间消耗较大&#xff0c;容易产生重复计算&#xff0c;可能爆栈 …...

使用<style scoped>导致的样式问题

问题描述&#xff1a; 今天使用开源组件库TDesign的自动补全组件时&#xff0c;遇到了一个样式失效问题&#xff0c;一开始怎么也找不到问题出在哪&#xff0c;后面一个偶然去掉了scoped&#xff0c;竟然发现样式竟然正常了&#xff0c;具体原因不知道在哪&#xff0c;有大佬知…...

Elasticsearch深入理解(十八)-集群关键指标及调优指南

1、CPU使用率 CPU使用率是指在一段时间内CPU执行程序的百分比&#xff0c;它是衡量系统资源利用率的一种指标。 1.1 详细说明&#xff1a; 在Elasticsearch中&#xff0c;高的CPU使用率通常意味着节点正在执行大量的计算任务&#xff0c;这可能是因为索引和搜索操作的负载较大…...

Transformer到底为何这么牛

从注意力机制&#xff08;attention&#xff09;开始&#xff0c;近两年提及最多的就是Transformer了&#xff0c;那么Transformer到底是什么机制&#xff0c;凭啥这么牛&#xff1f;各个领域都能用&#xff1f;一文带你揭开Transformer的神秘面纱。 目录 1.深度学习&#xff0…...

【Spring事务】声明式事务 使用详解

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 声明式事务一、编程式事务二、声明式事务&…...

学习28个案例总结

学习前 对于之前遇到的问题没有及时总结&#xff0c;导致做什么事情都是新的一样。没有把之前学习到接触到的内容应用上。通过这次对28个案例的学习。把之前遇到的问题总结成自己的经验&#xff0c;在以后的开发过程中避免踩重复性的坑。多看帮助少走弯路。 学习中 对28个案例…...