大场景室内点云标注数据集S3DIS介绍

重要说明

多用于室内点云的语义分割和实例分割(每个柱子桌椅等都是分开标注的)

6个区域:【目录名称】

Area1、Area2、Area3、Area4、Area5、Area6

13个语义元素: 【annotation的类别】

天花板ceiling、地板floor、墙壁wall、梁beam、柱column、窗window、门door

桌子table、椅子chair、沙发sofa、书柜bookcase、板board 、混杂元素(其他)clutter 

11种场景:【单文件的名称】

办公室、会议室、走廊、礼堂、开放空间、大堂、休息室、储藏室、复印室、储藏室和卫生间

office, conference room, hallway, auditorium, open space, lobby, lounge, pantry, copy room, storage and WC

S3DIS的采集方式

使用 Matterport 相机收集数据,该相机结合了 3 个不同间距的结构光传感器,在每个扫描位置 360° 旋转期间捕获 18 个 RGB 和深度图像。每次 360° 扫描以 60° 为增量执行,每个位置提供 6 个三元组 RGB-D 数据。输出是扫描区域的重建 3D 纹理网格、原始 RGB-D 图像和相机元数据。我们使用这些数据作为基础来生成额外的 RGB-D 数据并通过对网格进行采样来制作点云。我们直接在 3D 点云而不是图像上对数据进行语义注释,然后将每个点的标签投影到 3D 网格和图像域上。在6个区域的271个房间,使用Matterport相机(结合3个不同间距的结构光传感器),扫描后生成重建3D纹理网格,RGB-D图像等数据,并通过对网格进行采样来制作点云。对点云中的每个点都加上了1个语义标签(例如椅子,桌子,地板,墙等共计13个对象)。

原始的采集数据Full 2D-3D-S Dataset

完整的 2D-3D-S 数据集:https://github.com/alexsax/2D-3D-Semantics 
参看:https://blog.csdn.net/weixin_43823054/article/details/101003471

大场景室内点云标注数据集S3DIS介绍_第1张图片

 Stanford3dDataset_v1.2_Aligned_Version点云数据集

 该目录包含具有注释的 3D 点云。txt文件格式;xyzrgb文件。

Annotations目录下是各个类别的点云剪裁,也为xyzrgb文件。

大场景室内点云标注数据集S3DIS介绍_第2张图片

cat conferenceRoom_1.txt | wc -l
1136617

cat Annotations/* | wc -l
1136617

完全标注,每一个空间点都有标注。

这些 3D 点云由原始采集数据(2D-3D-S)解析转化出来,转化过程为可以通过直接解析自带的mat文件进行解析,也可以通过合成rgb和深度图进行解析,也可以直接官网下载转化后的这个数据集。

indoor3d_sem_seg_hdf5_data数据

indoor3d_sem_seg_hdf5_data是Pointnet、point-transformer等语义分割算法处理数据的方式。

用于训练的数据会按照房间来划分点集,将房间的点云数据划分为1 m × 1 m 的块,然后再对每个块预测其中每个点的语义标签。每个点由一个9-dim向量表示,分别为:X, Y, Z, R, G, B, X`,Y`,Z` 。

X`Y`Z` 是标准化后的每个block相对于所在房间的位置坐标( 值为0 - 1)。

在训练时,从每个块中随机采样4096个点,使用K折交叉验证(github中是6折,论文中是3折),6-fold即训练集5个区域,测试集1个区域;3-fold:训练集4个区域,测试集2个区域,防止过拟合的常用手段。

对于分割网格进行训练,如果采用这种切分块式样的预处理方式作为输入,会影响到最后的结果,比如一张桌面出现两种不同的错误分割,这一点在RandLA-Net一文中进行了说明。因此RandLA说在做大场景点云分割的时候不能直接使用pointnnet这种方式,因为网络难以有效地学习到一个物体的整体几何结构,也是大场景点云分割的改进点。

可以通过https://github.com/charlesq34/pointnet/blob/master/sem_seg/collect_indoor3d_data.py和gen_indoor3d_h5.py  将S3DIS点云转化为h5格式,用于pointnet、point-transformer等模型的训练。

sudo apt-get install libhdf5-dev 

sudo pip install h5py

python collect_indoor3d_data.py   # 用于数据的重组,转换为.npy格式文件,比如Area_1_hallway_1.npy(.npy为Numpy专用的二进制格式)。

python gen_indoor3d_h5.py           # 再将.npy文件批量转为HDF5文件

(作者提示Stanford3dDataset_v1.2_Aligned_Version\Area_5\hallway_6\Annotations\ceiling_1.txt中的第180389行数字185后中多了一个额外的字符,不符合编码规范,需要手动删除)

也可以从网上直接下载转化后的indoor3d_sem_seg_hdf5_data.zip。

indoor3d_sem_seg_hdf5_data 文件夹,其中包含ply_data_all_0.h5~ply_data_all_23.h5 共24个.h5结尾的数据文件。

大场景室内点云标注数据集S3DIS介绍_第3张图片 

每个文件都包含data和 label数据。

除最后一个为585行数据以外,这24个文件共有23×1000+585=23585行,每行对应源点云文件一个切分为 1m×1m的Block,每个block随机取出4096个点,每个点对应9个维度X, Y, Z, R, G, B, X`,Y`,Z` 和一个label维度。X`Y`Z` 是标准化后的每个block相对于所在房间的位置坐标( 值为0 - 1)。

你可能感兴趣的:(深度学习,点云,分割)