使用Open3D实现3D激光雷达可视化:以自动驾驶的2DKITTI深度框架为例(上篇)

原创 | 文 BFT机器人 

图片

3DLiDAR传感器(或)三维光探测和测距是一种先进的发光仪器,能够像我们人类一样在三维空间中感知现实世界。这项技术特别彻底改变了地球观测、环境监测、侦察和现在的自动驾驶领域,它提供准确和详细数据的能力有助于促进我们对环境和自然资源的理解和管理。

01

激光技术的演变和影响

1960年,休斯研究实验室的TheodoreMaiman和他的团队取得了突破性的发现,用高功率闪光灯照亮了红宝石棒,从而产生了第一束激光束。这种相干光束因其出色的亮度、精度和抗干扰性而标志着技术的重大进步,从此成为距离测量领域不可或缺的一部分。与传统的测量方法相比,基于激光的技术提供了更高的精度和分辨率,它们还具有紧凑的尺寸、易用性和在各种条件下运行的能力,使其在广泛的应用中具有不可估量的价值。

起初,激光测距主要用于军事和科研仪器,在工业仪器中的应用相对较少。这种有限的使用主要是由于激光测距传感器的高成本,其价格通常为数千美元。这种令人望而却步的成本是更广泛采用的重大障碍。然而,随着技术的重大进步,这些传感器的成本已大大降低,现在仅为几百美元。这种降价使激光测距成为未来各种远程检测应用的可行且具有成本效益的解决方案。

图片

激光测距系统的类型

已经开发了多种类型的激光测距系统,包括单光束、二维和三维系统。单光束系统设计用于距离测量,二维系统用于扫描平面,三维系统用于确定坐标和轮廓。

这些先进的激光测距系统具有高精度、速度快、抗干扰能力强等特点,在研究和应用领域引起了广泛关注。因此,来自世界各地大学和研究所的许多研究人员都在积极探索和增强这项技术。

02

3DLiDAR在自动驾驶中的作用

LiDAR传感器能够创建车辆周围环境的准确、实时3D地图,因此在提高高级驾驶辅助系统中自主性组件的重要性方面发挥着关键作用。以下是证明其重要性的几个具体原因:

  • 高分辨率空间映射:3DLiDAR传感器发射激光束来测量距离,然后使用反射光创建详细的环境三维地图。这种高分辨率空间映射对于自动驾驶汽车安全驾驭复杂环境至关重要;

  • 量程和精度:这些系统非常精确,能够精确检测物体及其尺寸。它们在一定距离内有效,使自动驾驶汽车能够检测近处和远处的物体,这对于路径规划和避障至关重要;

  • 全天候性能:与任何其他传感器一样,3DLiDAR也会受到极端天气条件的影响。然而,它在各种环境和天气条件下都能可靠地运行,包括相机可能难以应对的低光场景;

  • 目标检测和分类:它不仅仅是检测物体;它还有助于根据大小、形状和行为对它们进行分类。这对于自动驾驶汽车区分行人、其他车辆和静态障碍物等各种元素至关重要;

  • 实时处理和计算:这些传感器可以实时处理数据,为自动驾驶汽车系统提供即时反馈。这对于在动态驾驶场景中做出快速决策至关重要。

03

3D可视化在分析LiDAR数据的作用

分析LiDAR数据具有极其重要的意义,它从根本上改变了我们解释和理解错综复杂的空间环境的方式。由于以下原因,这一点至关重要:

  • 详细的环境表示:3D可视化允许全面表示LiDAR捕获的环境。它将原始数据点转换为视觉上连贯且可解释的三维模型,提供清晰而详细的物理空间视图;

  • 增强的数据解释:传统的2D表示可能会模糊或展平有关地形和结构的关键细节。另一方面,3D可视化提供深度感知和空间感知,这对于准确解释3DLiDAR传感器数据至关重要;

  • 交互式分析:3D可视化工具通常允许用户与数据进行交互,例如缩放、平移和旋转视图。这种交互性允许用户从不同的角度和角度探索数据,从而增强了分析。

04

2DKITTI深度帧数据集的描述

KITTI数据集是自动驾驶汽车研究领域的关键资源。它包括从安装在车辆上的摄像头、激光雷达和其他传感器收集的全面数据,这些传感器穿越不同的街道环境和场景。这个丰富的汇编提供了广泛的真实世界背景,对于开发和测试自动驾驶技术至关重要。上一节中所示的VelodyneLiDAR传感器用于捕获此特定数据集的数据。

  • 复杂LiDAR数据的转换:基于KITTILiDAR的2D深度图像数据集具有将360度LiDAR帧转换为2D格式的独特功能。这个过程涉及“解开”圆柱形LiDAR框架,使复杂的三维数据更易于访问和更易于二维处理;

  • 深度信息(以像素为单位):在此数据集中,2D深度图像的每个像素表示从3DLiDAR传感器到环境中物体的距离。这种方法保持了原始LiDAR数据的完整性,有效地捕获了相同的场景,但格式更易于处理;

  • 高垂直分辨率用于详细扫描:该数据集设置了64的高垂直分辨率,反映了3DLiDAR传感器使用的激光束数量。这种高分辨率确保了对周围环境的详细扫描和映射,这对于精确的环境建模至关重要。

图片

使用VelodyneLiDAR传感器的KITTI数据集中的2D深度帧

在这个特定的子集中,重点是从KITTI数据集的LiDAR帧派生的2D深度图像。这些图像代表了原始360度LiDAR帧的转换,这些帧通常以圆柱形格式呈现在传感器周围。转换过程本质上涉及将圆柱形LiDAR框架“展开”到2D平面中,从而将复杂的三维数据转换为更易于访问的二维格式。

这些2D深度图像中的每个像素对应于LiDAR传感器与激光束中反射的物体之间的距离,有效地捕获了与原始LiDAR帧相同的场景,但格式更易于处理。这些图像的垂直分辨率在此数据集中设置为64,表示LiDAR传感器用于扫描周围环境的激光束数量。

这些2D深度图像的实用性扩展到各种应用,包括分割检测识别任务。它们在LiDAR技术的先进功能与大量专注于2D图像分析的现有计算机视觉文献之间架起了一座桥梁。这使得基于KITTILiDAR的2D深度图像数据集不仅是自动驾驶汽车研究的宝贵资产,也是探索各种计算机视觉挑战和机遇的多功能工具。

若您对该文章内容有任何疑问,请与我们联系,我们将及时回应。

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

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

相关文章

Asp.Net Core 项目中常见中间件调用顺序

常用的 AspNetCore 项目中间件有这些,调用顺序如下图所示: 最后的 Endpoint 就是最终生成响应的中间件。 Configure调用如下: public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseD…

个人财务工具、密钥管理平台、在线会计软件、稍后阅读方案 | 开源专题 No.51

gethomepage/homepage Stars: 10.1k License: GPL-3.0 这个项目是一个现代化、完全静态的、快速且安全的应用程序仪表盘,具有超过 100 种服务和多语言翻译的集成。 快速:网站在构建时以静态方式生成,加载时间飞快。安全:所有对后…

基于阿里云平台帮助出海企业应对DDoS攻击

在出海浪潮下,越来越多企业选择出海。但海外市场也并非一片红利。由于海外千差万别的法律政策、摸不清的网络脉络。在业务快速扩展的同时,也势必会迎来“网络恶势力”DDoS攻击。海外更是DDoS攻击的重灾区,根据外部报道,白俄国安委…

VScode版本太低导致安装插件时报错:Unable to install ‘ms-vscoderemote-server‘ extension

VS code安装插件时报错:Unable to install ‘ms-vscoderemote-server’ extension because it is not compatible with the current version of VS Code (version 1.421) 是因为VS code 版本太低的原因,可以更新Vscode即可:点击help&#x…

C语言——内存函数的使用与模拟实现

大家好,我是残念,希望在你看完之后,能对你有所帮助,有什么不足请指正!共同学习交流 本文由:残念ing 原创CSDN首发,如需要转载请通知 个人主页:残念ing-CSDN博客,欢迎各位…

RPC(5):AJAX跨域请求处理

接上一篇RPC&#xff08;4&#xff09;&#xff1a;HttpClient实现RPC之POST请求进行修改。 1 修改客户端项目 1.1 修改maven文件 修改后配置文件如下&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.b…

数据分析师的职业规划与参考资料

数据分析师如何规划 参考&#xff1a;超详细的数据分析职业规划 一个产品的出现可以从业务和技术两个方向分析&#xff0c;业务需求技术支持产品的出现。 如果把职业也当成一个产品&#xff0c;也有类似的分析&#xff0c; 其中业务也就是领域&#xff0c;即这个业务领域的特点…

mac电脑m1 arm架构安装虚拟机教程

1、准备一台虚拟机&#xff0c;安装CentOS7 常用的虚拟化软件有两种&#xff1a; VirtualBoxVMware 这里我们使用VirtualBox来安装虚拟机&#xff0c;下载地址&#xff1a;Downloads – Oracle VM VirtualBox 001 点击安装 002 报错&#xff1a;he installer has detected an…

【Python】基于ORM的SqlAlchemy操纵数据库代码实现

说明 ORM&#xff0c;全称Object-Relational Mapping&#xff0c;即对象-关系映射&#xff0c;是一种程序设计技术&#xff0c;用于在面向对象编程语言和关系数据库之间建立对应关系。它的主要目的是让开发者能够使用面向对象的方式操作数据库&#xff0c;而不必过多地关注数据…

【 USRP安装教程】MATLAB 2023B

步骤 matlabdocusrp驱动包 doc 安装包内容列表 双击“R2023b_Doc_Windows.iso” 打开cmd 查看盘符 切换盘符 因为是F盘&#xff0c;所以cmd输入&#xff1a;“F:” F:进入可安装界面 cd F:\bin\win64安装离线文档库 .\mpm install-doc --matlabroot"C:\MATLAB\R202…

idea 如何使用 JaCoCo 跑覆盖率

背景介绍 什么代码覆盖&#xff1f; 代码覆盖(Code coverage)是软件测试中的一种度量&#xff0c;描述程序中源代码被测试的比例和程度&#xff0c;所得比例称为代码覆盖率。简单来理解&#xff0c;就是单元测试中代码执行量与代码总量之间的比率。 Java常用的单元测试覆盖率…

kafka offset sasl加密连接

kafka-tool&#xff08;offset&#xff09; 进行SCRAM连接&#xff0c;直接上图 填写jaas的认证&#xff08;账密 引用包&#xff09;

Python tkinter控件全集之组合选择框 ttk.ComboBox

Tkinter标准库 Tkinter是Python的标准GUI库&#xff0c;也是最常用的Python GUI库之一&#xff0c;提供了丰富的组件和功能&#xff0c;包括窗口、按钮、标签、文本框、列表框、滚动条、画布、菜单等&#xff0c;方便开发者进行图形界面的开发。Tkinter库基于Tk for Unix/Wind…

使用Gitee中的CI/CD来完成代码的自动部署与发布(使用内网穿透把本地电脑当作服务器使用)

&#x1f4da;目录 &#x1f4da;简介:⚙️ 所需工具&#xff1a;&#x1f4a8;内网穿透配置&#x1f4ad;工具介绍✨命令安装&#x1f38a;配置Cpolar&#x1f573;️关闭防火墙&#x1f95b;防火墙端口放行规则&#xff08;关闭防火墙可以忽略&#xff09;&#x1f36c;小章总…

Windows系统下的可用RADIUS软件-[资源]

RADIUS协议相关原理介绍&#xff0c;可参考博客RADIUS协议原理介绍报文分析配置指导-RFC2865/RFC2866。 本文用于提供和介绍Window系统下几种可用的RADIUS软件。主要涉及软件有radius_ping&#xff08;绿色免安装版&#xff09;和WinRadius&#xff08;绿色免安装版&#xff09…

使用极狐gitlab初始化导入本地项目

本地有项目的情况需要同步到极狐gitlab上 第一步&#xff1a; 在gitlab上新创建一个空项目 ⚠️⚠️⚠️这里需要注意红色圈住的地方一定不要选择&#xff0c;因为选择了这个后续会有不必要的麻烦 第二步 在本地项目中删除原来的.git文件(这一步如果是新项目可以忽略&#…

mysql部署 --(docker)

先查找MySQL 镜像 Docker search mysql &#xff1b; 拉取mysql镜像&#xff0c;默认拉取最新的&#xff1b; 创建mysql容器&#xff0c;-p 代表端口映射&#xff0c;格式为 宿主机端口&#xff1a;容器运行端口 -e 代表添加环境变量&#xff0c;MYSQL_ROOT_PASSWORD是root用户…

通用的java中部分方式实现List<自定义对象>转为List<Map>

自定义类 /*** date 2023/12/19 11:20*/ public class Person {private String name;private String sex;public Person() {}public Person(String name, String sex) {this.name name;this.sex sex;}public String getName() {return name;}public String getSex() {return…

java读取含有合并单元格的Excel

java读取含有合并单元格的Excel Excel如下&#xff1a; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.*;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.…

卡尔曼(kalman)滤波学习测试例

下面两套代码一套是python&#xff0c;一套是matlab&#xff0c;效果是一样的。 PYTHON import numpy as np import matplotlib.pyplot as pltt np.arange(1, 1001) nsig 5 * np.sin(0.01 * t) np.random.rand(len(t)) np.random.randn(len(t)) 5 * np.cos(0.05 * t np.…