一条命令启动3D点云边界框标注:labelCloud轻量标注工具教程

发布时间:2026/8/22 13:17:06
一条命令启动3D点云边界框标注:labelCloud轻量标注工具教程 一条命令启动3D点云边界框标注labelCloud轻量标注工具教程【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloud在为3D目标检测准备训练数据时最耗时的一步往往是给几千个点云打上三维边界框商业标注软件贵且臃肿自己写脚本又低效。labelCloud 是一款轻量级开源的3D点云标注工具用一条 pip 命令就能启动把点云丢进文件夹即可开始标注。三个可验证的要点支持 7 种点云格式直接导入*.pcd、*.ply、*.pts、*.xyz、*.bin等无需预处理提供 5 种标签导出格式其中 kitti 格式可直接对接主流3D检测框架默认只标注航向角可解锁三轴 9 自由度旋转满足位姿估计、抓取任务一条命令用示例数据跑起来官方支持的 Python 版本为 3.7 到 3.9本地版本不同的话建议先用虚拟环境固定版本。pip install labelCloud labelCloud --example--example参数会用内置的示例点云启动不用自己准备数据就能先熟悉界面。想要更新的功能可以从源码安装git clone https://gitcode.com/gh_mirrors/la/labelCloud然后pip install -r requirements.txt把点云文件放进pointclouds文件夹运行python3 labelCloud.py。工具依赖一套固定的目录结构pointclouds/放点云labels/放标注文件config.ini存全局配置。首次启动的欢迎对话框让你确认四件事标注模式目标检测/语义分割、类别名称与颜色、默认类别、导出格式。这里漏建类别也没关系标注过程中可以随时添加工具也会自动从已有标注文件中补全类别。按物体类型选标注模式labelCloud 提供两种标注策略在启动对话框中切换picking拾取模式——适合车辆、行人这类形状相对规则的物体。点选边界框的前上边缘位置用鼠标滚轮调整 z 轴旋转角系统按标准尺寸生成边界框。标准尺寸可在config.ini里预先设置std_boundingbox_length/width/height批量标注同类物体时每个框尺寸一致。spanning跨度模式——适合尺寸各异的物体。依次选取 4 个顶点分别跨出长、宽、高工具自动锁定后两个顶点所在平面选点时不用反复对视角。用快捷键微调边界框粗定位完成后大部分时间在微调。labelCloud 把每个自由度都映射到键盘上不用反复抓鼠标快捷键作用W / A / S / D边界框后移 / 左移 / 前移 / 右移Q / E边界框上移 / 下移Ctrl 右键拖动沿三个维度平移边界框Z / X绕 z 轴旋转C / V绕 y 轴旋转B / N绕 x 轴旋转I / O增大 / 减小长度K / L增大 / 减小宽度, / .增大 / 减小高度光标悬停在框的某侧 滚轮直接改该维度尺寸侧拉R / F或左右方向键切换上一个 / 下一个点云T / G或上下方向键切换上一个 / 下一个边界框Y / H把边界框类别切到列表中前 / 下一项1–9直接跳到第 N 个边界框Del删除当前边界框P或 Home重置视角鼠标留给视角控制左键旋转、右键平移、滚轮缩放。觉得旋转步进太大可以把config.ini中[LABEL]段的std_rotation调小。点云导入与标签导出格式输入输出都是自动的点云放进pointclouds/后工具按文件名与labels/里的标注文件一一配对。点云类型支持格式带颜色*.pcd、*.ply、*.pts、*.xyzrgb无颜色*.xyz、*.xyzn、*.binKITTI无彩色点云可在config.ini里开启按高度着色colorless_colorize区分度更好。导出格式内容centroid_rel质心 尺寸 相对欧拉角弧度-π~πcentroid_abs质心 尺寸 绝对欧拉角角度0~360°vertices边界框 8 个顶点的坐标kittiKITTI 标准格式需要标定文件kitti_untransformedKITTI 结构但不做坐标变换选 kitti 格式时每个点云需要对应的标定文件放在calib/文件夹可用config.ini的calib_folder修改只想复用它的文件结构就选kitti_untransformed。现有格式都不满足下游管线时继承labelCloud/definitions/label_formats/base.py中的基类可以写一个自定义导出器。基于边界框点出语义分割除了边界框labelCloud 还能生成点级类别标签启动对话框中打开语义分割模式照常标注边界框标完一个就点分配按钮框内所有点被赋予当前类别结果按*.bin存入labels/segmentation/每个点对应一个 int8 类别索引顺序与原始点云一致。分配后配合delete_box_after_assign配置可以自动删掉已分配的边界框保持场景清爽。批量标注效率配置多帧连续点云场景下最省事的设置是标签传播把config.ini的[LABEL]段中propagate_labels设为True工具会把当前帧的全部边界框复制到下一帧没有标注的点云你只需修正差异部分。其他常用配置项配置项config.ini作用std_boundingbox_length/width/height拾取模式下边界框的默认长宽高export_precision导出坐标的小数精度默认 8 位keep_perspective切换点云时保留上一个视角show_orientation用箭头显示物体朝向show_2d_image在独立窗口显示关联的2D图像辅助对照这些选项大多也可以在菜单中的图形化设置里直接修改不必反复翻文件。高频问题速答问Python 3.10 装不上怎么办答工具支持 Python 3.7 到 3.9。建议用 conda 或 venv 建虚拟环境把版本固定在这个区间再安装。问导出 kitti 时提示找不到标定文件答kitti 格式要求每个点云有对应标定文件放入calib/文件夹并保持文件名与点云对应只想要文件结构的话改选kitti_untransformed。问要标俯仰和侧倾角但转不动答默认只允许绕 z 轴旋转。把config.ini的[USER_INTERFACE]段中z_rotation_only设为False或在菜单关闭z-Rotation Only Mode即可绕三轴自由旋转9 DoF。问怎么支持自己遇到的点云格式答继承labelCloud/io/pointclouds/base.py的基类实现自定义读取器可参考同目录下numpy.py和open3d.py两个现有实现。点云放好、框标完、格式导出标注就能直接进训练管线。先拿示例数据跑一遍看看第一个三维边界框标出来需要多久 更多参数含义见docs/configuration.md边界框顶点顺序与坐标系约定见docs/conventions.md。【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloud创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考