点云数据集

参考链接: modelnet40数据集_点云数据预处理 FAQ_weixin_39666931的博客-CSDN博客

点云常用数据集:

  1. ModelNet40:可以用来训练分类(classification)。训练集有9843个点云、测试集有2468个点云。有40个类。
  2. ShapeNet:可以用来训练零件分割(part segmentation)。训练集有14007个点云,测试集有2874个点云。
  3. RueMonge2014:可以用来训练室外场景的语义分割(semantic segmentation)。里面包含7个类:window, wall, balcony, door, roof, sky, shop。
  4. ScanNet:可以用来训练室内场景的语义分割(semantic segmentation)。训练集有1513个训练场景,100个测试场景。
  5. S3DIS:Stanford large-scale 3D Indoor Spaces dataset。可以用来训练语义分割(semantic segmentation)。其中分为6个area,每个area内有若干个场景。

点云中的个数:

downsample

如果下载的数据集里面,每个点云有固定的数量(例如:1024、2048),基本可以满足要求了。如果点云比较大,用十万、百万个点,一般要进行一些采样操作。一般采用VoxelGrid来采样。Matlab中对应的是gridaverage pcdownsample

ptCloudOut 

里面的逻辑大概为:将三维空间按照指定步长 (gridStep),划分为一个三维网格(grid),每个grid内的点,最后取均值,得出一个点。需要注意的是:有些grid内可能没有点,所以,downsample后,点的个数,一般小于grid的个数。

例如:S3DIS数据集,一般会用pcdownsample来采样。

选子区域

下采样后,点云如果还是很大,可以进一步在xy坐标系下,按照一定的规则,将一个点云分割为若干个小的点云。每个子区域,一般会再额外扩大一点,扩大的空间范围内包含的点,作为context points参与训练,但是context points不参与计算loss。

统一点数

作为模型的输入,一般是希望每个点云中点的数量是相同的。采样、选子区域后,不能保证每个点的数量完全一样。假设希望最后每个点云有NUM_POINT=2048个点,当前点云中的点数为num,

当采样后点数小于2048时,可以使用:

np

当采样后点数大于2048时,可以使用:

np.random.choice(num, NUM_POINT, replace=False)

 

3. 如何划分train/val/test ?

目前,基本只划分为train、test两个集合。具体划分方式,一般参考“惯例”来划分,即:前面的一些经典论文怎么划分,跟它采用一样的方式即可。

例如,对于S3DIS数据集,里面有6个area,选其中一个area包含的所有点云作为test集,其它5个area作为train集。这样,可以得到6组train、test数据集。实际上,一般选第5个area作为test集,其它5个area作为train集。

如何归一化?

xyz坐标

  1. 在3d空间中找一个能包含所有点的最小的立方体,立方体的三条边与xyz轴平行。找到这个立方体的下表面的中心点,以这个点作为归一化的参考点。所有点的坐标,减去参考点的坐标。
  2. 可以进一步将x、y、z归一化到[-1, 1]之间。

第1步一般是必须的,效果会很明显。第2步是否有效果,需要通过实验来验证

颜色值:

一般归一化到[-1, 1]之间。

5. 如何shuffle?

有以下两种方式:

  • 一个batch内,点云的顺序,shuffle
  • 一个点云内,点的顺序,shuffle

6. 数据增强(augmentation)

Data augmentation可以增强模型的范化能力。一般的方式有:

  • 一个batch内,选一定比例的点云,绕z轴随机旋转(0 - 360)度
  • 一个batch内,选一定比例的点云,分别绕x、y、z随机旋转一个小的角度,比如20度左右
  • 一个batch内,所有点进行随机抖动(jitter)

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值