Pointnet语义分割任务在S3DIS数据集上复现

目录标题

1.环境搭建

ubuntu16.04 双显卡nvidia gtx1080/quadro M4000
anaconda3创建虚拟环境 python=3.7
cuda10.0 cudnn7.65
tensorflow-gpu1.14 安装命令 ——>pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ tensorflow-gpu==1.14.0

2.训练

这里主要是pointnet的语义分割代码复现,进入sem_seg文件夹中,按照它的readme一步一步操作。

  • 首先是下载作者准备好的H5DF数据进行训练:
sh download_data.sh

这里我在下载的时候会提示:没有证书,无法下载。将提示的–no–certificates(具体不太记得了)加在shell脚本download_data.sh后面,就可以了。脚本下载会自动解压得到一个indoor3d_sem_seg_hdf5_data文件夹, 文件夹内容如下图所示。
在这里插入图片描述

这里作者是将area6作为test area,将area1~5作为训练集。如果需要用其他area准备自己的HDF5文件训练模型,需要下载S3DIS数据集。然后用脚本python collect_indoor3d_data.py重新组织数据,python gen_indoor3d_h5.py产生HDF5文件。
如果不需要batch_inference,即不要测试和可视化,则只需要下载作者制作好的HDF5文件。

  • 用作者准备的HDF5文件训练
    参照read.me中命令,这里作者是使用area6作测试集。在log6文件夹下有关于训练模型和日志文件。
python train.py --log_dir log6 --test_area 6
  • 测试
    首先需要下载Standfor3dDataset_v1.2_Aligned_Version数据集,大约16个G,而且官网都打不开,只能想其他办法下载。下载完成后保存在pointnet/data文件夹里。另外作者提示Area_5中有一个额外字符不符合规范,需要手动删除。查找的具体位置为:
    Standfor3dDataset_v1.2_Aligned_Version/Area_5/hallway_6/Annotations/ceiling_1.txt中180389行数字的185后。直接用vim打开,在命令模式下输入180389gg,会跳转到如图所示的地方。删除字符再加一个空格就可以了。
    在这里插入图片描述

然后执行python collect_indoor3d_data.py
进行batch_inference:

python batch_inference.py --model_path log6/model.ckpt --dump_dir log6/dump --output_filelist log6/output_filelist.txt --room_data_filelist meta/area6_data_label.txt --visu

预测的结果:
在这里插入图片描述

可以在dump文件夹里得到一些.obj和.txt文件,用cloudcompare同时打开,就可以看到预测结果了。cloudcompare配置安装教程见ubuntu16配置cloudcompare

猜你喜欢

转载自blog.csdn.net/qq_43265072/article/details/108552299
今日推荐