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

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...

第22节 Node.js JXcore 打包

Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本&#xff0c;基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...

java+webstock

maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...

小白的进阶之路系列之十四----人工智能从初步到精通pytorch综合运用的讲解第七部分

通过示例学习PyTorch 本教程通过独立的示例介绍PyTorch的基本概念。 PyTorch的核心提供了两个主要特性: 一个n维张量,类似于numpy,但可以在gpu上运行 用于构建和训练神经网络的自动微分 我们将使用一个三阶多项式来拟合问题 y = s i n ( x ) y=sin(x) y=sin(x),作为我们的…...