news 2026/8/22 22:06:43

labelCloud 上手:2 种标注模式给 3D 点云拉边界框,附安装命令与导出格式对照

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
labelCloud 上手:2 种标注模式给 3D 点云拉边界框,附安装命令与导出格式对照

labelCloud 上手:2 种标注模式给 3D 点云拉边界框,附安装命令与导出格式对照

【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloud

你手里有一批激光雷达点云,要人工标 3D 边界框来训练 3D 目标检测模型,但又不想为此专门学一套大型软件。labelCloud 是一个轻量级 Python 点云标注工具:读入 pcd、ply 等格式的点云,用鼠标拉出 3D 边界框,再按你指定的格式(含 KITTI)导出标签,适合做 3D 检测数据准备的开发者。

它适合谁

三个维度,10 秒判断:

  • 数据类型:点云为*.pcd*.ply*.pts*.xyzrgb(彩色),或*.xyz*.xyzn*.bin(KITTI 格式,无色)。
  • 任务类型:3D 边界框目标检测标签;或基于边界框的语义分割(把框内点染上框的类别)。
  • 运行环境:Windows / macOS / Linux 本地桌面 GUI,按 README 说明支持 Python 3.7–3.9。

如果你的任务是 2D 图像标注或多人群协作平台标注,它覆盖不到——它是单人、本地、批量处理一个pointclouds/文件夹里样本的工具。

labelCloud 3D 点云标注的数据流程

跑通它

最短路径是 pip 加示例工程:

pip install labelCloud labelCloud --example # 自动生成示例点云、示例标签和 config.ini

想跟最新代码就走源码:

git clone https://gitcode.com/gh_mirrors/la/labelCloud cd labelCloud && pip install -r requirements.txt python3 labelCloud.py

点云放pointclouds/文件夹,标签写到labels/文件夹,文件名与点云一一对应。首次启动会弹出欢迎对话框,这是你必须做的两件事:选标注模式(物体检测 / 语义分割),填类别列表(名称、颜色、id)并指定默认类别,再定导出格式。类别漏填的话,后续框会挂错类别。文件夹结构和启动细节见 安装说明。

labelCloud 欢迎对话框:设置标注模式、类别标签与导出格式的初始化界面

首次启动的配置入口

核心能力拆解

能力分三块:标注、校正、导出。

标注模式:picking 一次点击出框,spanning 逐顶点定尺寸

  • picking:在框的“前上边缘”位置点一下,滚轮调 z 轴朝向,尺寸取config.inistd_boundingbox_*参数。车辆、行人这类形状规则的物体很快。
  • spanning:依次选 4 个顶点,逐次跨出长、宽、高;后两个顶点的层高被锁定,更容易点中。尺寸各异的物体用它。

出框之后靠键盘精修,常用快捷键分组如下:

分组快捷键作用
平移W/A/S/DQ/E前后左右、上下移动框
旋转Z/XC/VB/N分别绕 z、y、x 轴旋转
尺寸I/OK/L,/.加/减长、宽、高
尺寸光标悬停框边 + 滚轮(side pulling)拉伸对应维度
导航R/FT/G19Y/H切样本、切框、选框、切类别
通用Del删框,P重置视角

注意:默认只允许 z 轴旋转(z_rotation_only = True),要做 9 自由度标注,先在菜单或config.ini里关掉 z-Rotation Only Mode。

两种标注模式的实际操作

导出格式对照表

标签文件按所选格式写入labels/,与点云同名,5 种格式的区别:

格式内容备注
centroid_rel质心 + 尺寸 + 相对旋转弧度制,-π..+π
centroid_abs质心 + 尺寸 + 绝对旋转角度制,0..360°
vertices框 8 个顶点的[x, y, z]顶点顺序见 docs/conventions.md
kittiKITTI 目标格式需要calib/里的标定文件
kitti_untransformedKITTI 标签结构不做坐标变换

基于边界框的语义分割

欢迎对话框打开分割开关后,照常标框;框位置合适时按 Assign,框内所有点就写入当前类别。结果存到labels/segmentation/,是np.int8*.bin数组,长度等于点数,每个值是类别索引。

进阶与生态

  • 可调参数集中在config.ini:导出精度export_precision、逐帧标签传播propagate_labels(把上一帧框带到新帧)、9 自由度开关、平移/旋转步进都在这里,含义见 配置说明。
  • 增删类别、改颜色:编辑labels/_classes.json
  • 扩展点:自定义导出格式,继承BaseLabelFormat实现 import/export 两个方法,见 labelCloud/definitions/label_formats/base.py;点云读取器同理,在labelCloud/io/pointclouds/下照着numpy.py扩展。
  • 对接训练链路:kitti/kitti_untransformed是标准 KITTI 标签结构,下游按 KITTI 数据处理的流水线可直接消费;你的格式不在列表里就自己写一个 exporter。

常见问题与坑

picking 模式出来的框为什么都一个尺寸?尺寸就是config.ini[LABEL] 段std_boundingbox_length/width/height的默认值。按你的主要物体改这三个数,或出框后用I/OK/L,/.微调。

导出的旋转角度和框架对不上?先确认选的是centroid_rel(相对弧度)还是centroid_abs(绝对角度制),两者数值差一个 π 和一次单位换算;用vertices时顶点顺序固定,以 docs/conventions.md 的约定为准。

kitti 导出报缺文件?每个点云都要配一个标定文件放在calib/(路径由calib_folder指定)。你不需要标定变换、只要标签结构一致,直接改选kitti_untransformed

下一步:跑一遍labelCloud --example,用自带示例点云从标注到导出完整走一遍,再对照 docs/configuration.md 把类别和格式改成你项目里的。🚀

【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloud

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 22:02:49

基于Springboot+Vue的中小学研学管理系统(源代码+文档+PPT+调试+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

作者头像 李华
网站建设 2026/8/22 22:01:53

民宿住宿合同电子签有效吗?房东住客都该看清

住客退租时指着床垫上的污渍要扣押金,房东翻出聊天记录说「你当时答应了」,住客说「我什么时候答应过」。两边各执一词,民宿老板夹在中间,只能自认倒霉退钱了事。 民宿生意小,纠纷不少。靠微信聊几句就定下的入住约定&…

作者头像 李华
网站建设 2026/8/22 21:51:22

2026AI论文工具红黑榜|毕业避坑实测!好用封神vs踩坑避雷✅

随着高校重复率AIGC双检全面落地,AI写论文早已不是捷径,而是“选对封神、选错翻车”。市面上AI论文工具五花八门,有的一站式合规定稿、省心省力,有的漏洞百出、暗藏学术风险,轻则论文被导师打回重改,重则查…

作者头像 李华
网站建设 2026/8/22 21:46:18

Calibre电子书管理:从格式转换到私人图书馆搭建全指南

如果你手头有一堆格式各异的电子书,比如 Kindle 专用的 MOBI、苹果图书青睐的 EPUB、PDF 文档,甚至是 TXT 纯文本,想要统一管理、格式转换、编辑元数据,或者只是想在多个设备间无缝阅读,那么今天要聊的这个工具&#x…

作者头像 李华