admin管理员组

文章数量:1602237

放假闲着在家没事,本人突然想跑一下3d深度学习的开山之作——pointnet玩一玩,可是目前网上大部分pointnet的运行教程都是在Ubuntu系统下的。(其实本人也曾装过双系统,但是因为我太菜了,在Ubuntu下装完显卡驱动和cuda后切换win10开机一直黑屏。。。只好含痛放弃装回win10-_-本狗还是先在虚拟机好好学习Linux吧)ps:如果哪位好心的大佬知道怎么解决的话,不妨告诉我怎么解决。 (两年后的LZ建议windows系统下可以采取WSL+docker配置) 最后成功在win10下跑通pointnet的分类、分割和语义分割三个部分,并记录下步骤。

后续文章:
pointnet语义分割_训练并预测自己的数据
pointnet推理部署–libtorch框架
pointnet推理部署–onnxruntime框架
pointnet推理部署–openvino框架
pointnet推理部署–tensorrt框架

环境

在下面环境中测试成功,gpu是RTX2060。
环境1: win10+cuda10.1+cudnn7.5+python3.7.2+tensorflow-gpu1.13
环境2: win10+cuda9.2+cudnn7.1+python3.6.5+tensorflow-gpu1.9

资源

pointnet代码GitHub链接
cuda10.1
cudnn7.5.0
tensorflow-gpu1.13
软件的安装在此不赘述了,网上都可以找到详细教程。注意tensorflow-gpu1.13应在上面给出的链接下载处理之后的版本,否则后续会出现问题(本人亲自尝试过,不知道为什么)。

运行

1) Classification
1.下载ModelNet40模型(约415MB)并解压,目录结构为pointnet-master/data/modelnet40_ply_hdf5_2048。
modelnet40_ply_hdf5_2048.zip
2.运行pointnet-master/train.py。

python train.py

训练250个epoch,本人gpu情况训练5小时结束。
3.使用TensorBoard查看网络架构并监视培训进度。

tensorboard --logdir log

4.评估模型并输出一些错误案例的可视化图像。

python evaluate.py --visu

可以评估模型并输出错误情况的一些可视化,错误分类的点云保存在文件夹pointnet-master/dump中。我们通过将点云渲染为三视图来可视化点云。

2)Part Segmentation
1.运行脚本下载ShapeNetPart数据集(约1.08GB)和HDF5文件(约346MB)。

cd part_seg
sh download_data.sh

下载不下来的话可以在下面网站找到。
ShapeNetPart数据集
shapenetcore_partanno_v0.zip
HDF5文件
ShapeNetPart数据集解压后格式为pointnet-master/part_seg/PartAnnotation,HDF5文件解压放在pointnet-master/part_seg/hdf5_data。
2.训练代码在pointnet-master/part_seg下。

python train.py

batch改为4(否则我的gpu报out of memory,当然你显存够大当我没说),训练200个epoch,本人gpu情况训练约22个小时结束。
3.测试代码也在pointnet-master/part_seg下。

python test.py

在这里会生成许多.obj文件,这是对应分割的每一部分,可以用cloudcompare/meshlab可视化软件查看结果(cloudcompare可能对obj文件支持不好显示不出点云的rgb信息)。测试结果在pointnet-master/part_seg/test_result文件夹下。

3)Semantic Segmentation
1.运行脚本下载训练集(约1.56GB)

cd sem_seg
sh download_data.sh

或者可以从下面链接下载:
indoor3d_sem_seg_hdf5_data.zip
解压后格式为pointnet-master/sem_seg/indoor3d_sem_seg_hdf5_data。
2.训练

python train.py --log_dir log6 --test_area 6

训练50个epoch,本人gpu情况需花费约5小时。训练好以后,在pointnet-master/sem_seg⽂件夹下⾯会有⼀个log6的⽂件夹,⾥⾯是训练好的模型。
3.预测
下载S3DIS 点云数据集(约4.1GB),下载地址:
S3DIS 数据集
下载好后,将⽂件放到pointnet-master/data⽬录下,解压,并将⽂件名改为stanford_indoor3d。
修改indoor3d_util.py第13⾏:
修改前

DATA_PATH = os.path.join(ROOT_DIR, 'data','Stanford3dDataset_v1.2_Aligned_Version')

修改后

DATA_PATH = os.path.join(ROOT_DIR, 'data', 'stanford_indoor3d')

运⾏collect_indoor3d_data.py

python collect_indoor3d_data.py

运行batch_inference.py

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

在pointnet-master/sem_seg/log6⽂件夹下会⽣成dump⽂件夹,⾥⾯有.obj⽂件,可以用cloudcompare/meshlab等可视化软件查看结果。

4.IOU评价
将pointnet-master/sem_seg/log6/output_filelist.txt复制到上一级文件夹下并改名为all_pred_data_label_filelist.txt。
运行程序eval_iou_accuracy.py,结果如下图。

参考

PointNet-环境搭建:win10、cuda10.1、cudnn7、python3.7、tensorflow-gpu1.13 (详细)
PointNet分类和分割代码复现(跑程序)

所有数据集网盘链接:链接:https://pan.baidu/s/15X-Q8ygoLn4GCNMnN51v9w
提取码:dcf6
复制这段内容后打开百度网盘手机App,操作更方便哦

本文标签: Windowspointnet