稠密点云获取方法(二)

2023-10-13 00:30
文章标签 方法 获取 点云 稠密

本文主要是介绍稠密点云获取方法(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为高分辨率三维重建的方法之一,从单张图像生成稠密三维点云在计算机视觉领域中一直有着较高的关注度。

以下文献提出了一种针对二维和三维信息融合的方法以解决三维点云稀疏难以检测远处的目标的问题。

Multimodal Virtual Point 3D Detection

该文献提出一种将 RGB 传感器无缝融合到基于激光雷达的 3D 识别的方法。它采用一组二维检测来生成密集的三维虚拟点,以增强原本稀疏的三维点云。这些虚拟点与常规的激光雷达获得的原始点云一起自然地整合到任何标准的基于激光雷达的三维检测器中。由此产生的多模式检测器简单而有效。

在大规模的nuScenes数据集上的实验结果表明,该框架将强大的 CenterPoint 基线大幅提高了 6.6mAP,并超过具有竞争性的融合方法。

该方法的思路比较简单,具体如下。

该论文的思想借鉴了PointPainting,实际上是利用图像实例分割结果,对激光点云做了稠密化。

PointPainting是获得图像分割结果后,把点云投影到图像上,得到每个点对应的图像分割的label。

假设原来的点云是N×3,就多了一维图像分割的label,变成N×4,然后用常规的点云处理算法处理,基于Point、Voxel或BEV。

同样是将点云投影到图像上,这篇论文反其道行之。

作者提出点云的一个缺点是太稀疏了,比如一辆车上只有几个激光点打了上去,而图像像素是全都“打”了上去。所以提出了一种方法,根据稠密的像素稠密化点云。

其生成虚拟点的方法:

1)首先对与点云对应的二维RGB图像进行语义(实例)分割,将激光点投影到图像(二维RGB相机坐标内)上,这样图像上每个instance上都会有几个激光点投上去。注意:这里仅考虑位于前景点实体分割中的点。

2)然后,对每个instance内的像素进行随机采样K个点(图c红色点),与被激光点投影上的像素(图c黑色点)进行最近邻关联,根据最近的几个原始点云的深度插值出虚拟点的深度。

3)最后,根据联合标定阶段得到坐标系变换矩阵将这些点投影回激光坐标系,得到virual lidar points,同时这些虚拟点包含实体分割中的类别信息。这样就达到了点云稠密化的效果,然后使用现在流行的3D backbone点云处理算法进行处理。 

 上述生成虚拟点的依据可能是对于属于同一个前景目标中的点,其前景深度不会相差很大,所以可以用其周围点的深度信息来对虚拟点的深度信息进行补全。从而到达缓解点云稀疏性的目的。

相比于baseline CenterPoint,从以下述表格中可以看出,使用生成的虚拟点确实能够在一定程度上提高模型的检测性能。此外,相比于同样采用分割结果来进行多模态融合的PointPainting, 该方法也获得了更好的性能。

此外,作者还研究了实体分割精度对于检测性能的影响。

 文中通过使用降低输入分辨率模拟实体分割精度下降的方法,从文中可以看出,本文所提方法对于实例分割的精度还是具有较高的鲁棒性。

此外,作者还在文中提到,其在实验过程中验证了本文中所使用的基于邻近点进行深度估计的精度,平均误差在0.33m左右,可见在同一前景目标中,这种基于临近点的深度估计精度还是比较高的。

这篇关于稠密点云获取方法(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

SpringBoot中ResponseEntity的使用方法举例详解

《SpringBoot中ResponseEntity的使用方法举例详解》ResponseEntity是Spring的一个用于表示HTTP响应的全功能对象,它可以包含响应的状态码、头信息及响应体内容,下... 目录一、ResponseEntity概述基本特点:二、ResponseEntity的基本用法1. 创

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自