要训练自己的数据,需要把自己的数据集做成PontNet所用数据集相似的结构。故记录本文以备忘
1. 论文中的描述
pointnet 应用分为三部分:点云分类(3D Object Classification),点云部分分割(3D Object Part Segmentation),语义分割(Semantic Segmentation in Scenes)。本文只解释语义分割部分的数据集。
论文中用的是Stanford 3D semantic parsing data set 这一数据集。数据集中包含用Matterport scanner 中扫描的3D 室内对象,这些对象来自于6个区域的271个房间,每个点都加上了13个语义标签(例如椅子,桌子,地板,墙等)中的1个。
按照房间来划分点集,然后将房间采样为1m×1m的块。对每个块预测其中每个点的语义标签。每个点由一个9-dim 向量表示,向量分量分别为:X, Y, Z, R, G, B, normalized location as to the room (from 0 to 1)。训练时,在每个块中实时随机采样4096个点。测试时用所有的点。用k-fold方法来训练和测试。
2. 下载数据集
终端运行: $ sh download_data.sh
下载得到:indoor3d_sem_seg_hdf5_data 文件夹,里面由ply_data_all_0.h5 至ply_data_all_23.h5 共24个h5格式的数据文件,每个里面都有两个dataset:data 和 label。这24个文件共有23×1000+585=23585行,每行一个Block,每个Block有4096ge点,每点9个维度。
另外还有两个txt文件:all_files.txt 和 room_filelist.txt。前者保存24个数据文件名。后者有23585 行; 即对应每个Block是在哪个area的哪个room采集的