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

news2024/7/4 5:25:54

在这里插入图片描述
这是一个针对自动驾驶场景的神经渲染方案,提出了一种大规模神经渲染方法来合成自动驾驶场景(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.coloradmin.cn/o/617807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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

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

chatgpt赋能python:Python如何抓取数据

Python如何抓取数据 介绍 Python是一种功能强大的编程语言,它被广泛使用于网络抓取和数据分析。无论您是想要从网站上抓取数据,还是使用API抓取数据,Python都是一种非常适合的工具。在本文中,我们将介绍Python如何抓取数据&…

WINDOWS权限维持

Meterpreter权限维持 meterpreter中的权限维持技术有两种: persistence(注册表后门)metsvc的后门(服务后门) 1、注册表后门 windows/local/persistence 这个方法是执行vbs脚本,这里很容易被杀软拦截&a…

Android 12.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

1.前言 在android12.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析…

MySQL数据库 12:约束

约束: 在MySQL中,约束是一种限制数据表中列值的规定。保证数据库中的数据正确,有效性和完整性。MySQL中的约束有以下几种: 1. 主键约束(Primary Key Constraint):主键是用于唯一标识表中每行记…

浅谈Servlet、HTTP

一、Servlet Servlet 是Java Web 开发的规范。任何一个mvc的框架都是servlet发展来的。SpringMVC使用DispatcherServlet拦截所有API请求,自定义注解进行URL匹配。 Servlet层次结构 Setvlet生命周期 1、工作流程 1.Web Client 向Servlet容器(Tomcat&…

Java 实现更新顺序表中的指定元素

一、思路 1.定义一个 pos 变量为要更新的位置,定义一个 value 变量为更新后的数值. 2.顺序表不能是空的,就肯定不可以更新元素. 3.pos位置要合法,要保证 pos 位置是处在顺序表范围内的. 4.更新功能不需要考虑扩容,因为不涉及到元素…

传统制作 VS AI制作,如何一键制作PPT ?

教你如何快速的生成一个可用的 PPT,以及现在比较主流的 ChatGPT PPT 衍生工具推荐。 一、原理 结合AI生成 PPT 的原理其实非常简单, 现有的一些 PPT 软件或者开源工具会提供一种文本格式,我们只需要给出定固定的格式,把内容输入…

分享几个实用的C站AI模型平替网站

分享几个实用的C站AI模型平替网站 部分用户可能没有mofa工具访问Civitai ( C站)下载AI模型,所以给大家分享几款国内版AI模型素材库,无障碍访问下载Stable diffusion模型。 1、LiblibAI 访问速度快,作品墙、有提示词参考,无需登录…

SciencePub学术 | 智能交通类重点SCIEI征稿中

SciencePub学术刊源推荐: 智能交通类SCI&EI征稿中!进展顺利,录用率高,连续十年IF稳定上升。信息如下,录满为止: 一、期刊概况: 【期刊简介】IF:4.0-4.5↑, JCR 2区,…

剪映自动打关键帧

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

chatgpt赋能python:Python中如何精确表示小数

Python中如何精确表示小数 在日常的数学计算过程中,小数是不可避免的。然而,由于计算机在存储和处理小数时的固有限制,会导致精度上的问题。Python作为一种通用的编程语言,也具有这样的限制。但是,在Python中&#xf…

基于层次的聚类算法

尽管基于划分的聚类算法能够实现把数据集划分成指定数量的簇,但是在某些情况下,需要把数据集划分成不同层上的簇:比如,作为一家公司的人力资源部经理,你可以把所有的雇员组织成较大的簇,如主管、经理和职员…

三维重建 医学图像的可视化 PyQt Python VTK 四视图(横断面,冠状面,矢状面,3D)

本文实现了 Python C 版本 的 四视图,横断面,冠状面,矢状面,3D 主要功能: 1:可以通过进度条换层 2:鼠标双击放大/缩小窗口 3:按住鼠标中键拖动图像 4:鼠标右键滑动放大/缩小图像 效果: 视频&#…

数据库期末复习(7.1) 查询执行

目标 了解各种查询执行的方法和记住各种查询执行的IO代价,了解支持算法最少的空间(页数多少)。 一趟归并排序的代价和改进方案笔记 数据库 查询执行(1) 多路归并_旅僧的博客-CSDN博客 创建归并段过程的IO代价是2B(R) 并且会在页面中新开辟一段run为了存放已经排好序的归并…

c语言的一些小题目(初阶),持续分享......

文章目录 1.打印杨辉三角形 2.打印X形图案 3.打印菱形 4.字符串左旋 5.倒置字符串 文章内容 1.杨辉三角形是一道非常经典的题目,观察下面的图片中红色与蓝色方块的关系我们不难发现,两个红色方框里的数字相加等于蓝色方框里的数字,找到…

十、RGBA数据转NV21格式存储

1、介绍 首先为什么要去了解RGBA转NV21格式的,因为在软编码X264的时候就需要yuv格式作为输入源进行编码。 NV21格式的回顾:也是YUV420SP格式,存储两个plane,Y,VU交叉存储,内存大小为w * h w * h/ 4 * 2w…

力扣高频SQL50题(基础版)——第七天

力扣高频SQL50题(基础版)——第七天 1 查询结果的质量与占比 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT q.query_name,ROUND(AVG(q.rating/q.position),2) quality, ROUND(100*(SELECT count(*) FROM Queries WHERE rating<3 AND que…

国产品牌:中国牙科市场的美好未来

牙菌斑是口腔疾病主要元凶&#xff0c;我国口腔患者人数逐年增加。根据国家卫健委的资料&#xff0c;常见的口腔疾病主要是由附着在牙齿上的牙菌斑引起&#xff0c;因此&#xff0c;口腔护理主要达到清除牙菌斑、保护牙齿及牙周健康的目的。根据天猫发布的《2021 天猫口腔护理消…

【SpinalHDL快速入门】4.4、基本类型之Enum

文章目录 1.1、描述1.2、声明1.2.1、编码1.2.2、示例 1.3、运算符1.3.1、比较&#xff08;Comparison&#xff09;1.3.2、类型&#xff08;Types&#xff09;1.3.3、类型转换 1.1、描述 枚举类型对应于命名值列表。 1.2、声明 枚举数据类型的声明如下&#xff1a; object E…