1.对于part segment部分,要对照着文章附录C中的PointNet Segmentation Network部分以及Figure9来理解思路和代码
2.同为hdf5格式的train dataset和test dataset,包括三部分内容,分别是data(2048,2048,3)、label(2048,1)以及pid(2048,2048)。
train函数中,train_one_epoch以及evl_one_epoch都有num_data = len(cur_label),之前只想着点的个数是2048,没太弄清楚另一个维度上的2048是什么意思,现在理解另一个2048应该是指点云的个数。就是说总共有2048块点云,每块(片?不知道哪个量词合适)点云上有2048个点,把每块点云都可以归类为16个category中的一类,每块点云都有自己的label,label的2048指的就是数据集中的点云块数。同时还要对这些点云中总共的2048*2048点进行单点识别(per-point classification),也就是点云的分割。
data表示的是所有2048块点云中总共包含的2048*2048个点的坐标值。pid表示的是所有2048*2048个点的part_cat,说明了每个点所在的区域。(part_cat_num = 50,16个category总共有50个part)
3.生成hdf5文件的方法:对.pcd格式点云进行采样,之后在保存为hdf5文件格式
4.part_segment的train函数里,作为菜鸟初学者的我,还有点不太明白为什么要先对test dataset进行测试,之后再进行训练。