SUSTechPOINTS三维点云标注工具使用

SUSTechPOINTS使用官方地址:SUSTechPOINTS

官方中文教程

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

cd SUSTechPOINTS

pip install -r requirement.txt

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

启动python main.py

然后浏览器打开http://127.0.0.1:8081

使用准备数据集在SUSTechPOINTS/data目录下添加准备标注的数据集。详细的目录结构可以参考下面的结构。

+- data

+- scene1

+- lidar

+- 0000.pcd

+- 0001.pcd

+- camera

+- front

+- 0000.jpg

+- 0001.jpg

+- left

+- ...

+- aux_lidar

+- front

+- 0000.pcd

+- 0001.pcd

+- radar

+- front_points

+- 0000.pcd

+- 0001.pcd

+- front_tracks

+- ...

+- calib

+- camera

+- front.json

+- left.json

+- radar

+- front_points.json

+- front_tracks.json

+- label

+- 0000.json

+- 0001.json

+- scene2

label文件夹下存放的是每个点云的标签文件。

如果只有激光雷达数据,可以只新建一个lidar和label文件夹。

标注过程

在浏览器页面的左上角,可以找到选择数据集文件夹和选择要标注的点云文件的下拉框按钮。选择完毕后就可以在页面中看到点云被加载进来了。

鼠标右键选择New,可以看到预定义了许多标注类别,这些标注类别可以在obj_cfg.js文件中找到定义。

选择新建一个Pedestrian类别,可以看到多了一个3D框。选择这个3D框,可以在左侧三个不同视图下调整方框的大小和位置。

快捷键

可以按住Ctrl,使用鼠标左键选中点云,可以进行快速框选。之后可以在这个基础上进行微调。

q ==> 逆时针旋转 e ==> 顺时针旋转

r ==> 逆时针旋转同时自动调整box大小 f ==> 顺时针选择同时自动调整box大小

g ==> 反向

1 ==> 前一个box 2 ==> 后一个box

3/PageUP ==> 前一帧点云 4/PageDown ==> 后一帧点云

先标号一个物体后,按V键进入批量操作,然后可以选择多个点云,右键选择Auto annotate,可以实现自动标注。

将label文件转化成OpenPCDet的格式import json

filename = "777.json"

with open(filename, 'r') as f:

data = json.load(f)

label_list = []

for obj_dict in data:

label_name = obj_dict["obj_type"]

pos_xyz = obj_dict["psr"]["position"]

rot_xyz = obj_dict["psr"]["rotation"]

scale_xyz = obj_dict["psr"]["scale"]

temp = str(label_name) + " "

for xyz_dict in [pos_xyz, scale_xyz]:

for key in ["x", "y", "z"]:

temp += str(xyz_dict[key])

temp += " "

temp += str(rot_xyz["z"]) + "\n"

label_list.append(temp)

txt_name = filename.split(".")[0] + ".txt"

with open(txt_name, "w") as f:

for label in label_list:

f.write(label)