labelCloud简介

labelCloud是一款专门用于点云数据3D边界框标注的轻量级开源工具。它由德累斯顿工业大学的Christoph Sager开发,旨在为3D对象检测、6D姿态估计等计算机视觉任务提供便捷高效的数据标注解决方案。

labelCloud具有以下主要特点:

轻量级设计,易于安装和使用

支持多种点云文件格式的导入

提供picking和spanning两种标注模式

支持标注结果的多种导出格式

丰富的快捷键和鼠标操作

可扩展的标签格式

支持语义分割标注

通过这些功能,labelCloud为研究人员和开发者提供了一个灵活强大的3D点云标注工具。

安装与配置

labelCloud支持通过pip和git两种方式安装:

通过pip安装

pip install labelCloud

labelCloud --example # 使用示例点云启动labelCloud

通过git手动安装

git clone https://github.com/ch-sa/labelCloud.git

pip install -r requirements.txt

python3 labelCloud.py

安装完成后,用户可以通过编辑config.ini文件或应用内设置来配置软件。主要的配置选项包括:

导入/导出文件格式

标签类别

界面设置

快捷键绑定

等等

详细的配置说明可以参考官方文档。

标注功能

labelCloud支持两种主要的标注模式:picking模式和spanning模式。

Picking模式

在picking模式下,用户可以:

选择边界框的位置(前上方边缘)

通过鼠标滚轮调整z轴旋转

这种模式适合快速标注形状规则的物体。

Spanning模式

spanning模式则允许用户:

依次选择4个顶点来确定边界框的长度、宽度和高度

最后两个顶点(宽度和高度)所在的平面会被锁定,方便选择

这种模式适合标注形状不规则或姿态复杂的物体。

除了这两种基本模式,labelCloud还提供了丰富的校正功能:

使用左侧按钮或快捷键调整边界框的平移、尺寸和旋转

将光标悬停在边界框一侧并滚动鼠标滚轮来调整尺寸

默认情况下,边界框的x轴和y轴旋转是被禁用的。如果需要标注9自由度的边界框,可以在菜单、设置或config.ini文件中关闭z-Rotation Only Mode。这样边界框就可以绕三个轴自由旋转了。

语义分割标注

除了边界框标注,labelCloud还支持基于边界框的语义分割标注。用户可以在启动对话框中开启分割模式,然后像往常一样进行标注。当需要将当前边界框内的所有点标注为当前类别时,只需点击"Assign"按钮即可。

分割结果会以*.bin文件的形式保存在labels/segmentation/目录下。每个*.bin文件包含一个形状为(点数, )、dtype为np.int8的数组。数组中的每个元素代表原始点云中对应点的标签索引。

导入导出选项

labelCloud支持多种常见的点云文件格式和边界框标签格式,以适应不同的使用场景。软件设计时考虑了易扩展性,用户可以根据需要轻松添加自定义的导入导出格式。

支持的导入格式

类型文件格式彩色*.pcd, *.ply, *.pts, *.xyzrgb无色*.xyz, *.xyzn, *.bin (KITTI)

支持的导出格式

标签格式描述centroid_rel中心点坐标、尺寸、相对欧拉角(弧度)centroid_abs中心点坐标、尺寸、绝对欧拉角(度)vertices边界框8个顶点的坐标kittiKITTI格式(中心点、尺寸、z轴旋转)kitti_untransformed同上,但不进行转换

用户可以通过继承抽象的BaseLabelFormat类来轻松创建自定义的导出格式。所有旋转都是逆时针的(例如,z轴旋转90°/π是从正x轴到负y轴)。

快捷键

labelCloud提供了丰富的快捷键,以提高标注效率:

导航

左键拖动:旋转相机

右键拖动:平移相机

滚轮:缩放

校正

W, A, S, D:向后、左、前、右平移边界框

Ctrl + 右键拖动:三维平移边界框

Q, E:上下移动边界框

Z, X:绕z轴旋转

C, V:绕y轴旋转

B, N:绕x轴旋转

I/ O:增大/减小边界框长度

K/ L:增大/减小边界框宽度

,/ .:增大/减小边界框高度

其他

Del:删除当前边界框

P/Home:重置视角

Esc:取消选中的点

更多快捷键和操作可以参考约定文档。

使用与引用

labelCloud是一个开源项目,欢迎用户提供反馈或分享使用案例。如果在科研项目中使用了labelCloud,请考虑引用以下论文:

@article{Sager_2022,

doi = {10.14733/cadaps.2022.1191-1206},

url = {http://cad-journal.net/files/vol_19/CAD_19(6)_2022_1191-1206.pdf},

year = 2022,

month = {mar},

publisher = {{CAD} Solutions, {LLC}},

volume = {19},

number = {6},

pages = {1191--1206},

author = {Christoph Sager and Patrick Zschech and Niklas Kuhl},

title = {{labelCloud}: A Lightweight Labeling Tool for Domain-Agnostic 3D Object Detection in Point Clouds},

journal = {Computer-Aided Design and Applications}

}

总结

labelCloud作为一款轻量级的3D点云标注工具,为计算机视觉领域的研究者和开发者提供了便捷高效的数据标注解决方案。它支持多种标注模式和文件格式,操作灵活,易于扩展,是3D对象检测、姿态估计等任务的理想标注工具。

无论是学术研究还是工业应用,labelCloud都能满足用户对3D点云数据标注的各种需求。随着项目的不断发展和完善,相信labelCloud会为更多的计算机视觉项目贡献力量,推动3D视觉技术的进步。