公司动态
亲手标好一帧3D点云:point-cloud-annotation-tool 十分钟上手指南
亲手标好一帧3D点云point-cloud-annotation-tool 十分钟上手指南【免费下载链接】point-cloud-annotation-tool项目地址: https://gitcode.com/gh_mirrors/po/point-cloud-annotation-tool深夜十一点自动驾驶标注员小林盯着屏幕上密密麻麻的白色点云屏幕上是一只本该被框起来的卡车但框线歪了 15 度他正在用鼠标一点一点地掰。这不是个例——3D 点云标注正卡在自动驾驶数据流水线最费人的那一环。而今天要介绍的 point-cloud-annotation-tool就是一款专为手动 3D 边界框标注而生的开源工具基于 PCL 和 VTK 构建原生支持 KITTI-bin 格式点云标注结果与 Apollo 3D 格式完全兼容几分钟就能让一帧点云从毛坯变成标准答案。为什么不用自研工具从零写一个点云标注器的真实代价很多团队的第一反应是我们自己写一个。如果你也这么想过请先算一笔账你以为要做的实际要踩的坑画一个 3D 框要处理 6 个面的拖拽手柄、旋转、碰撞检测显示点云要搞定 PCL VTK 的渲染管线、坐标轴、点选高亮保存标注要对齐 KITTI/Apollo 的字段顺序和数值格式去掉地面要么写 RANSAC 平面拟合要么手动调高度阈值这还不算 Windows 和 Ubuntu 两套环境下的编译问题。而 point-cloud-annotation-tool 把这些全都替你做好了——代码仓库里从渲染到交互、从颜色映射到文件读写一条龙齐全。它不追求大而全而是把标注一帧点云这件事做到顺手。凭什么选它四个让人安心的理由理由一格式零转换。打开cloud.bin如果旁边存在cloud.bin.txt标注会自动加载保存时写回同名 txt字段顺序与 Apollo 3D 格式一致。数据进来什么样出去还是什么样不污染你的原始数据。理由二颜色即分类。类型和颜色在内部由 GlasbeyLUT 映射打开就能看见紫色是 vehicle、红色是 cyclist、蓝色是 pedestrian、橙色是 unknown、绿色是 dontCare。一眼扫过去场景里有哪些目标、分别属于哪类不用看列表就知道。理由三框是真的能改。基于 vtkBoxWidgetRestricted 实现的边界框编辑支持平移、缩放、旋转选中后随时精细调整贴合点云才算数。理由四轻量可扩展。依赖只有 PCL 1.8、VTK 8.1 和 Qt5在 Ubuntu 16.04 与 Windows 10 上都验证过源码结构清晰改造成自己的工具成本很低。从打开文件到保存标注一次完整的心路历程纸上谈兵没用我们直接走一遍标准流程。第一步把点云装进来git clone https://gitcode.com/gh_mirrors/po/point-cloud-annotation-tool之后三条命令完成构建mkdir build cd build cmake .. make然后点工具栏的 Open选一个 KITTI-bin 格式的.bin文件。黑背景下白色点云铺开左下角是红绿蓝 XYZ 坐标轴——这就是你的工作台。第二步选类型画框在左侧 Types 面板点一下你想要的类别比如 vehicle再点工具栏的 BoundBox然后到点云上框出目标范围。工具会基于你选中的点自动计算包围盒生成一个初始的 3D 边界框。第三步精修到严丝合缝刚生成的框往往不够准别急这是标注的主战场点击框即可选中进入编辑状态直接拖拽手柄调整大小和位置需要旋转朝向时拖动旋转手柄让框的长边和车头方向对齐过程中实时观察框与点云的贴合度多转几个视角确认第四步保存收工File → Save标注写入同名.txt文件。每一行就是一条标准记录类型 中心坐标 长宽高 偏航角可以直接喂给下游训练管线。跑完一帧之后你会发现最费时间的从来不是画框本身而是把框摆正。这也是为什么这款工具把重心压在边界框的交互体验上。藏在代码里的三个贴心设计想深入了解实现源码本身就是最好的文档。三个值得去读的角落visualizer.cpp/visualizer.h——所有交互的入口。点选、框选、键盘事件、地面去除、标注的创建与删除都在这里汇合。想加一个新功能从这里追起最顺。vtkBoxWidgetRestricted.cpp/Annotaion.cpp——边界框的灵魂。前者实现受限的交互手柄后者负责标注数据的存储、变换和类型管理。Annotation::adjustToAnchor()这个方法值得单独看它会在保持当前朝向的前提下重新计算中心与缩放让框自动贴近选中点。pcl/visualization/目录——工具对 PCL 可视化库做了一次轻量扩展自定义了 LUT 颜色处理器。如果你需要调整颜色方案改这里。另外交互快捷键虽然不多但个个管用按x切换选择模式配合Ctrl左键做精确点选、Shift做多选选中标注后按Del直接删除。避坑手册标注生涯常见的三个坎坎一标注文件加载不出来。先检查命名——打开的是cloud.bin标注文件必须是cloud.bin.txt一字不差再看路径尽量别用带中文的目录。坎二框怎么都拖不准。回到选择模式按x用Ctrl左键点选目标点再基于选区重建框往往比硬拖手柄快得多。坎三地面点太碍事。工具内置两种去地面方案阈值模式适合起伏地形手动给个高度阈值平面检测模式适合平坦道路用 RANSAC 思路自动找地面还能勾选remove plane直接剔除。复杂场景可以先平面检测再阈值微调。写给谁以及你的下一步如果你是自动驾驶工程师需要一个免费、格式标准、能立刻用起来的标注器如果你是计算机视觉研究者想快速给一帧点云打上干净的 3D 框来验证算法如果你只是想搞懂3D 边界框标注这回事想找一份 PCL VTK 交互代码来读——它都合适。下一步很简单clone 下来编译然后打开你的第一帧.bin文件。十分钟后你会在屏幕上亲手框出第一个目标。那一刻你会意识到数据标注这件事原来可以这么顺手。【免费下载链接】point-cloud-annotation-tool项目地址: https://gitcode.com/gh_mirrors/po/point-cloud-annotation-tool创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考