yanx27 / Pointnet_Pointnet2_pytorch

PointNet and PointNet++ implemented by pytorch (pure python) and on ModelNet, ShapeNet and S3DIS.
MIT License
3.37k stars 848 forks source link

The scene semantic segmentation IoU is 0 #228

Open PercyXiao opened 1 year ago

PercyXiao commented 1 year ago

Thank you very much for your contribution!

  1. I would like to ask why the IoU of one of the types has always been 0 when I use pointnet++ to do my own point cloud data semantic segmentation (binary classification), but it is normal for the same data to be semantically segmented with pointnet?

  2. My dataset is only half the size of the S3DIS dataset, and the point cloud density is similar, why is the training time of pointnet and pointnet++ very long, an average of 2 hours for an epoch?

My device is GPU3060-12G VR: 12 GB CPU Intel(R) Xeon(R) CPU E5-2686 v4 RAM: 31G 12 cores

Pointnet_time_IoU Pointnet++time_IoU
fre-air commented 5 months ago

1、针对其中一种类型的IoU总是0的问题,在偶然的机会下,我通过对原始数据进行Min-Max归一化操作解决了,可能的原因是道路、输电线路等狭长的点云数据在x、y、z方向上的差异较大,导致后续ScannetDatasetWholeScene()中每个block中样本类别不均衡,甚至某些类缺失 归一化 2、苦于训练时间较长的烦恼,将相关代码仔细地过了几遍,我发现ScannetDatasetWholeScene()中block_size、stride这两个参数对训练时间的影响最大,在保持一定的比例(0.5)前提下,增大参数,可以极大地提高训练效率,40分钟一个epoch S3DISDataLoader block_size_and_stride