READ-自动驾驶大场景神经渲染

news/2024/5/9 20:22:50/文章来源:https://blog.csdn.net/CCChester/article/details/131031819

在这里插入图片描述
这是一个针对自动驾驶场景的神经渲染方案,提出了一种大规模神经渲染方法来合成自动驾驶场景(READ),这使得通过各种采样方案在PC上合成大规模驾驶场景成为可能。
在这里插入图片描述
疑问:文中提到基于nerf的方法和神经渲染方法,这两个方法不是一回事么?(与仅基于每个场景拟合的NeRF方法不同,神经渲染方法[27, 28, 31]可以通过神经纹理有效地初始化,这些神经纹理被存储为3D网格代理顶部的映射。)

由于模型容量受限、内存和计算存在约束,处理大规模驾驶场景仍然面临很大挑战。此外,要在渲染带有丰富建筑物、车道和路标的照片般逼真的视图时也相当困难,因为从少量输入图像获取的稀疏点云数据通常包含大量空洞。

本文提出的方法使得通过高效的Monte Carlo采样、大规模点云筛选和补丁采样来合成大规模驾驶场景成为可能。

创新之处

1、对于稀疏点云,我们通过多尺度特征融合来填补其缺失的区域。
2、我们提出了一种基于𝜔 − 𝑛𝑒𝑡网络的方法,用于从稀疏点云中合成逼真的驾驶场景。该方法通过基本门模块过滤神经描述符,并使用不同策略融合相同尺度和不同尺度的特征。
3、通过神经描述符编辑和缝合场景

提出的神经场景渲染方法旨在通过用点云表示驾驶场景来合成来自任意相机视点的照片真实感图像。

基于驾驶场景的点云数据,采用多种采样策略获取场景信息并降低计算成本,接着使用w-net来表示带有点云的驾驶场景并合成新场景;最后这些场景能够编辑及缝合以合成数据用于更大更丰富的驾驶场景。

框架

输入三个元素:已知的相机参数;一组驾驶场景的图片;一个点云数据(ply格式)
整个框架分为三个部分:光栅化?;稀疏点云采样;𝜔 − 𝑛𝑒𝑡 渲染网络
以下是光栅化一些细节
1、点云数据可以通过SFM,Multi-View Stereo算法获得,比如Agisoft Metashape软件-输入图像获取点云。

2、每个点 𝑖 都位于位置𝑝𝑖,并且与一个神经描述符向量相关联,该向量编码了局部场景内容。? 什么是神经描述符向量-即表示局部几何形状和光度性质的潜在矢量。

3、根据输入的点云计算出神经描述符

4、将梯度传播到输入中,从而自动地从数据中学习神经描述符的特征。具体来说,就是在神经网络中通过反向传播算法计算出误差对输入的导数,然后将导数应用于输入数据,以更新神经网络中的参数,从而使得神经网络能够自动地学习到数据中的特征。这样做可以提高神经网络的性能和精度,使得模型能够更好地适应不同的数据集。

5、通过摄像机的内部和外部参数,可以设计8维神经描述符来表示RGB值,这样就可以从不同视角观察场景

6、在光线栅格化的阶段,通过小孔相机捕捉大小为 𝑊 ×𝐻 的图像,构建一个由栅格化的原始图像组成的金字塔在这里插入图片描述St的空间尺度在这里插入图片描述通过将经过深度测试的点的神经描述符分配给每个像素来形成的

7、在相机的全投影变换下,将St投影到像素上。本质上:神经描述符特征𝐷𝑖对围绕点𝑝𝑖的局部3D场景内容进行编码。渲染网络表达了一个局部的3D函数𝑓,它在𝑥处输出特定的神经场景描述𝑓(𝑖,𝑥),由其局部框架中的神经点建模。简单来说,就是通过神经网络将局部3D场景的信息编码成为神经描述符,然后再通过渲染网络将这些神经描述符转换为具体的场景描述,从而实现对3D场景的处理和操作。

稀疏点云采样

如果用nerf 的方法去拟合上千米的自动驾驶场景, 需要巨大的计算力,为了降低这种算力,需要提出一种新的拟合方法-而不是独立的拟合每个场景,因此文章提出构建整个场景的点云地图提供几何数据,但是大量的点云数据依然很难去训练,因此利用采样的方法将点云数据降低到原来的1/4。
1、屏蔽遮挡的点云。为了避免更新被遮挡点的描述符,我们对每个点的可见性进行了近似。我们采用最近光栅化方案构建一个Z-buffer,仅保留像素位置上具有最低Z值的点。神经描述符会避免远离当前帧相机的点,以更好地合成场景。因此,计算被遮挡点云的计算成本降低了,从而大大提高了训练效率。这Z值是高度值么?
2、蒙特卡罗抽样。。由于场景中点云的分布不同,明显特征区域存在大量的点云。对于天空或动态物体的区域,由于缺乏明显的特征点或特征点较少,相应区域的点云较少。为了有效训练,我们提出了动态训练策略,利用蒙特卡罗方法[24]对大量驾驶场景数据进行采样。在训练阶段𝑒中的图像集𝑆𝑒,也要考虑这些因素
在这里插入图片描述
。图像𝐼𝑒的合成质量𝑄(𝐼𝑒)是通过感知损失[11](Perceptual losses for realtime style transfer and super-resolution)计算出来的。我们在每个阶段采用最差表现的前𝑛个样本作为训练数据,并采用动态采样的训练策略,使模型能够学习点云的稀疏区域,从而缩短整体训练时间。
3、补丁采样:图像分辨率也很重要,通过采样策略将整个图像随机地划分为多个块,根据可用的GPU内存大小,选择大小为w x h的随机补丁。也就是说,算法会根据GPU内存大小的限制,尽可能地选择最大尺寸的补丁来进行计算。给定相机地内参矩阵如下:
在这里插入图片描述
对于Se中的每张图像I,在训练时需要通过下列策略来获得一个补丁集Sp,以确保能够训练到场景中所有的区域。也就是说,在进行训练时,需要从每张图片中选择一些补丁,并将这些补丁组成一个补丁集Sp–这个补丁集的参数,以便训练模型能够涵盖场景中的所有区域。
在这里插入图片描述
上面一行是缩放的,下面一行是平移的
将场景的补丁(patch)平移一定的距离(𝑥Δ, 𝑦Δ),以增强从不同视角观看时合成图像的质量。换句话说,通过对补丁进行平移来改善图像的合成效果,使得从不同的视角观察时都能够得到更好的图像质量。
我的理解是,将每个图像进行随机分块后,组合到一起的集合就是原图像平移和缩放的结果了。上面的公式用于抽象地表达。

𝜔 − 𝑛𝑒𝑡

针对点云数据的空洞和离散点。
受MIMOUNet启发,文章提出了w-net从稀疏点云中合成新视角。
该网络由三部分组成:
1、渲染网络的目的是学习可靠的神经描述符以表示场景,但从点云中学习到的神经描述符仍然存在空洞。为了解决这个问题,设计了一个基本门模块来过滤不同尺度的神经描述符–-这个方法为什么可以解决描述符存在空洞的问题????
在这里插入图片描述
33的卷积提取神经描述符的特征,一个由sigmoid函数学习得出的掩码(mask)可以过滤掉神经描述符中无效的数值,显示出描述符中特征的重要性,为了提高效率 与 ReLU 及其变体相比,使用 ELU 可在神经网络中缩短训练时间并提高准确度,但是测试时由于负输入涉及非线性,因此计算速度较慢。 x表示在两个相同维度的向量或矩阵中,将它们对应位置上的元素相乘,得到一个新的向量或矩阵。再归一化,再重复一次上述操作后,将初始特征和滤波后的连接起来作为一个新的特征,用11的卷积层进一步优化新特征。 还使用了Gate convolution 再次优化特征。

1、用不同的尺度融合特征
带有空洞的神经描述符的特征,其中空洞如图红框所示
在这里插入图片描述
第1部分融合了相同尺度下的特征,利用了相同尺度的互补信息。第2部分通过融合不同尺度的特征来学习神经描述符中的缺失点。
先说第二部分
对于Fa中缺失的部分可以通过平均池化获得粗略值,Di+1的分辨率更低但是流失的更少,仅从两个尺度上(Di和Di+1)进行特征融合是不够的。
提出w-net实现多尺度融合特征–本文使用了四个尺度的特征(平衡效率和精度),从数据中学习稀疏点云中缺失的点,以便合成逼真的天空、远处物体的新视图。
在上采样阶段使用双线性插值代替
转置卷积
,这是因为转置卷积基本上是可学习的上采样,可学习参数会增加额外的计算量。

2、用相同的尺度融合特征
Fb是通过对Fa的平均池化获得的,Fd是Fb的降采样,然后再通过1*1卷积与Fb连接获得,通过细节增强来保留丢失的信息。Fc是Di通过门卷积获得。将在相同尺度下的𝐹𝑐和𝐹𝑑特征进行融合,可以利用它们之间的互补信息。融合的特征如下。
在这里插入图片描述

场景编辑与缝合

通过改变神经描述符可以编辑场景(移动,车,人,房)汽车点的xyz在这个方框下,类似ROI
在这里插入图片描述
使用一个具有可学习参数𝜃的渲染网络,将所有神经描述符𝐷投影到RGB图像上。左项代表图像上某位置的投影值,右项在这里插入图片描述
代表投影和光栅化处理在这里插入图片描述
可以通过改变汽车的位置来合成新的视角。以及移除动态目标
在这里插入图片描述
要将上图中的x1y1z1与x2y2z2进行缝合需要:1、旋转P1 P2,以配准到一个坐标系下。特征描述符(D1,D2)经过我们的渲染网络训练后,表示场景的纹理。“在边界处对D1和D2进行拼接,以更新场景。新场景是由(D1, D2)组成的。” 在这种情况下,D1和D2是被训练用于渲染场景的两个特征描述符。当它们被拼接在一起时,会形成一个新的特征向量,该向量可以用于创建一个更新后的场景。拼接之后的长度也会改变吧。
1、损失函数
“感知损失”-VGG损失,是一种用于计算生成图像与真实图像之间差异的损失函数。它是通过将生成图像和真实图像输入到预训练的神经网络中,并比较它们在网络中的特征表示来计算的。感知损失通常被用作图像生成技术中的评估指标,以衡量生成图像与真实图像之间的相似程度。
当我们进行图像编辑时,为了让处理后的图像更加真实自然,我们需要对图像中的细节和颜色进行调整。但是有时候过度调整会导致图像失真或者变得粗糙,特别是在处理一些高频细节时,比如纹理、细小的边缘等。因此,我们使用感知损失函数作为目标函数,来指导图像编辑的过程,使得编辑后的图像既能够保留原始图像中的颜色信息,又不会丢失重要的高频细节。
在这里插入图片描述
图像真值为在这里插入图片描述
预训练的VGG层在这里插入图片描述
其中𝑙 表示随机裁剪的补丁。给定点云以及相机参数C,驾驶场景渲染器在这里插入图片描述
能够学习神经描述符D和网络参数在这里插入图片描述

实验

评估指标 Peak Signal-to-Noise Ratio (PSNR), Structural Similarity (SSIM) and perceptual loss (VGG loss)
PSNR(峰值信噪比)、SSIM(结构相似性)和感知损失(VGG损失)是用于评估图像或视频质量的指标。其中,PSNR是一种基于均方误差的度量方法,用于衡量原始图像与经过压缩或处理后的图像之间的差异;SSIM是一种计算两幅图像结构相似度的指标,可以评估图像保真度、清晰度和对比度等特征;而感知损失则是基于深度学习的方法,使用预训练的卷积神经网络(如VGG)来评估两幅图像在高级语义层面上的相似度,其重点在于模拟人类视觉系统的感知能力。
为了促进公正比较,我们在评估中采用感知度量和学习的感知图像块相似性(LPIPS)。其中,感知度量是指利用人类视觉系统对图像进行主观质量评价的方法;而LPIPS是一种计算图像之间相似度的方法,它以感知学习为基础,能够更好地模拟人类视觉系统的特性,从而更准确地反映两幅图像的相似程度。

局限

对于那些与训练视图差异很大的图像,例如在Brno Urban数据集的右视图中,会丢弃测试帧附近的10帧图像。采用激光雷达的点云数据作为训练输入减小误差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_690776.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BOOST 恒压控制驱动芯片,外围电路简单

应用说明 Hi8000 是一款外围电路简单的 BOOST 升压恒压控制驱动芯片,适用于 2.7-40V 输入电压范围的升压恒压电源应用领域,启动电压可以低至 2.5V,可以广泛应用 于太阳能、便携式数码产品,锂电升压应用等供电领域。 应用领域 移…

第六十七天学习记录:对陈正冲编著《C 语言深度解剖》中关于变量命名规则的学习

最近开始在阅读陈正冲编著的《C 语言深度解剖》,还没读到十分之一就感觉收获颇多。其中印象比较深刻的是其中的变量的命名规则。 里面提到的不允许使用拼音正是我有时候会犯的错。 因为在以往的工作中,偶尔会遇到时间紧迫的情况。 而对于新增加的变量不知…

无条件抽奖和条件抽奖(互动功能发起端JS-SDK)

无条件抽奖功能概述 允许开始前对抽奖进行奖品、中奖人数、中奖人员等设置,完成设置后可以开始抽奖。 本功能只支持讲师、嘉宾、助教、管理员这四种角色进行抽奖的发起和停止。支持自定义设置中奖用户信息采集字段。支持设置预设中奖用户。支持设置定时开奖可查看…

java设计模式(十六)命令模式

目录 定义模式结构角色职责代码实现适用场景优缺点 定义 命令模式(Command Pattern) 又叫动作模式或事务模式。指的是将一个请求封装成一个对象,使发出请求的责任和执行请求的责任分割开,然后可以使用不同的请求把客户端参数化&a…

【SpinalHDL快速入门】4.6、复合类型之Vec

文章目录 1.1、描述1.2、声明1.2.1、实例 1.3、运算符1.3.1、比较(Comparison)1.3.2、类型转换(Type cast)1.3.3、杂项(Misc)1.3.4、Lib辅助函数(Lib helper functions) 1.1、描述 …

2023/6/6总结

CSS 如果想要实现背景颜色渐变效果&#xff1a; left是从左边开始&#xff0c;如果想要对角线比如&#xff0c;左上角就是left top&#xff0c;渐变效果始终是沿着一条线来实现的。 下面是跟着视频教学用flex布局写的一个移动端网页&#xff1a; html代码&#xff1a; <!…

Day_42哈希表

目录 一. 关于哈希表 二. 如何实现哈希表 1. 散列函数 2. 散列表 3. 散列函数的构造方法 4. 处理冲突的方法 三. 代码实现 1. 构造函数构造哈希表 2. 哈希表的查找 四. 代码展示 五. 数据测试​编辑 六. 总结 一. 关于哈希表 在前面介绍的线性表的查找中,记录在表中的位置…

kali 2023.2安装、换源、更新、SSH

kali2023版本已经更新了&#xff0c;为了体验新版&#xff0c;下载试用了一下。记录初始的安装过程&#xff0c;以备复习用&#xff0c;不足之处欢迎批评指正。 一、下载 1、官网下载&#xff0c;地址&#xff1a;https://www.kali.org/&#xff0c;因为我准备在VM虚拟机中使用…

二叉搜索树(Binary Seach Tree)模拟实现

目录 二叉搜索树的性质 二叉搜索树的实现 结点类 接口类(BSTree) 二叉搜索树的插入(insert) 二叉搜索树的查找(find) 二叉搜索树删除(erase) 第二种、删除的结点右子树为空 第三种、删除的结点左子树为空 第四种、删除的结点左右都不为空 实现 二叉搜索树模拟实现代…

【算法】手写题

文章目录 画一个三角形实现三栏布局通过position和margin通过float和margin通过flex实现 变量提升题实现边框0.5px深拷贝快速排序 画一个三角形 .box1 {width: 0;height: 0;border: 10px solid;border-color: red transparent transparent transparent;}实现三栏布局 三栏布局…

深入浅出之Docker Compose详解

目录 1.Docker Compose概述 1.1 Docker Compose 定义 1.2 Docker Compose产生背景 1.3 Docker Compose 核心概念 1.4 Docker Compose 使用步骤 1.5 Docker Compose 常用命令 2. Docker Compose 实战 2.1 Docker Compose下载和卸载 2.2 Docker Compose 项目概述 2.3 Do…

呈现视觉妙技:使用Python将MP4视频转化为迷人的GIF图像

前言 GIF图片对于我来说是一个很好的展示方式&#xff0c;GIF 图片能够展示动态的图像效果&#xff0c;对于展示计算机视觉算法或结果非常有用。例如&#xff0c;我可以使用 GIF 图片来展示运动跟踪、姿势识别、图像分割、目标检测等任务的结果&#xff0c;以更生动和直观的方…

20230606夏新(Amoi)的4K显示器D320B2000的亮点检测

20230606夏新&#xff08;Amoi&#xff09;的4K显示器D320B2000的亮点检测 2023/6/7 0:14 https://item.jd.com/63690000655.html 夏新&#xff08;Amoi&#xff09;电脑显示器高清家用办公电竞吃鸡游戏液晶监控直播大屏便携显示屏幕 32英寸【直面 4k/144hz双模式 全面屏】黑 …

总结891

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲1遍&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化1讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 每日必复习&#xff08;5分钟&#xff…

Day_40关于图的总结

一. 实际问题的抽象与建模 如果我们需要研究一个实际问题&#xff0c;首先第一步就是对这个实际问题进行抽象&#xff0c;抽象是从众多的事物中抽取出共同的、本质性的特征&#xff0c;而舍弃其非本质的特征的过程。具体地说&#xff0c;抽象就是人们在实践的基础上&#xff0c…

chatgpt赋能python:Python如何自动换行

Python如何自动换行 在Python编程中&#xff0c;有时候我们需要输出很长的文本或字符串&#xff0c;这时候就需要自动换行的功能。本文将介绍Python中实现自动换行的几种方法。 方法一&#xff1a;使用字符拼接 在Python中&#xff0c;我们可以使用"“来拼接字符串。如…

Internal error. Please report to https://jb.gg/ide/critical-startup-errors

大佬的解决方式&#xff1a;PyCharm 2023 启动报错的处理 部分同学&#xff0c;发现在安装 PyCharm 2023.1.2 以及 PyCharm 2023.2 的抢先体验版之后&#xff0c;运行的时候愣是直接弹出了类似上面的报错。 反正&#xff0c;别慌&#xff01; 是的&#xff0c;他们有 bug。 …

【Java】深入理解Java虚拟机 | 垃圾收集器GC

《深入理解Java虚拟机》的阅读笔记——第三章 垃圾收集器与内存分配策略。 参考了JavaGuide网站的相关内容&#xff1a;https://javaguide.cn/ Q&#xff1a;哪些内存需要回收&#xff1f;什么时候回收&#xff1f;如何回收&#xff1f; 2 对象已死吗&#xff1f; 2.1 引用…

剪映自动打关键帧

牙叔教程 简单易懂 这是给单张图片打关键帧的教程, 给图片打关键帧有四个步骤 鼠标点选图片打起始帧跳转到图片末尾打结束帧 打帧是一件很费手的事情, 所以我写了个自动化的代码, 专门用来打关键帧, 使用的软件是 AutoHotkey 关键帧参数的详细解释 剪映 自动打关键帧 AutoH…

Azure Log Analytics:与Power BI集成

注&#xff1a;本文最初发布于https://d-bi.gitee.io, 2023年6月迁移至CSDN 前述 Azure Log Analytics是Azure Monitor中的一项分析服务。本文将讲述通过Log Analytics与Power BI集成的方式&#xff0c;获取Power BI工作区内的日志信息&#xff0c;包括各PBI数据集的CPU消耗&a…