【点云标注与分割】CloudCompare基础入门教程与快捷操作(gif动图演示)

在正式介绍CloudCompare点云分割标注前,我先介绍一下体例中使用的数据载体和标注情景,接下来从导入、分割、标注、融合、导出 5个部分并结合我的使用经验、快捷键、和踩过的坑来介绍标注方法。

1 数据准备与概览

点云是由一系列点组成的集合,每个点拥有类似于 [ x , y , z , n x , n y , n z , r , g , b , l a b e l ] [{\color{#2EA9DF}{x,y,z}},nx,ny,nz,r,g,b,{\color{#E16B8C}{label}}] [x,y,z,nx,ny,nz,r,g,b,label]的形式,其中 x , y , z {\color{#2EA9DF}{x,y,z}} x,y,z通常是必要的坐标位置信息,而在做分割(seg)任务时,常需要 l a b e l {\color{#E16B8C}{label}} label作为该点所属部位的标签,用于监督训练神经网络。

结合具体场景来说,假设现在有停车场的原始点云数据,涉及的主要物体有person、car、pillar,我们的目的是从原始的点云数据把属于person这一部分的点给分割开来,即需要的 l a b e l {\color{#E16B8C}{label}} labelperson(0)、others(nan) 两类。

简便起见,以原始尺寸为 ( N , 3 ) (N,3) (N,3)的点云为例, N N N为该电云中点的数量, 3 3 3代表每个点具有 [ x , y , z ] [{\color{#2EA9DF}{x,y,z}}] [x,y,z]的形式。点云数据下图所示:图1
可视化后,如下图所示,所有物体的颜色( l a b e l {\color{#E16B8C}{label}} label)都一样,其中红框中的是person
在这里插入图片描述
接下来需要使用CloudCompare软件给点云中的每个点增加一个 l a b e l {\color{#E16B8C}{label}} label,使得其变为 [ x , y , z , l a b e l ] [{\color{#2EA9DF}{x,y,z}},{\color{#E16B8C}{label}}] [x,y,z,label] ( N , 4 ) (N,4) (N,4)点云数据。如下图所示:
在这里插入图片描述
可视化如下图,其中蓝色的是person
在这里插入图片描述

2 CloudCompare使用步骤

博主使用的是CloudCompare_v2.13.2,点击即可下载(可能需要梯子)。

不知道你是否注意到了前文中,我给others标注的是nan而不是1,这是因为CloudCompare中默认的标注信息是nan,在上述只需要分割person的情况下,我们只需要标记person就可以了,剩下的nan如果需要的话可以使用Python程序替换为1,这样在面对批量的点云标注时可以提高效率。相关程序如下:

label = 1 #特定的标签号
pcd[np.isnan(pcd)]= label#pcd为点云

总的来说,使用CloudCompare标记点云可以分为以下5步:

  • 导入点云
  • 分割点云
  • 标注点云
  • 融合点云
  • 导出点云

在每步操作的时候要小心些,因为CloudCompare对撤销的支持不太好。

2.1 导入点云

导入点云前建议先在软件中新建一个文件夹,用于集中存放处理好的点云,也便于集中导出,并保存项目,做好记录,而不要直接导入零散的点云文件,这对批量处理点云十分重要。
在这里插入图片描述
接下来就可以批量导入点云文件了,按住Shift多选,中间会出现一个筛选界面,选择你需要的维度,点击Apply all即可。这里以导入前5帧的点云ply文件为例。
在这里插入图片描述
这里每个点云文件都会以一个文件夹的形式导入,对每个点云的处理在各自的文件夹进行,处理完后再将文件夹中的点云一起移入一开始创建的pcd文件夹。

2.2 分割点云

首先,将暂不处理的点云文件夹按Shift选中,并切换(Toggle)为冻结模式(快捷键:A),选中文件夹切换模式后其中的点云不会切换模式,便于后续处理:

常用快捷键01:A 切换选中文件的状态:激活/冻结

在这里插入图片描述
接着,选中0号点云(要选中才能操作,选中和显示是两回事),并调整视角,建议可以先观察点云(鼠标左键、中键、右键都试试),了解待分割目标的特征,然后切换到俯视图模式下进行分割,之后视角非必要就不要动了。
在这里插入图片描述

  • 接在进入裁剪模式T,左键画多边形选中区域,右键结束选取,选中的是此时的视角对多边形投影后包裹的点云。
  • 接着分割出选中区域I,并按Enter确定。
  • 在下面的动图中,注意观察左上角的点云文件变化,其中*.segment就是我们分割的部分,以*.remaining为剩余的部分。

常用快捷键02:T - 左键右键 - I - Enter 快速分割出选中区域

在这里插入图片描述
如果需要分割多个不相邻的目标,要继续选中*.remaining点云,重复上述操作。

2.3 标注点云

接着就要给*.segment文件贴 l a b e l {\color{#E16B8C}{label}} label了(如果有多个,则每个对象都要操作一遍,可惜该软件好像不支持批量操作)。选中对应文件,点击顶部的号,首先让你输入 SF(scaler field) 的名字,然后输入Value值。

①首先,输入名字都默认为Constant,无论你标注的对象实际是什么。否则最后导出的点云文件不会是3+1列,而可能是3+n列,n为你添加的SF名称的种类数。相当于每一个SF名称都是一个总的分割域,而通常的标注是在同一分割域下进行的。
②接着,输入Value,这里就是实际的分割号了,自己拟定即可。如果只是做种类不多的简单分割的话,建议默认值0,因为这样按两下Enter即可快速标注,之后有需要再用程序批量更改标号。

常用快捷键03:Enter - Enter 实现快速标注

在这里插入图片描述

2.4 融合点云

Shift选中需要融合的文件(大家可以尝试下与Ctrl多选的区别),注意选择顺序,第一个选中的文件名即为融合后的文件名,之后点击顶部的融合按钮,并在接下来的弹框中选择(可以使用 → \bold{\rightarrow} - Enter快捷键,熟练了后比鼠标快),不然就会像多个SF名称一样在最后的导出文件中多出几列。

常用快捷键04: → \bold{\rightarrow} - Enter 快速融合

在这里插入图片描述
注意此时,融合后的点云处于选中状态,直接按A就可以取消激活了,然后再选择下一个待处理的点云文件夹,按A激活,进入下一轮循环即可。

2.5 导出点云

  • 在处理完上述点云文件后,将各文件夹中的点云按Ctrl选中后拖入一开始创建的pcd文件夹,并右键该文件夹选择排序选项。
  • 然后可以再集中用Shift选中与A激活的方式,分批次的检查融合后的点云文件。
  • 检查无误后再右键pcd文件夹一起导出。注意导出的文件名字结尾的标号仅与pcd文件夹中点云文件的数量相关,而与其在项目中的名称无关,留意不要覆盖之前的文件了。
    另外,可以结合Advanced Renamer_v3.95软件实现文件的批量重命名,点击即可下载。
  • 在导出弹出的窗口中,可以设置坐标和标签的精度等信息。
图像描述

导出结果如下:
在这里插入图片描述

3 结语

使用CloudCompare标注分割点云数据主要有导入点云、分割点云、标注点云、融合点云、导出点云 这5步,涉及的快捷键如下:

常用快捷键01:A 切换选中文件的状态:激活/冻结
常用快捷键02:T - 左键右键 - I - Enter 快速分割出选中区域
常用快捷键03:Enter - Enter 实现快速标注
常用快捷键04: → \bold{\rightarrow} - Enter 快速融合

在使用过程中注意保存和名称覆盖的问题。

4 相关文章

这个点云教程是基于AVP项目撰写的,如有对深度图转融合点云、PointNet++语义分割、Dbscan实例化有兴趣的可以看以下传送门:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值