3D点云数据的标定,从搭建环境到点云标定方法及过程,只要有一台Windows笔记本,让你学会点云标定

ptscloudpre: 点云标定准备:

说明:

如下介绍适用windows系统的电脑。apple笔记本同理,但是需要安装MAC版本的anaconda。网址:Free Download | Anaconda可下载对应MAC版本的Anaconda的安装包建议下载2022年或2021年的安装包安装。

1 先安装anaconda的环境

文件夹中包含此Anaconda安装包,全称如下(这是2021年的安装包):

Anaconda3-2021.05-Windows-x86_64.exe

1.1 双击Anaconda3-2021.05-Windows-x86_64.exe,一路next进行安装,相关过程截图如下:

双击Anaconda3-2021.05-Windows-x86_64.exe后,弹出:

在这里插入图片描述

然后选择“I Agree”

然后“Next”

然后设置路径, 并“Next”:如下图

在这里插入图片描述

然后“Install”

在这里插入图片描述

等待一段时间,

页面提示Completed之后,点击“Next”。然后Next,然后finish.

此时安装完成。

此时,开始,所有应用会新增anaconda,如下

在这里插入图片描述

2 安装SUStech相关(需连接有线或无线网络)

2.1 点击下图中的anaconda prompt(anaconda)

在这里插入图片描述

  1. 2下图可以看出我的账户是Users,用户名是VRC_Cal。

在这里插入图片描述

命令行输入命令如下,然后回车,根据命令输出,可以看出conda 的环境此时只有base。

conda env list

2.3 然后根据如下命令创建搭建sustech环境的虚拟环境。注意,可以看截图中“(base) C:\Users\VRC_Cal>” 的后面我输入的命令即可。即输入“conda create --name sustech python=3.8 -y”,然后回车。

在这里插入图片描述

上面截图中的命令包含如下:这句命令的意思是创建一个名字是sustech的虚拟环境。

conda create --name sustech python=3.8 -y

上述命令包含的打印还有如下图

在这里插入图片描述

上图看出,已经安装了一些基本的库,如wheel-0.41.2、… … 、python-3.8.18。

2.4 拷贝【cloudpre】中的【SUSTechPOINTS】到本地的英文呢路径下,如我的路径是在“D:\myWork\SUSTechPOINTS”路径,注意,引号中的路径不能出现中文。

2.5 通过如下命令将anaconda prompt界面中的路径从"C:\Users\VRC_Cal>"转到2.4的路径“D:\myWork\SUSTechPOINTS”。注意,如下命令需根据自己本地路径做调整,下述只是针对我本地电脑的示例。包括截图如下。

cd ..
cd ..
D:
cd myWork
cd SUSTechPOINTS

在这里插入图片描述

2.6 然后通过如下命令激活刚才创建的虚拟环境(上面的截图中也有示例)

conda activate sustech

在这里插入图片描述

可以看出,左侧括弧()中的环境从 base变成了 sustech

2.7 在sustech环境下安装cpu版本的torch。通过如下命令, 输入如下命令,回车

conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 cpuonly -c pytorch

安装过程部分截图如下:

在这里插入图片描述

… …

如下询问时,输入“ y ”然后回车,就开始安装torch相关的一些包了。

在这里插入图片描述

安装完成后,如下述截图, 打印会包含如下图所示的“done”字样。

在这里插入图片描述

上面如果没有出现done,可能是由于网络原因没有安装成功,需重新输入命令安装。

2.8 继续安装其他相关的依赖包(放心好啦,这些都是很小的包,就相当于你装好Office之后,word wps ppt都可以打开一样)

通过如下述代码进行安装。注意,如截图所示,如下命令一定在SUSTechPOINTS路径下进行。

输入下述命令,回车

pip3 install -r requirement.txt

上述命令的部分截图如下(可能需要等待几分钟(10多分钟,视网速而定)。由于较多打印,所以只截取部分截图):

在这里插入图片描述

… …

在这里插入图片描述

上面截图中包含 Successfully uninstalled typing_extensions-4.9.0
Successfully installed absl-py-2.1.0 astunparse-1.6.3 autocommand-2.2.2 cachetools-5.3.2 cheroot-10.0.0 cherrypy-18.9.0 contourpy-1.1.1 cycler-0.12.1 filterpy-1.4.5 flatbuffers-23.5.26 fonttools-4.47.2 gast-0.4.0 google-auth-2.27.0 google-auth-oauthlib-1.0.0 goog… …等内容。可以看出成功安装了一系列相关的依赖包。

2.9 通过输入如下命令,然后回车,启动程序,可能需要略等几秒钟。

python main.py

正常情况下,会打印如下信息,

在这里插入图片描述

… …

在这里插入图片描述

注意,上述完成之后,【anaconda prompt(anaconda)】这个界面的黑框框一直不能关闭哟,如果不标注的话,才能关闭。

2.10 浏览器进入网址 http://127.0.0.1:8081就可以打开标定界面。

如下图所示

在这里插入图片描述

2.11 选择要标定的数据,如下图,左上角选择myData , myData的右侧选择要标定的数据(infused_1…等),则可以开始标定。

在这里插入图片描述

3 新的一组数据来了,标定方法:

3.1 点云数据准备:这个是需要标定的数据,包含如下子文件夹目录,myData也可能是其他名称,如"mydata0129tyh",但里面必定包含“lidar”“label”“camera”这三个文件夹

/myData
/myData/lidar  # 需要标定的点云数据
/myData/label  # 此文件夹必须有,否则保存数据的时候将会报:save failed,status:500
/myData/camera # 如有不同角度的相机图片,若没有,则无

3.2 将上述myData保存在SUSTechPOINTS项目对应的data目录下

SUSTechPOINTS/data/

此时,SUSTechPOINTS/data目录下包含

SUSTechPOINTS/data——————example  # 示例数据,myData的递归目录格式参看此数据的递归目录——————myData   # 自己需要标定的数据

3.3 在sustech的环境下启动命令打开标定界面

打开Anaconda Prompt 命令窗口,参见2.1节

conda env list
conda activate sustech
cd SUSTechPOINTS   # 这句话如果进不到SUSTechPOINTS目录,则参见2.5节切换路径
python ./main.py

再通过浏览器进入网址【 http://127.0.0.1:8081】就可以打开标定界面。
3.4 标定界面开始标定(标定过程如果不确定目标是哪一种类型,就找对应的图片看,尤其是行人等待区的目标是骑车的人还是单独的人的类型的区分)

① 进入网址 http://127.0.0.1:8081

在这里插入图片描述

② 打开 myData数据

在这里插入图片描述

③ 标定目标:给目标打3DBox (详情参见:https://gitee.com/cuge1995/SUSTechPOINTS)

  1. 1.  右键移动点云数据界面
    2.  滚轮放大缩小点云数据界面
    3.  新加Box方法:尽量鸟瞰图角度,按住Shift/Ctrl(常用Ctrl),鼠标左键针对目标拉一个矩形框,会生成Box。Box生成之后,需要手动调整 方向 或 宽 高 长。
    

    如下图是Ctrl+鼠标左键矩形框,后的结果:

    在这里插入图片描述

上图中不匹配的地方,经调整后,正确的标注结果为下图所示:

在这里插入图片描述

④ 所有目标标注结束后,在myData/label目录下会包含文件如下

myData/label/infused_1.json

⑤ 标定过程中,如下图所示Output界面可以关掉

在这里插入图片描述

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

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

相关文章

ModuleNotFoundError No module named ‘bs4‘ 问题处理

ModuleNotFoundError: No module named ‘bs4’ 问题处理 在使用Postgres数据库时,因为SQL脚本中使用到了xml_killer函数,导致直接报错: org.postgresql.util.PSQLException: ERROR: ModuleNotFoundError: No module named ‘bs4’ 后来在…

Java中的Service

七. Service 1. 数据与逻辑分离 之前我们讲面向对象设计,都是把数据和逻辑放在一起,这是理想情况。 现实情况是,把对象分为两类,一类专门存数据,一类专门执行逻辑 存数据的就是一个 Java Bean 存逻辑的叫做 XxxSe…

CentOS 7安装Mysql+Mycat

安装MySQL yum源 yum localinstall http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm修改源 vi /etc/yum.repos.d/mysql-community.repo [mysql-connectors-community] nameMySQL Connectors Community baseurlhttp://repo.mysql.com/yum/mysql-connectors…

qml中访问控件内部的子项

如何访问Repeater类型内部的子项、Row等布局类型内部的子项以及ListView内部的子项等。。。 1、测试代码 import QtQuick 2.0 import QtQuick.Controls 2.12 import QtQuick.Window 2.12 import QtQuick.Layouts 1.3 import QtQml 2.12Window {id: windowobjectName: "m…

vue-drag-resize-rotate 拖拉拽旋转

中文在线演示地址 1.安装 npm install gausszhou/vue-drag-resize-rotate 2.使用 <template><div class"container"><vue-drag-resize-rotate:w"200":h"200":x"0":y"0":parent"true":draggab…

数据库四种隔离级别

未提交读&#xff08;脏读&#xff09;ru&#xff0c;在事务b中执行了某些操作&#xff0c;比如添加或者修改&#xff0c;这时候事务a可以读取到事务b这个事务还没提交之前的这些操作的结果&#xff0c;其结果被称为脏读。提交读 rc&#xff0c;事务b执行了一些操作并提交&…

基于Python Django的大数据招聘数据分析系统,包括数据大屏和后台管理

基于Python Django的大数据招聘数据分析系统是一个综合利用大数据技术和数据可视化技术的招聘行业解决方案。该系统旨在帮助企业和招聘机构更好地理解和分析招聘市场的趋势和变化&#xff0c;从而提高招聘效率和质量。 首先&#xff0c;该系统提供了一个强大的后台管理功能&am…

Docker容器引擎(3)

目录 一.Docker 镜像的创建 1&#xff0e;基于现有镜像创建 2&#xff0e;基于本地模板创建 3.基于Dockerfile创建&#xff1a; Dockerfile 操作常用的指令&#xff1a; ADD 和 COPY 的区别&#xff1f; CMD 和 ENTRYPOINT 的区别&#xff1f; 容器启动命令的优先级 如…

CF1362C Johnny and Another Rating Drop(二进制、复杂度考虑)

看完数据范围 n ∈ [ 1 , 1 e 18 ] n\in[1,1e18] n∈[1,1e18]就可以先猜一下要不是可以直接推公式&#xff0c;不能暴力去做&#xff0c;更不能遍历一遍&#xff0c;又看到这种2进制的题目&#xff0c;要猜是不是 l o g log log级别的复杂度。 可以依次考虑每一位 所有 i % 2 …

前端vue集成echarts图形报表样例

文章目录 &#x1f412;个人主页&#x1f3c5;Vue项目常用组件模板仓库&#x1f4d6;前言&#xff1a;&#x1f415;1.在项目终端下载echarts依赖包&#x1f3e8;2.在main.js中导入echarts资源包并使用&#x1f380;3.在.vue文件中直接使用echarts&#xff0c;下面是一个样例&a…

[设计模式Java实现附plantuml源码~创建型] 产品族的创建——抽象工厂模式

前言&#xff1a; 为什么之前写过Golang 版的设计模式&#xff0c;还在重新写Java 版&#xff1f; 答&#xff1a;因为对于我而言&#xff0c;当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言&#xff0c;更适合用于学习设计模式。 为什么类图要附上uml 因为很…

Nginx反向代理配置模块详解

Nginx反向代理配置模块详解 一、前言 随着互联网的发展&#xff0c;Web 应用越来越广泛&#xff0c;随之而来的是对 Web 服务器的高并发、高可用、高性能等需求的日益增长。Nginx 作为一个高性能的 HTTP 和反向代理服务器&#xff0c;由于其出色的性能和稳定性&#xff0c;越…

C语言-算法-线性dp

[USACO1.5] [IOI1994]数字三角形 Number Triangles 题目描述 观察下面的数字金字塔。 写一个程序来查找从最高点到底部任意处结束的路径&#xff0c;使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。 在上面的样例中&#xff0c;从 7 → 3 → 8 →…

配置ansible自动化工具

自动化运维工具 Puppet : 用ruby语言写的 Saltstack : 用python写的,是一个模块化shell(就是命令),用的agent服务连接的被控端,用于大集群,高并发 ansible : 用python写的,也是模块化shell(就是命令),部署简单,不需要启动和安装agent等服务,用的ssh连接被控端,用于小集…

yolov8上使用gpu教程

yolov8上使用gpu教程 安装Cuda和Cudnnyolov8上使用gpu 安装Cuda和Cudnn 1.查看支持的cuda版本&#xff0c;并去官网下载。 nvidia-smi2.网址&#xff1a;https://developer.nvidia.com/cuda-toolkit-archive 3.安装细节 安装的前提基础是&#xff0c;有vs的C环境。我电脑有…

开始学习Vue2(组件的生命周期和数据共享)

一、组件的生命周期 1. 生命周期 & 生命周期函数 生命周期&#xff08;Life Cycle&#xff09;是指一个组件从创建 -> 运行 -> 销毁的整个阶段&#xff0c;强调的是一个时间段。 生命周期函数&#xff1a;是由 vue 框架提供的内置函数&#xff0c;会伴随着 组件…

Java算法 leetcode简单刷题记录3

Java算法 leetcode简单刷题记录3 汇总区间&#xff1a; https://leetcode.cn/problems/summary-ranges/ 把数据按照是否连续分组输出 主要是 n<nums.length-1 && nums[n]1nums[n] 最多可以摧毁的敌人城堡&#xff1a; https://leetcode.cn/problems/maximum-enemy-…

必知的量化交易基础

量化交易核心概念 量化思想 量化交易 量化交易是指以先进的数学模型代替人为的主观判断&#xff0c;利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略&#xff0c;极大地减少了投资者情绪波动的影响&#xff0c;避免在市场极度狂热或悲观的…

对Git更深入了解与学习

对Git更深入了解与学习 0. 前言0.1 工作区与暂存区 1. git remote update origin2. git push origin --delete 分支名 删除远端分支3. git remote4. git fetch5. git status5.1 git status 直观理解5.2 暂存与暂存取消 &#xff08;git restore&#xff09;5.3 push之后 6. git…

网络与IO

netty https://www.cnblogs.com/nanaheidebk/p/11025362.html netty基础知识_netty和websocket区别-CSDN博客 Netty核心概念、架构及用法 - 知乎&#xff08;有图好理解&#xff09; IO java之NIO简介_nio java-CSDN博客 io、nio、tcp协议、socket、websocket、netty、to…