当前位置:   article > 正文

PointNet复现

pointnet复现

PointNet复现

设备及运行环境基本情况:
(1)硬件:ThinkPad P53移动图像工作站,CORE i7 -9850H 32G内存,显卡为NVIDIA Quadro T2000 4G ;
(2)软件:Ubuntu18.04、Python2.7、Tensorflow1.13.1, CUDA 10.0 and cuDNN 7.5.0。

1.准备工作

#To install h5py for Python
sudo apt-get install libhdf5-dev
sudo pip install h5py

# or using the way of conda to install
conda activate py35
conda install libhdf5-dev
conda install h5py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2. 训练与测试

PointNet主要应用在三种类型的任务中,包括对象分类(object classification)、部件分割(part segmentation)和场景分割(scene segmentation)。

2.1分类

  • 数据准备:
    分类训练数据为ModelNet40,包括40种人造的对象类型,共有12311个CAD模型,训练时需将其转为h5文件,可以直接下载好h5文件modelnet40_ply_hdf5_2048.zip,放在data/modelnet40_ply_hdf5_2048文件夹里。

  • 训练:

#To train a model to classify point clouds sampled from 3D shapes:
python train.py
  • 1
  • 2

日志文件和网络参数保存在log文件夹中。
用TensorBoard查看网络构架并检测训练过程。

#We can use TensorBoard to view the network architecture and monitor the training progress.
tensorboard --logdir log
  • 1
  • 2

训练结果
在这里插入图片描述

  • 测试
python evaluate.py --visu
  • 1

测试结果
在这里插入图片描述
一些分类错误的类型保存在dump文件夹。

2.2部件分割

部件分割是分割中一类问题,即判断点云中每个点输入物体的那个部分,例如桌子分为桌面和桌腿,身体分为四肢和躯体等。

  • 数据准备:
#进入part_seg文件夹
cd /media/marf/新加卷/PointNet/pointnet-master/part_seg
#下载并解压两个数据文件,在pointnet-master/part_seg下,也可以用.sh文件里面的链接直接下载
#训练数据为ShapeNetPart数据集
sh download_data.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 训练
#执行训练
python train.py
  • 1
  • 2

训练结果
在这里插入图片描述

  • 测试
#执行测试
python test.py
  • 1
  • 2

测试结果
在这里插入图片描述
…/part_seg/test_results中展示测试结果,可用软件查看

部件分割结果
在这里插入图片描述 在这里插入图片描述

2.3场景分割

场景分割是给点云中每个点指定一个类别标签(语义信息),即逐点的分类,例如将客厅中沙发和茶几分开。

  • 数据准备
#进入sem_seg文件夹
cd /media/marf/新加卷/PointNet/pointnet-master/sem_seg
#下载并解压h5数据文件,在pointnet-master/sem_seg下,也可以用.sh文件里面的链接直接下载
#训练数据为Stanford3d数据集
sh download_data.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 训练
#Area_6设为测试区
python train.py --log_dir log6 --test_area 6
  • 1
  • 2

训练结果
在这里插入图片描述

  • 测试
#制作npy测试数据,将Area_6的txt格式转为npy格式
python collect_indoor3d_data.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
#精度评估
python eval_iou_accuracy
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

语义分割结果
参考资料:
[1]: https://github.com/charlesq34/pointnet
[2]: https://blog.csdn.net/qq_40234695/article/details/86223577
[3]: Qi C R , Su H , Mo K , et al. PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation[C]// 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2017.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/115919
推荐阅读
相关标签
  

闽ICP备14008679号