Open3D-ML自动驾驶点云目标检测与分割入门

news/2024/4/19 9:06:50/文章来源:https://blog.csdn.net/shebao3333/article/details/131998030

当开始新的研究时,我的方法通常是测试不同的相关事物,直到有足够的经验让我开始将这些点联系起来。 在开始构建用于 3D 对象检测的自定义模型之前,我购买了一台 LiDAR 并处理了一些数据。 下一个明显的步骤是在我为自己的数据贴标签之前找出研究界如何标记这些数据。

有一些非常流行的自动驾驶点云数据集,其中最受欢迎的是 KITTI 数据集、NuScenes、Waymo 开放数据集等。 不久前,我花了一些时间研究 KITTI 数据集,总的来说,我注意到找到合适的工具来可视化数据是多么困难。 直到我发现了 Open3D,它使我可以轻松处理和可视化点云。 Open3D 可以选择与 Open3D-ML 捆绑在一起,其中包括用于可视化带注释的点云数据的工具,以及训练/构建/测试 3D 机器学习模型(更多内容将在以后的帖子中介绍)。
在这里插入图片描述

推荐:用 NSDT设计器 快速搭建可编程3D场景。

Open3D-ML GitHub 页面提供了使用 pip 安装库的简单说明,但这仅适用于特定版本的 CUDA 和 TensorFlow。 因为我想使用此类库的较新版本,所以我决定从源代码构建 Open3D。 这样做的时候,我发现有些步骤缺失或者不够清晰。 为了简化有兴趣构建此库的任何人的生活,我在下面列出了安装和测试 Open3D-ML 所遵循的步骤。 请注意,我的系统是 Ubuntu 20.04.4 LTS,并且我有支持 Cuda 的 GPU,因此,此处提供的说明可能会因您的系统而异。

第1步:安装Conda

建议使用 Conda 来尝试新事物,而不会冒破坏系统的风险。 要安装 Conda,请按照此处的官方步骤操作。

第2步:创建并激活Conda环境

确保将 myenv 替换为你要使用的实际名称。

conda create --name myenv
conda activate myenv

第3步:安装 Node.js

要安装 Node.js,你可以按照以下步骤操作:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm install -g yarn

第 4 步:安装 TensorFlow

要安装 TensorFlow,请按照此处的官方步骤操作。

第5步:安装Jupyter Lab

conda install -c conda-forge jupyterlab

第 6 步:克隆 Open3D

git clone https://github.com/isl-org/Open3D

第7步:安装依赖项

cd Open3d
./util/install_deps_ubuntu.sh

第 8步:创建构建目录并克隆 Open3D-ML

mkdir build
cd build
git clone https://github.com/isl-org/Open3D-ML.git

第 9 步:配置安装

这是假设你有一个支持 Cuda 的 GPU。 确保将 /path/to/your/conda/env/bin/python 替换为 Python 的正确路径。 另外不要忘记命令末尾的两个点。

cmake -DBUILD_CUDA_MODULE=ON -DGLIBCXX_USE_CXX11_ABI=ON -DBUILD_TENSORFLOW_OPS=ON -DBUNDLE_OPEN3D_ML=ON -DOPEN3D_ML_ROOT=Open3D-ML -DBUILD_JUPYTER_EXTENSION:BOOL=ON -DBUILD_WEBRTC=ON -DPython3_ROOT=/path/to/your/conda/env/bin/python ..

第10步:构建库

make -j$(nproc)

第 11 步:安装为 Python 包

make install-pip-package

第12步:测试Open3D安装

python -c "import open3d"

第 13 步:使用 TensorFlow 安装测试 Open3D-ML

python -c "import open3d.ml.tf as ml3d"

第 14 步:下载并准备数据集

在此步骤中,我们将下载 SemanticKITTI 数据集。 该数据集超过 80 GB,因此请确保有足够的空间和时间。 以下步骤将下载并准备数据集。 确保将 /path/to/save/dataset 替换为所需的路径。

cd Open3D-ML/scripts/
./download_semantickitti.sh /path/to/save/dataset

第 15 步:加载并可视化数据集

为了可视化 SemanticKITTI 数据集,请将以下 Python 代码保存在文件中并运行它。 请记住将 /path/to/save/dataset/ 替换为保存 SemanticKITTI 数据集的路径。

import open3d.ml.tf as ml3d# construct a dataset by specifying dataset_path
dataset = ml3d.datasets.SemanticKITTI(dataset_path='/path/to/save/dataset/SemanticKitti/')# get the 'all' split that combines training, validation and test set
all_split = dataset.get_split('all')# print the attributes of the first datum
print(all_split.get_attr(0))# print the shape of the first point cloud
print(all_split.get_data(0)['point'].shape)# show the first 100 frames using the visualizer
vis = ml3d.vis.Visualizer()
vis.visualize_dataset(dataset, 'all', indices=range(340))

当你运行 Python 脚本时,可视化工具会打开并加载前 340 个数据帧。 你可以更改代码中加载的帧数。 打开后,可以根据强度探索点云,但最有趣的部分是根据每个点的语义标签探索点云。 下面的视频显示了两个示例。

在第一个视频中,你可以了解如何通过选择多个帧将它们作为动画播放。 确保从提供的选项中选择标签作为数据类型。

第二个视频展示了如何选择给定的帧并通过激活和停用某些标签来检查存在的语义对象。 当某些颜色太浅而难以看到时,你可以更改颜色以提高可见度。

第 16 步:故障排除

在执行上述步骤时,我遇到了以下异常。 修复它们很容易,如果你也找到它们的话。

如果出现 ModuleNotFoundError: No module named ‘yapf’

pip install yapf

如果出现 ModuleNotFoundError: No module named ‘jupyter_packaging’

pip install jupyter-packaging

就是这样。 Open3D-ML 是可视化点云数据集的绝佳工具。 下一步是研究数据集以了解它们是如何标记的。 然后,我将介绍使用 Open3D 训练/测试 3D 模型。 希望这将使我更接近使用自定义数据执行相同的操作。


原文链接:Open3D-ML点云目标检测 — BimANt

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

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

相关文章

SpringCloudAlibaba之Ribbon

Ribbon是nacos自带的负载均衡器,属于客户端的负载均衡 但是在Spring高级版本中让LoadBalancer替代了 本人用的是2.1.0的nacos,ribbon还没有被替换。 使用: 在配置类中:LoadBalanced BeanLoadBalancedpublic RestTemplate restT…

ChatGPT长文本对话输入方法

ChatGPT PROMPTs Splitter 是一个开源工具,旨在帮助你将大量上下文数据分成更小的块发送到 ChatGPT 的提示,并根据如何处理所有块接收到 ChatGPT(或其他具有字符限制的语言模型)的方法。 推荐:用 NSDT设计器 快速搭建可…

【FPGA IP系列】FIFO的通俗理解

FPGA厂商提供了丰富的IP核,基础性IP核都是可以直接免费调用的,比如FIFO、RAM等等。 本文主要介绍FIFO的一些基础知识,帮助大家能够理解FIFO的基础概念。 一、FIFO介绍 FIFO全称是First In First Out,即先进先出。 FIFO是一个数…

怎么选择合适的微信管理系统?

稳定好用的网页版微信CRM系统,随时随地可以登录,不用安排插件软件,不限制手机和电脑使用,电脑手机关机消息都是实时同步的 还有很多功能: 1、聚合聊天:支持多个微信号登录到系统上,一个页面就可…

WIZnet W51000S-EVB-PICO 入门教程(一)

概述 W5100S-EVB-Pico是基于树莓派RP2040和全硬件TCP/IP协议栈控制器W5100S的微控制器开发板-基本上与树莓派Pico板相同,但通过W5100S芯片增加了以太网功能。 W5100S-EVB-Pico特点 RP2040规格参数 双核Arm Cortex-M0 133MHz264KB 高速SRAM和2MB板载内存通过…

【计算机视觉中的 GAN 】 - 生成学习简介(1)

一、说明 在阅读本文之前,强烈建议先阅读预备知识,否则缺乏必要的推理基础。本文是相同理论GAN原理的具体化范例,阅读后有两个好处:1 巩固了已经建立的GAN基本概念 2 对具体应用的过程和套路进行常识学习,这种练习题一…

RocketMQ概论

目录 前言: 1.概述 2.下载安装、集群搭建 3.消息模型 4.如何保证吞吐量 4.1.消息存储 4.1.1顺序读写 4.1.2.异步刷盘 4.1.3.零拷贝 4.2.网络传输 前言: RocketMQ的代码示例在安装目录下有全套详细demo,所以本文不侧重于讲API这种死…

四种刷题模式的爱刷题无后端无数据库刷题应用网站H5源码

四种刷题模式的爱刷题无后端无数据库刷题应用网站H5源码。提供了简单轻量化的部署方式和详细的四种刷题模式教程。该应用使用JSON作为题库的存储方式,层次清晰、结构简单易懂。 配套的word模板和模板到JSON转换工具可供使用,方便将题库从word格式转换为…

抖音seo短视频账号矩阵系统技术开发简述

说明:本开发文档适用于抖音seo源码开发,抖音矩阵系统开发,短视频seo源码开发,短视频矩阵系统源码开发 一、 抖音seo短视频矩阵系统开发包括 抖音seo短视频账号矩阵系统的技术开发主要包括以下几个方面: 1.前端界面设…

SpringBoot的三层架构以及IOCDI

目录 一、IOC&DI入门 二、三层架构 数据库访问层 业务逻辑层 控制层 一、IOC&DI入门 在软件开发中,IOC(Inversion of Control)和DI(Dependency Injection)是密切相关的概念。 IOC(控制反转&a…

【每日一题】141. 环形链表

【每日一题】141. 环形链表 【每日一题】141. 环形链表题目描述解题思路 【每日一题】141. 环形链表 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环…

37 coredump 的生成和使用

前言 呵呵 coredump 之前对于我而言也是一个挺陌生的概念 但是 只从开始了 linux 的相关学习之后, 对于这个 概念也有了一些 理解 呵呵 这里 以一些 简单的例子 来看一下 coredump 的生成和使用 首先执行 "ulimit -c unlimited" 测试用例1 - 除数为 0 root…

【TypeScript】TS入门级基础学习(一)

【TypeScript】TS入门级基础学习(一) 一、前言 TypeScript 是一种用于应用程序规模的 JavaScript 语言。 TypeScript 向 JavaScript 添加了可选类型,支持用于任何浏览器、任何主机、任何操作系统的大规模 JavaScript 应用程序的工具。 Type…

Spark(37):Streaming DataFrame 和 Streaming DataSet 创建

目录 0. 相关文章链接 1. 概述 2. socket source 3. file source 3.1. 读取普通文件夹内的文件 3.2. 读取自动分区的文件夹内的文件 4. kafka source 4.1. 导入依赖 4.2. 以 Streaming 模式创建 Kafka 工作流 4.3. 通过 Batch 模式创建 Kafka 工作流 5. Rate Source…

2023牛客暑期多校-J-Qu‘est-ce Que C‘est?(DP)

题意: 给定长度为n的数列,要求每个数都在的范围,且任意长度大于等于2的区间和都大于等于0,问方案数。。 思路: 首先要看出是dp题,用来表示遍历到第i位且后缀和最小为x的可行方案数(此时的后缀可以只有最…

Java 版 spring cloud +spring boot 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单

工程项目各模块及其功能点清单 一、系统管理 1、数据字典:实现对数据字典标签的增删改查操作 2、编码管理:实现对系统编码的增删改查操作 3、用户管理:管理和查看用户角色 4、菜单管理:实现对系统菜单的增删改查操…

linux下nginx的安装和使用

文章目录 📒安装nginx正常使用nginx包安装1️⃣上传到对应目录2️⃣解压nginx3️⃣检查是否启动成功 使用docker安装nginx 📒使用nginx1️⃣简单的反向代理2️⃣介绍location配置中root和alias的区别 📒安装nginx 正常使用nginx包安装 官网…

BLE基础理论/Android BLE开发示例

参考:https://blog.csdn.net/qq_36075612/article/details/127739150?spm1001.2014.3001.5502 参考: https://blog.csdn.net/qq_36075612/article/details/122772966?spm1001.2014.3001.5502 目录 蓝牙的分类传统蓝牙低功耗蓝牙 蓝牙专业词汇&#xff…

SpringAOP的相关概念

文章目录 一.什么是AOP二.AOP的组成部分三.SpringAOP的实现3.1 增加SpringAOP依赖3.2 创建切面3.2 创建切点3.3 创建通知3.4 创建连接点 四.SpringAOP的实现原理4.1 JDK动态代理4.2 CGLIB 动态代理总结 一.什么是AOP AOP,全称为Aspect-Oriented Programming&#x…

解决 tensorflow 出现的 ImportError: Could not find the DLL(s) ‘msvcp140_1.dll‘. 问题

在安装完tensorflow库后出现 问题详述: ImportError: Could not find the DLL(s) msvcp140_1.dll. TensorFlow requires that these DLLs be installed in a directory that is named in your %PATH% environment variable. You may install these DLLs by downlo…