当前位置: 首页 > 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;并且结构体和位段在内存中是如何存储的。 文章目录结构体结构体类型的声明结构体特殊的声明结构体变量的定义和初始化结构体成员的访问结构的自引用结构体内存对齐结构体传参位段什么是位段位段的内存分配位段的…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中&#xff0c;Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染&#xff08;即CPU被阻塞&#xff09;&#xff0c;这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改&#xff0c;实现简单cat命令 输出信息到显示器&#xff0c;你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

Modbus RTU与Modbus TCP详解指南

目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...

阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)

cd /home 进入home盘 安装虚拟环境&#xff1a; 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境&#xff1a; virtualenv myenv 3、激活虚拟环境&#xff08;激活环境可以在当前环境下安装包&#xff09; source myenv/bin/activate 此时&#xff0c;终端…...

uniapp获取当前位置和经纬度信息

1.1. 获取当前位置和经纬度信息&#xff08;需要配置高的SDK&#xff09; 调用uni-app官方API中的uni.chooseLocation()&#xff0c;即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟

众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了&#xff0c;延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp &#xff0c;边缘服务器拉流推送到云服务器 …...

零基础在实践中学习网络安全-皮卡丘靶场(第十一期-目录遍历模块)

经过前面几期的内容我们学习了很多网络安全的知识&#xff0c;而这期内容就涉及到了前面的第六期-RCE模块&#xff0c;第七期-File inclusion模块&#xff0c;第八期-Unsafe Filedownload模块。 什么是"遍历"呢&#xff1a;对学过一些开发语言的朋友来说应该知道&…...