6 步标完一批点云再导出 KITTI:labelCloud 3D边界框标注工具上手路径

📅 2026/8/22 21:05:47
6 步标完一批点云再导出 KITTI:labelCloud 3D边界框标注工具上手路径
6 步标完一批点云再导出 KITTIlabelCloud 3D边界框标注工具上手路径【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloudlabelCloud 是一款用 Python 写的 3D 点云边界框标注工具把点云文件丢进固定目录用鼠标画出带朝向和尺寸的框再把标注导出成 KITTI、顶点坐标等格式供 3D 目标检测或 6D 位姿估计训练使用。全文按真实工作路径走一遍装好软件、放进第一份点云、画出第一个框、调准、选导出格式、批量推进。上图说明整个工作流左侧是.pcd、.ply 等点云文件中间是标注环节右侧是 9DoF 边界框以 KITTI、vertices 等格式落盘。如何用 pip 装好 labelCloud 并加载示例点云结论pip 方式装出来即可全局使用labelCloud命令适合大多数使用者clone 源码方式版本更新适合要改代码的人。pip 安装pip install labelCloud labelCloud --example第二条命令会加载一份内置示例点云可以直接体验完整流程当前支持 Python 3.7–3.9。源码安装git clone https://gitcode.com/gh_mirrors/la/labelCloud cd labelCloud pip install -r requirements.txt python3 labelCloud.py装完后点云文件和标注文件放在哪由项目根目录的config.ini里的[FILE]段决定默认值如下配置项默认值作用pointcloud_folderpointclouds/从哪个文件夹读点云label_folderlabels/标注文件写到哪个文件夹class_definitionslabels/_classes.json类别名、颜色、默认类别、导出格式calib_foldercalib/KITTI 导出用的标定文件segmentation_folderlabels/segmentation/分割标签*.bin存放处第一份点云怎么放进 labelCloud 并开始标注结论把文件丢进pointclouds/就行不需要注册、不需要指定文件。能读什么点云类型支持格式彩色*.pcd、*.ply、*.pts、*.xyzrgb无色*.xyz、*.xyzn、*.binKITTI放好文件后启动欢迎对话框会先弹出来四个地方需要你过一遍标注模式Object Detection边界框标注或Semantic Segmentation语义分割类别列表每个类别填名称、编号、颜色标注过程中也可以随时补新类别Default class新建框自动挂的类别Label export format导出格式后面导出部分展开讲上图就是第一次启动看到的配置界面保存后进入标注主窗口。已有标注文件的点云里出现过的类别会被自动合并进来不用手工补录。怎么画出第一个 3D 边界框拾取模式与跨度模式两种方式都可用区别在于框的初始形状怎么来拾取模式用预设尺寸省时间跨度模式用手工定尺寸保精度。拾取模式Picking适合车辆、行人这类尺寸相对固定的目标在点云上框目标的前上边缘点一下移动鼠标滚轮调整 z 轴朝向直到框贴着目标尺寸取默认值框即刻生成默认尺寸在config.ini的[LABEL]段改你的目标尺寸和示例差多远就改多远配置项默认值含义std_boundingbox_length0.75 m拾取模式初始长度std_boundingbox_width0.55 m拾取模式初始宽度std_boundingbox_height0.15 m拾取模式初始高度跨度模式Spanning适合尺寸不规整的物体依次点选四个顶点分别定出长、宽、高后两个顶点宽、高所在层的层高会被锁定点起来不容易飘上图是主界面实际演示左侧是点云导航与边界框控制按钮右侧是当前类别与激活框的参数面板。画完框之后怎么调准平移、旋转、改尺寸的快捷键结论先按 Z/X 转 z 轴对准朝向再用 I/O、K/L 调长宽最后用 W/A/S/D 微调落位顺序反了会反复改。完整快捷键对照详见 docs/shortcuts.md类别键位作用视角左键 / 右键 / 滚轮绕质心旋转 / 平移视角 / 缩放平移WASD后 / 左 / 前 / 右平移QE升 / 降旋转ZXz 轴旋转CVy 轴旋转BNx 轴默认锁定尺寸I/O长度 ±尺寸K/L宽度 ±尺寸,/.高度 ±切样本R/←、F/→上一个 / 下一个点云切框T/↑、G/↓上一个 / 下一个框切类别YH上一类 / 下一类选中1–9直接选中第 n 个框删除Del删当前框复位P/Home视角复位取消Esc取消当前点选比按键更快的三种操作Ctrl 右键拖动框沿任意维度平移比单键更快滚轮压在框面上滚动side pulling直接缩放对应的那个尺寸调步长按键每按一步移动多少在config.ini的[LABEL]段改——std_translation默认 0.03 m、std_rotation默认 0.5°、std_scaling默认 0.03 m。标小目标就调小标大目标就调大两个常见情况顺手说明要标 9 自由度三轴都能转的框默认z_rotation_only True只开放 z 轴旋转在菜单 Settings 或config.ini里改成FalseC/V、B/N才生效。视角控制不顺手按P复位视角然后用左键旋转、右键平移、滚轮缩放这套标准操作慢慢摆。导出 3D 边界框标注5 种标签格式怎么选结论下游是 KITTI 系检测框架选kitti只要统一结构不做坐标变换选kitti_untransformed自研训练管线按需要选centroid_rel或centroid_abs只要几何点选vertices。导出格式在欢迎对话框里选一次之后写进labels/_classes.json长期生效格式存的内容centroid_rel质心[x,y,z] 尺寸[长,宽,高] 相对欧拉角弧度-π..π[yaw,pitch,roll]centroid_abs质心 尺寸 绝对欧拉角角度制0..360°[yaw,pitch,roll]vertices8 个顶点各[x,y,z]kitti质心 尺寸 z 旋转角需要标定文件kitti_untransformed结构同kitti但不做坐标变换导出 KITTI 前要准备什么给每份点云配一个对应的标定文件放在calib/文件夹config.ini里calib_folder可改文件名与点云对应。两点细节用到再查vertices格式按固定顶点顺序导出从顶点 0左后下开始、由下向上顺时针排到 7右前上规则来自 bbox 库完整约定见 docs/conventions.md导出精度由export_precision控制默认保留 8 位小数框的最小尺寸下限是min_boundingbox_dimension默认 0.01 m想接自己的格式怎么办点云读取器继承labelCloud/io/pointclouds/base.py的BasePointCloud照numpy.py、open3d.py的写法补一个标注导出器继承labelCloud/io/labels/base.py的抽象基类写一个自己的 exporter标注质量自查抽查labels/下的标注文件项目自带labelCloud/tests/测试用例可以对着跑一遍怎么一次标完整批点云连续样本、标签传播与语义分割结论文件全部进pointclouds/后样本间用R/F切多帧场景开标签传播一帧的框直接带到下一帧再微调。批量推进所有点云文件放进pointclouds/主窗口左上角显示当前是第几个样本R/←回上一个F/→前进Del删错框1–9直接选中多框里的目标标签传播Propagate Labels物体在多帧间位置基本不变时在 Labels 菜单勾选该功能或config.ini中propagate_labels True当前帧所有框会复制给还没有标注的下一帧你只需要做修正而不是重画。语义分割标注欢迎对话框里选Semantic Segmentation模式正常画边界框点 Assign分配按钮框内所有点被标上当前类别分割标签以*.bin写入labels/segmentation/可选config.ini里delete_box_after_assign True分配后自动删掉框界面更干净两个容易忘的视角相关配置config.ini的[USER_INTERFACE]段keep_perspective默认False切样本后视角不复用连续标注同一片区域时可以改True省掉每次重新摆视角的时间。走完整条路径pip 安装、点云进pointclouds/、欢迎对话框定模式与格式、拾取或跨度画框、快捷键调准、选对导出格式、批量推进加标签传播。哪一步卡住回上面对应小节查表格就行。【免费下载链接】labelCloudA lightweight tool for labeling 3D bounding boxes in point clouds.项目地址: https://gitcode.com/gh_mirrors/la/labelCloud创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考