PointNet语义分割使用说明
网络结构

使用说明
源代码:https://github.com/charlesq34/pointnet
1.数据集准备
(1)制作好的.h5文件(训练)
indoor3d_sem_seg_hdf5_data.zip
可用HDFView打开查看,快捷键 h5v
包含24个.h5文件,每个文件包含data、label数据
共23×1000+585=23585行,每行对应一个block(1m x 1m),每个block有4096个点,每个点有9个维度(x,y,z,r,g,b,x’,y’,z’)及1个lable标签
(2)室内解析数据集(测试、可视化)
Stanford3dDataset_v1.2_Aligned_Version.zip
以.txt形式保存数据(x,y,z,r,g,b,l) 7个维度
训练时使用的.h5文件是解析数据集的一个子集,可完全由解析数据集生成
(3)准备自己数据集
输入类似解析数据集的格式 .txt
第一步:
collect_indoor3d_data.py 数据重组,转换为.npy文件
第二步:
gen_indoor3d_h5.py .npy—>.h5文件
2.训练
python train.py --log_dir log --test_area 6 (已经默认设置,可以直接运行train.py)
Area_1 数据用作测试集
p.s.: 训练数据集分为6个Area、272个room
indoor3d_sem_seg_hdf5_data/room_filelist.txt 中保存每一行(block)所属的Area、room
训练一轮(epoch),会将所有训练数据全用一次,训练会进行多轮
3.测试
python batch_inference.py (需要在命令行设置相关的几个参数)
还可借助该文件实现查看.npy数据范围(m2) ——> indoor3d_util.room2blocks_wrapper_normalized()方法
测试预测时,并不是每个点都会预测,会先计算坐标范围,划分为若干block,每个block取4096个点进行预测,会预测整数个batchsize(默认1)