occNeRF:使用神经辐射场进行多摄像头自监督占据预测

文章:OccNeRF: Self-Supervised Multi-Camera Occupancy Prediction with Neural Radiance Fields

作者:Chubin Zhang, Juncheng Yan , Yi Wei ,Jiaxin Li, Li Liu, Yansong Tang , Yueqi Duan, Jiwen Lu

编辑:点云PCL

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

摘要

作为基于视觉感知的基本任务,3D占据预测重建周围环境的3D结构,它为自动驾驶规划和导航提供详细信息。然而大多数现有方法严重依赖于LiDAR点云生成占据的地面真实性,而这在基于视觉的系统中是不可用的。本文提出了一种用于自监督多摄像头占据预测的OccNeRF方法,与有界的3D占据标签不同,需要考虑带有原始图像监督的无界场景。为了解决这个问题,我们对重建的占据场进行参数化并重新组织采样策略。采用神经渲染将占据场转换为多摄像头深度图,通过多帧光度一致性进行监督。此外对于语义占据预测,我们设计了几种策略来优化提示并过滤经过预训练的开放词汇2D分割模型的输出。在nuScenes数据集上进行的自监督深度估计和语义占据预测任务的大量实验证明了我们方法的有效性。代码开源

https://github.com/LinShan-Bin/OccNeRF。

图1. OccNeRF的概述,为了表示无界场景提出了一个参数化坐标,将无限空间缩小到有界的占据场。在不使用任何注释标签的情况下,利用时间光度约束和预训练的开放词汇分割模型来提供几何和语义监督。

主要贡献

本文提出了一种OccNeRF方法,旨在进行自监督的多摄像头占据预测。首先利用2D主干提取多摄像头的2D特征,为了节省内存,直接插值2D特征以获取3D体积特征,而不是使用繁重的跨视图注意力。在先前的工作中,体积特征由有界占据标签(例如50米范围)监督,它们只需以有限分辨率预测占据情况。不同的是对于自监督训练,我们应考虑无界场景,因为RGB图像感知的范围是无限的。为此对占据场进行参数化以表示无界环境。具体而言,将整个3D空间分为内部和外部区域。内部区域保持原始坐标,而外部区域采用收缩坐标。此外,设计了一种特定的采样策略,以将参数化的占据场转换为具有神经渲染的多摄像头深度图。

监督预测占据的一种直接方式是计算渲染图像与训练图像之间的损失,这与NeRF中使用的损失函数相同。不幸的是实验结果显示这种方式效果不佳。相反利用时间光度损失作为监督信号。为更好地利用时间线索,我们执行多帧光度约束。对于语义占据,提出了三种策略将类别名称映射到提示,这些提示被馈送到预训练的开放词汇分割模型以获取2D语义标签。然后使用额外的语义信息来渲染语义图像,并由这些标签进行监督。为验证我们方法的有效性,在进行了自监督的多摄像头深度估计和语义占据预测任务的实验证明。实验结果显示,我们的OccNeRF在nuScenes数据集上相对其他深度估计方法表现优异,并且在与一些全监督占据方法相比实现了可比较的性能。

内容概述

概述

图2展示了我们方法的流程。使用多相机图像作为输入,我们首先利用2D主干提取 N 个相机的特征。然后将2D特征插值到3D空间以获取具有已知内参和外参的体素特征。为了表示无界场景,本文提出了一个坐标参数化来将无限范围缩小到有限的占据场。体素渲染用于将占据场转换为多帧深度图,这些深度图通过光度损失进行监督,最后将展示了我们如何使用预训练的开放词汇分割模型获取2D语义标签。

图2. OccNeRF的流程,首先使用2D主干提取多相机特征,然后将其插值到3D空间以获取体素特征。通过参数化的占据场对场景进行重建以描述无界场景。为了获取渲染的深度和语义图,我们使用重新组织的采样策略执行体素渲染,多帧深度通过光度损失进行监督,对于语义预测,我们采用了预训练的Grounded-SAM模型,绿色箭头表示监督信号。

参数化占据场

在自监督设置中,考虑到无界场景,需要处理高分辨率的内部区域和收缩空间内表示的外部区域。通过引入可调的兴趣区域和收缩阈值的变换函数,对每个体素网格的坐标进行参数化。这个函数采用了两个部分,分别用于内部和外部区域,以表示无界环境。通过特定的采样策略将参数化的占据场转换为多摄像头深度图,利用神经渲染进行监督。在获取3D体素特征时,我们通过投影和双线性插值,将体素映射回车体坐标系统,再投影到2D图像特征平面,最后通过平均多摄像头2D特征,使用3D卷积网络提取特征并预测占据输出。

原始空间和参数化空间的比较,原始空间利用传统的欧几里得空间,强调线性映射,参数化空间分为两部分:内部空间和外部空间,前者具有线性映射以保留高分辨率细节,后者的点分布与距离成反比,便于表示有限空间域内的无限范围。

多相机深度估计

多相机深度估计的方法旨在将占据场投影到多相机深度图中。这种方法使用了体素渲染,该技术在基于 Neural Radiance Fields (NeRF) 的方法中得到了广泛应用。对于给定像素的深度值,通过从相机中心沿着指向像素的方向投射射线,并在3D空间中对射线进行采样来获取密度信息。通过体素渲染,将这些密度信息转换为深度图。关键问题之一是如何在作者提出的坐标系统中进行采样,以避免不平衡的点分布。作者通过在参数化坐标上进行均匀采样,然后使用坐标系统的逆函数计算采样点在车辆坐标系中的值来解决这个问题。此外,为了更好地利用时间信息,作者采用了光度损失的方法,通过投影相邻帧到当前帧,并计算渲染图像与原始图像之间的差异来进行监督学习。这种方法的优点在于能够适应大规模场景和少数视图的监督,使得NeRF在复杂的视图合成任务中更容易收敛。

开放的词汇语义监督

通过使用多相机图像的2D语义标签,为语义3D占据预测提供了像素级别的监督。这有助于网络更好地捕捉体素之间的几何一致性和空间关系。相较于先前通过将3D LiDAR点投影到图像空间以获取2D标签的方法,该方法的目标是在完全以视觉为中心的系统中预测语义占据,且仅利用2D数据。

为了获取2D语义标签,研究者使用了预训练的开放词汇模型GroundedSAM,而不依赖于2D或3D的地面真实数据。这种方法具有高效性和可推广性,适用于各种数据集。在处理不同类别时,采用了三种提示生成策略,包括同义词替换、将单词拆分为多个实体以增强区分性,以及整合附加信息。这些提示用于Grounding DINO,生成检测边界框、logits和短语,通过SAM生成M个精确的分割二进制掩码。接着,通过将Grounding DINO logits与二进制掩码相乘,为每个像素生成{li}。最终的像素标签Spix通过映射函数ψ(·)将li的索引映射到与给定类别名称语义密切匹配的标签。如果像素未被分配到任何类别且得到M个零logits,则将其标记为"uncertain"。这一系列生成的检测边界框和语义标签在图中呈现。为了充分利用2D语义监督,首先使用了一个具有c输出通道的语义头将提取的体素特征映射到语义输出,表示为S(x)。再次使用体素渲染,将体素特征映射到语义输出,得到每像素的语义渲染输出Sˆpix。为提高效率,未渲染标记为"uncertain"的像素,且仅渲染中央帧并减少采样比率。总损失函数包括光度损失和语义损失,其中语义损失受到权重λ的调控。生成的检测边界框和语义标签如图3所示。

图3,在我们的方法中,由我们的Grounding DINO生成的检测边界框和由SAM预测的语义标签显示出与LiDAR点投影标签相当的精度。

实验

数据集:在nuScenes数据集上进行了实验,包括600个训练场景、150个验证场景和150个测试场景。该数据集共有大约40000帧图像,涵盖17个类别。为了自监督深度估计,通过将激光雷达点云投影到每个视图中,获得深度地面真值进行评估。深度预测和地面真值被剪裁为0.1m到80m。语义占据预测的评估使用了Occ3D-nuScenes基准,每个样本的范围为[-40m, -40m, -1m, 40m, 40m, 5.4m],体素大小为0.4m。在17个类别中,'other'和'other flat'类别未被考虑,因为开放词汇模型难以识别语义模糊的文本。

实现细节:采用ResNet-101作为2D骨干网络,使用ImageNet预训练权重提取多摄像头特征。输入图像和渲染深度图的分辨率分别设置为336x672和180x320。预测的占据场形状为300x300x24,其中中央的200x200x16个体素表示内部区域,范围为-40m到40m(X和Y轴),-1m到5.4m(Z轴),与Occ3D-nuScenes定义的范围相同。进行了3帧深度图的渲染,由5帧原始图像序列(1个关键帧和4个相邻的非关键帧)进行监督。α值设置为0.667。预测语义占据采用Grounded-SAM作为预训练开放词汇模型,文本和框的阈值设置为0.2,损失权重λ为0.05。所有实验在8个A100上进行。

评估指标:对于深度估计,使用Abs Rel、Sq Rel、RMSE、RMSE log和δ < t等深度评估指标。其中,Abs Rel是主要指标,评估过程中不执行中值缩放,因为该方法可以预测实际世界的比例。对于语义占据预测,采用了所有类别的平均交并比(mIoU)进行评估。评估仅在摄像头视图中的'observed'体素上执行,遵循Occ3D-nuScenes中的评估工具。整体而言,实验设计详尽,采用了流行的数据集和标准评估指标,实现细节清晰,并在实验中取得了令人满意的结果。

自监督深度估计

表1显示了在nuScenes数据集上进行的自监督多摄像头深度估计实验结果。在这个实验中没有使用预训练的分割模型。结果是在6个摄像头上平均的。我们可以看到,该方法在性能上远远优于其他最先进的方法,展示了OccNeRF的有效性。与深度估计方法相比,该方法直接在3D空间中预测占据情况,自然地保证了多摄像头的一致性。此外无需使用后处理将2D深度图提升为3D点云。

表1,nuScenes数据集上自监督多摄像机深度估计的比较

语义占据预测

在Occ3D-nuScenes数据集上进行语义占据预测实验,由于预训练的开放词汇模型无法识别模糊的提示,比如'other'和'other flat',在评估中移除了这两个类别。对于另一种自监督方法SimpleOcc,使用相同的2D语义标签,这是从预训练模型中获取的,以进行公平比较。

表2,Occ3D nuScenes数据集上的3D占用预测性能。由于"other"和"other flat"类是开放词汇模型的无效提示,因此我们在评估过程中不考虑这两个类mIoU*是原始结果,mIoU是忽略类的结果。

如表2所示,我们的方法在性能上远远优于SimpleOcc,甚至与一些全监督方法具有可比性的性能。对于一些类别,比如'drivable space'和'manmade',我们的方法令人惊讶地超越了所有监督方法。然而注意到对于一些小物体类别(例如自行车和行人),我们的方法与最先进的监督方法之间存在较大差距。可能的原因是当前的开放词汇模型通常会忽略小物体,并且无法提供强有力的监督。

消融研究

监督方法:一个直接的监督信号是渲染和真实像素颜色之间的差异,这与NeRF中使用的损失函数相同。

表3,监督方法的消融研究"深度"表示是否使用时间光度约束来训练模型。如果没有,我们直接使用NeRF]中的监督方法。"Multi表示我们是否使用多帧渲染和监督。

如表3所示,这种监督方法导致了糟糕的性能。我们将此归因于NeRF在仅有六个视图的情况下学习场景结构所面临的挑战。相反,时间光度损失可以更好地利用相邻帧中的几何线索,这是自监督深度估计方法中的黄金指标。此外,多帧训练提供更强的监督,进一步提升了模型的性能。

表4,坐标参数化的消融研究CC意味着我们是否采用合同坐标"重新采样"表示我们是否利用了所提出的采样策略。

坐标参数化:表4显示了坐标参数化的消融研究。与占据标签不同,光度损失假设图像感知的范围是无限的。收缩坐标的目的是在有界占据中表示无界场景。从表中我们可以看到,缩小的坐标极大地提升了模型的性能。此外,由于参数化坐标不是欧几里得3D空间,所提出的采样策略比原始自车坐标中的常规均匀采样效果更好。

语义标签生成:对Occ3d-nuScenes数据集上的语义标签生成进行了消融研究。首先将Grounding DINO 的对数更改为SAM的对数以获取语义标签。如图5所示,发现SAM的对数更嘈杂且不连续。然后还将原始类别名称提供给开放词汇模型,而不使用提出的提示策略。然而这种方法导致了更差的结果,因为原始类别名称无法提供精细的语义指导并引入了歧义。

图5,不同语义标签生成方法的比较,与用SAM logits生成语义标签或输入原始类别名称相比,我们的语义标签更精确,具有更好的连续性。

可视化

为了进一步展示我们方法的优越性,我们在图6和7中提供了一些定性结果。

图6。nuScenes数据集的定性结果,我们的方法可以预测具有纹理细节和细粒度占用的视觉吸引力的深度图。

图7。nuScenes数据集上语义占用的定性结果。我们的方法可以预测具有良好几何对应关系的视觉吸引力的语义占用。

从图6可以看出该方法能够生成具有细致细节的高质量深度图和占据图。对于语义占据预测,如图7所示OccNeRF能够重建周围场景的稠密结果,特别是对于大范围的类别,如"可驾驶空间"和"人造物体"。

局限性和未来工作

在推断过程中,我们研究了单帧占据预测,没有考虑多帧信息作为输入,因此该方法无法预测占据流。在未来的工作中将尝试使用预训练的光流模型监督占据流,并采用多帧多相机图像作为输入。此外另一个限制是我们方法的性能受限于开放词汇分割模型的输出,这些模型通常忽略小物体。

总结

在本文提出了OccNeRF用于自监督的多相机3D占据预测。为了解决无边界场景的问题,我们提出了参数化占据场,将无限空间缩小到有界的体素。为了利用时间光度损失,在参数化坐标上执行体素渲染,以获得多帧多相机深度图。对于语义占据预测,我们利用开放词汇模型使用提出的提示清理策略获取2D语义伪标签,在nuScenes数据集上的实验结果展示了我们方法的有效性。

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

易扩展的SLAM框架-OpenVSLAM

基于鱼眼相机的SLAM方法介绍

相关推荐
开放知识图谱16 分钟前
论文浅尝 | HippoRAG:神经生物学启发的大语言模型的长期记忆(Neurips2024)
人工智能·语言模型·自然语言处理
威化饼的一隅19 分钟前
【多模态】swift-3框架使用
人工智能·深度学习·大模型·swift·多模态
人类群星闪耀时41 分钟前
大模型技术优化负载均衡:AI驱动的智能化运维
运维·人工智能·负载均衡
编码小哥41 分钟前
通过opencv加载、保存视频
人工智能·opencv
发呆小天才O.oᯅ1 小时前
YOLOv8目标检测——详细记录使用OpenCV的DNN模块进行推理部署C++实现
c++·图像处理·人工智能·opencv·yolo·目标检测·dnn
lovelin+v175030409661 小时前
智能电商:API接口如何驱动自动化与智能化转型
大数据·人工智能·爬虫·python
rpa_top1 小时前
RPA 助力电商:自动化商品信息上传,节省人力资源 —— 以影刀 RPA 为例【rpa.top】
大数据·前端·人工智能·自动化·rpa
视觉语言导航1 小时前
arXiv-2024 | STMR:语义拓扑度量表示引导的大模型推理无人机视觉语言导航
人工智能·具身智能
深度学习lover2 小时前
<项目代码>YOLO Visdrone航拍目标识别<目标检测>
python·yolo·目标检测·计算机视觉·visdrone航拍目标识别
咯咯咯伦2 小时前
AI神了,一键视频下载+翻译+配音+字幕!(整合包)
人工智能