点云标注软件SUSTechPOINTS的安装和使用,自测win10和ubuntu20.04下都可以用

点云标注软件SUSTechPOINTS的安装和使用
github项目源码:https://github.com/naurril/SUSTechPOINTS
gitee源码以及使用教程:https://gitee.com/cuge1995/SUSTechPOINTS

首先拉取源码

git clone https://github.com/naurril/SUSTechPOINTS

最好是在conda的虚拟环境下安装,如果嫌麻烦也可以不用。
创建conda 虚拟环境

conda create -n sustechpoints python=3.8 -y

激活虚拟环境并cd到SUSTechPOINTS源码路径下

conda activate sustechpoints
cd SUSTechPOINTS

安装requirement.txt

pip install -r requirement.txt

下载模型,放到SUSTechPOINTS1/algos/models路径下。下载可能有点慢,我已经上传到附件资源中,或者在这里下:
通过百度网盘分享的文件:deep_annotation_inference.h5
链接:https://pan.baidu.com/s/1z278zgqgNHIkS-XVt7Gfrw?pwd=d7nh
提取码:d7nh

wget https://github.com/naurril/SUSTechPOINTS/releases/download/0.1/deep_annotation_inference.h5  -P algos/models

运行下面的命令,然后打开浏览器,输入 http://127.0.0.1:8081

python main.py

终端打印如下所示:
在这里插入图片描述

浏览器界面如下所示,接着根据gitee源码中的标注教程进行标注就可以了。

在这里插入图片描述
这个软件安装在win10和ubuntu20.04下都可以使用,需要注意的是,如果是安装在win10下,运行了python main.py,没有报错,但是打开浏览器却是一片空白,可以先按F12看看网页的输出,有可能会输出一个报错: Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/plain”. Strict MIME type checking is enforced for module scripts per HTML spec.
这时候只需要修改注册表HKET CLASSES ROOT中.js/Content Type的"text/plain"为"text/javascript’ ,重启电脑后再运行即可。

在这里插入图片描述
如果还未解决页面空白的情况,可以参考原作者的方法:下载fusion分支,用npm编译一下js的代码。参考网址:https://github.com/naurril/SUSTechPOINTS/issues/132

在这里插入图片描述

<think>好的,我现在需要帮助用户将SUSTechPoints数据格式转换为KITTI数据格式。首先,我需要了解这两种数据格式的具体结构差异。 用户提到的SUSTechPoints应该是一种点云数据集,而KITTI则是自动驾驶领域常用的数据集,包含点云、图像等多种数据。但用户提到要转换的是“纯点云”的KITTI格式,所以可能不需要处理图像部分,主要关注点云数据的转换。 根据用户提供的引用内容,KITTI点云数据的格式是二进制文件,每个点由四个浮点数组成(x, y, z, intensity)。而SUSTechPoints的数据结构可能不同,需要确认其存储方式。比如,SUSTechPoints可能包含坐标其他属性,如反射强度、类别标签等,但KITTI可能只需要坐标强度。 接下来,转换步骤可能包括: 1. 读取SUSTechPoints的数据,可能是文本文件或二进制文件。 2. 解析每个点的坐标其他属性,提取x, y, z强度。如果SUSTechPoints中没有强度值,可能需要填充默认值,比如0。 3. 将数据按KITTI的二进制格式写入,每个点占16字节(4个float,每个4字节)。 4. 处理坐标系差异。例如,KITTI可能使用不同的坐标系(如相机坐标系或激光雷达坐标系),需要确认是否需要坐标变换,比如轴的方向调整。 5. 生成对应的标签文件,但用户提到是纯点云数据集,可能标签部分可以忽略或设为默认。 另外,需要注意文件名的规范,KITTI通常使用类似“000000.bin”的命名方式,按顺序编号。同时,可能需要创建校准文件,但如果用户不需要图像相关的数据,这部分可以简化或留空。 可能的代码步骤是使用Python读取SUSTechPoints数据,处理坐标转换,然后写入二进制文件。例如,使用NumPy来处理数据会更高效。如果SUSTechPoints的数据存储为Numpy数组或文本,可以按行读取,提取所需字段,调整坐标系,最后保存为.bin文件。 还需要考虑可能的异常情况,比如数据中的不同字段数量、坐标系差异的处理方式。用户可能需要调整轴的方向,比如将SUSTechPoints的Y轴Z轴交换,或者缩放坐标单位(如米到厘米)。 最后,建议用户验证转换后的数据是否与KITTI兼容,可以使用KITTI的查看工具检查点云是否正确显示。另外,如果SUSTechPoints包含其他信息如类别,可能需要忽略或映射到KITTI的类别标签,但纯点云可能不需要这些。</think>将SUSTechPoints点云数据转换为KITTI格式需要处理数据结构匹配坐标系转换两个关键环节。以下是具体实现步骤: ### 一、数据结构对比 1. **SUSTechPoints**格式特征: - 通常包含XYZ坐标、反射强度、回波次数等属性 - 存储形式可能是`.bin`或`.pcd`格式 2. **KITTI点云格式**规范[^1]: - 二进制文件(.bin) - 每个点用4个float表示:$$(x, y, z, \text{intensity})$$ - 坐标系为激光雷达坐标系(前x/左y/上z) ### 二、转换步骤 ```python import numpy as np def convert_sustech_to_kitti(input_path, output_path): # 读取SUSTechPoints数据(假设是numpy格式) sustech_data = np.fromfile(input_path, dtype=np.float32).reshape(-1, 5) # 假设每点有xyz+intensity+其他 # 坐标系转换:假设SUSTechPoints使用右x/前y/上z坐标系 kitti_points = sustech_data[:, [0, 1, 2, 3]] # 提取x,y,z,intensity kitti_points[:, 1] *= -1 # 调整y轴方向 # 保存为KITTI格式 kitti_points.astype(np.float32).tofile(output_path) ``` ### 三、关键处理细节 1. **坐标系调整**: - KITTI要求坐标系:$$x_{前} \rightarrow +x,\ y_{左} \rightarrow +y,\ z_{上} \rightarrow +z$$ - 若SUSTechPoints使用不同坐标系,需进行旋转/镜像变换 2. **强度值处理**: - 若原始数据无强度值,可用回波次数替代或填充0 - 强度值归一化到[0,1]范围 3. **文件命名规范**: ```bash 000000.bin 000001.bin ... ``` ### 四、验证方法 使用KITTI官方可视化工具检查点云分布: ```python import open3d as o3d def visualize_kitti(bin_path): points = np.fromfile(bin_path, dtype=np.float32).reshape(-1,4) pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points[:,:3]) o3d.visualization.draw_geometries([pcd]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值