MVF 3D Lidar point clouds

2023-10-15 02:59
文章标签 3d point lidar clouds mvf

本文主要是介绍MVF 3D Lidar point clouds,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.Motivation

  • 对于透视图和BEV,两者都有各自的优势。其中透视图在稀疏的点云上进行小物体的检测性能较强,而BEV可以保证物体的距离不变形,即不会发生物体重叠。
  • 对于原先的voxel方法,即hard voxel,存在占用内存大,数据损失的缺点,因此如何利用点云内所有的点的信息成为一个问题。

2. Contributions

  • 论文提出一个end-to-end的算法,使用点云中的BEV和透视图进行信息互补。
  • 论文针对hard voxel提出了一种新的dynamic voxel,支持动态体素化,相对于HV主要优点:
    ① dynamic voxel消除了每一个体素采样需要预定义的点数,即每一个点都可被模型使用,减少信息损失;
    ② 相对于HV,dynamic voxel不需要进行体素填充,减少了额外的空间和计算开销;
    ③ 克服了体素的随机缺失,产生了确定的体素嵌入,使得检测结果更加稳定。

3. MVF 3D

3.1 Voxelization and Feature Encoding

3.1.1 hard voxelization

体素化其实可以看做是一种点与体素之间的映射关系,即多对一的映射。HV可以将voxelization分为两个阶段进行实现:grouping和sampling。
给定点云 P = { p 1 , ⋯ p N } P=\left\{p_1,\cdots p_N\right\} P={p1,pN},即将点划分大小为K x T x F的voxel块,其中K是体素的最大数量,T是每一个voxel包含的最大点的数目,F是对应的特征维度。
grouping and sampling: 基于空间坐标对点进行分配到每一个voxel中,由于一个体素可能包含点多于T,因此对点进行采样;同样的,假如点云产生的体素大于固定的体素容量K,则对体素进行降采样。因此对应的映射关系可以表示为:
在这里插入图片描述
但是HV具有三个局限性:

  • 当点或者体素超过缓冲容量时被抛弃,可能会丢失对检测有用的消息;
  • 点和体素的随机缺失可能会导致不确定的体素嵌入,导致检测结果不稳定;
  • 填充体素消耗了一定空间和增加了不必要计算。

3.1.2 dynamic voxelization

相对于HV,DV保持分组阶段的不变,但是没有将点采样到固定数量和固定容量体素中,保留点与体素的完整映射。因此,体素的数量和每一个体素的点的数量都是动态的。因此点与体素的映射关系可以表示为:
在这里插入图片描述
由于保留了所有原始点和体素信息,动态体素化不会引入任何信息丢失,产生确定的体素嵌入。而对于后续的fusion来说,由于建立了点云到体素的映射关系,为后续的特征点级融合奠定了自然基础。

3.1.3 HV与DV比较

在这里插入图片描述
可以看到相对于HV而言,DV进行体素化后需要的缓冲区较小,可以以最小的内存量进行信息存储。

3.2 Feature Fusion

3.2.1 Multi-View Representations

多视角可以提供更加丰富的信息,因此论文采用了透视图和BEV两个视角信息进行融合互补。
但是鸟瞰图是基于笛卡尔坐标系进行构建,而透视图能在球面坐标系进行场景平铺。因此将鸟瞰图转化到球面坐标系下进行表示。假设点云为 ( x i , y i , z i ) (x_i,y_i,z_i) (xi,yi,zi),即可以计算为:
在这里插入图片描述

3.2.2 Networks Architecture

在这里插入图片描述

  • ①首先经过一个FC将点云信息进行特征空间抓化;
  • ②然后分别在BEV和透视图进行dynamic voxel,建立点与体素之间的双向映射;
  • ③接下来采用一个额外的FC来进行特征学习,并且才u哦那个最大池化来进行体素信息聚合;
  • ④并且使用一个卷积塔进行信息的进一步提取,同事保持相同的空间分辨率。
  • ⑤融合了来自三个不同来源的特征,点、鸟瞰图和透视图三种特征进行融合。
    而卷积塔结构如下图所示:
    在这里插入图片描述
    论文使用两个ResNet层将输入的体素特征映射逐步降采样为原始特征映射维度的1/2和1/4。然后进行采样和连接,构造一个与输入空间分辨率相同的特征图。最后将这个蟑螂转换为所需的特征维度。注意输入和输出特征图之间一致的空间分辨率有效保证点与体素的对应关系保持不变。

3.3 loss function

假设gt和anchor box为 { x g , y g , z g , l g , w g , θ g } \left\{x_g,y_g,z_g,l_g,w_g,\theta_g\right\} {xg,yg,zg,lg,wg,θg} { x a , y a , z a , l a , w a , θ a } \left\{x_a,y_a,z_a,l_a,w_a,\theta_a\right\} {xa,ya,za,la,wa,θa},即对应损失函数可以计算为:
在这里插入图片描述
其中 d a = ( l a ) 2 + ( w a ) 2 d^a=\sqrt{\left(l^a\right)^2+\left(w^a\right)^2} da=(la)2+(wa)2 为anchor box的对角线,因此回归损失函数为:
在这里插入图片描述
其中 ∗ ~ \widetilde\ast 表示预测残差,对于anchor分类,运用focal loss:
在这里插入图片描述

这篇关于MVF 3D Lidar point clouds的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/214916

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用,模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇,同时也伴随着一系列需要克服的挑战,如何看待企业引进增材制造,小编为您全面分析。 机遇篇: 加速产品创新:3D打印技术如同一把钥匙,为模具企业解锁了快速迭代产品设计的可能。企业能够迅速将创意转化为实体模型,缩短产品从设计到市场的周期,抢占市场先机。 强化定制化服务:面

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

python画图|3D图基础教程

python画3D图和2D流程类似: 【a】定义一个自变量x; 【b】定义两个因变量y和z; 【c】直接输出plot(x,y,z) 今天就一起快乐学习一下画3D图的基础教程。 【1】官网教程 打开官网,可以迅速找到学习教程,参考下述链接: https://matplotlib.org/stable/plot_types/3D/plot3d_simple.html 然后我们解读一下示

OGRE 3D----创建第一个OGRE 3D示例

目录 1. OGRE 3D概述 2. OGRE 3D vs VTK 3. 编译OGRE 3D 源码 4. 创建示例和配置其编译环境 5. 配置示例程序的执行环境 1. OGRE 3D概述 OGRE (Object-Oriented Graphics Rendering Engine) 是一个开源的、高级的 3D 图形渲染引擎,它提供了一个抽象层,使得开发者可以专注于创建内容和

echarts 多个3D柱状图

图片样式: 代码实现: <template><div :class="className" :style="{height:height,width:width}" /></template><script>require("echarts/theme/sakura"); // echarts themeexport default {props: {className: {typ

从文字到世界:一键生成全景3D场景的技术革命

随着虚拟现实(VR)、增强现实(AR)以及游戏行业的蓬勃发展,3D场景的生成技术正变得越来越重要。传统的3D建模方法不仅耗时且需要专业的技能,而新兴的技术则试图简化这一过程。本文将介绍一种全新的技术框架——LayerPano3D,它能够根据简单的文本输入,自动生成全景、可探索的3D场景。这项技术不仅能够极大地提升用户体验,还将为多个领域带来前所未有的变革。 技术框架概述 LayerP