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

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

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

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

训练结果

  • 测试
python evaluate.py --visu

测试结果

一些分类错误的类型保存在dump文件夹。

2.2部件分割

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

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

训练结果

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

测试结果

…/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
  • 训练
#Area_6设为测试区
python train.py --log_dir log6 --test_area 6

训练结果

  • 测试
#制作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]: 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.

PointNet复现相关推荐

  1. Pointnet++复现流程及问题解决

    复现流程 1.通过github下载pointnet++的包; 2.以分类为例,在pointnet2-master目录下新建data文件夹,将modelnet40_ply_hdf5_2048数据集解压到 ...

  2. pointnet++复现

    首先修改代码中所有错误,与自己的python和tensorflow适配,导入该导入的包,其中provider和eulerangles和plyfile都在utils文件下或者pointnet-maste ...

  3. Pytorch1.7复现PointNet++点云分割(含Open3D可视化)(文末有一个自己做的书缝识别项目代码)

      毕设需要,复现一下PointNet++的对象分类.零件分割和场景分割,找点灵感和思路,做个踩坑记录. 下载代码 https://github.com/yanx27/Pointnet_Pointne ...

  4. 点云网络的论文理解(一)-点云网络的提出 PointNet : Deep Learning on Point Sets for 3D Classification and Segmentation

    1.摘要 1.1逐句翻译 Point cloud is an important type of geometric data structure. 点云是一种重要的数据结构. Due to its ...

  5. 点云网络的论文理解(二)- PointNet的pytorch复现

    1.了解PointNet 为了更好的复现这个东西我们需要先了解这个东西,先把原文给出的图片放在这里,之后我们再一点点理解. 1.1点云的特点 1.1.1无序性:也就是说这个点的先后顺序和实际上是什么无 ...

  6. Pytorch:复现PointNet

    文章目录 一.[点云分类]和[部件分割]: 1.1 复现结果展示 1.2 复现过程 1.3 复现过程中遇到的问题 1.3.1 分类遇到的问题 1.3.2 分类可视化(检验)遇到的问题 1.3.3 部件 ...

  7. 基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)

    录 前言 一.资料下载 1.代码下载 2.数据集下载 二.环境配置 1.本文采用设备配置说明 2.虚拟环境配置 三.训练部分 1.分类训练部分 2.分割的训练部分 四.预测部分 1.分类结果展示 2. ...

  8. PointNet系列代码复现详解(1)—PointNet分类部分

    想尽快入门点云,因此就从这个经典的点云处理神经网络开始.源码已经有了中文注释,但在一些对于自己不理解的地方添加了一些注释.欢迎大家一起讨论. 代码是来自github:GitHub - yanx27/P ...

  9. Python-Point Cloud 系列(二)——PointNet论文复现

    文章目录 Point Net 介绍 网络结构 旋转变换矩阵 源码解析(详细) 源码下载 源码目录结构 PointNet.py ModelNetDataLoader.py 复现程序 原文数据集下载 其他 ...

最新文章

  1. 上班第一天公司就倒闭了??? | 每日趣闻
  2. SDUSTOJ 1801 LIS2(最长上升子序列不同值的数量)
  3. Spring Mvc + Easyui中根据查询结果导出文件
  4. 我,宇宙最强编辑器,支持远程开发
  5. JEECG开源社区招收学生说明
  6. 推荐一本学javascript的书籍---经典
  7. 免费批量修改图片MD5软件 图片处理防和谐软件
  8. vue教程 html表单美化 与 vue表单数据的自动搜集
  9. mysql怎么下载_mysql下载安装使用教程
  10. 裁判文书网文书数据采集
  11. 电脑计算机键盘没反应了怎么办,电脑键盘无法使用怎么办 键盘没反应解决办法...
  12. 如何把分布式远程总线IO应用到项目中
  13. 明日之后无限金条服务器,明日之后:无限金条bug 你值得收藏
  14. Android小程序-涂鸦板
  15. 【Proteus仿真】Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制
  16. 物联网技术可以给养老院带来哪些变化
  17. JDK中文API帮助文档【沈东良】
  18. TIKTOK赚钱项目到底是真是假 有哪些?
  19. [附源码]计算机毕业设计宁财二手物品交易网站Springboot程序
  20. Android Google Map实例 - 在地图和卫星图之间切换(Android mapview)

热门文章

  1. go的time.Time格式相关转换
  2. socketpair创建双向通信的管道(全双工通信)
  3. (tensorflow学习) Deep Dream原理及实现
  4. 设计模式应用教程5:下棋、悔棋、提子、放回
  5. php 正则匹配中文汉字
  6. 2020-12-13# **链表的增删改查,逆置**
  7. Chrome实现文件夹拖拽并预览其中的图片
  8. 上海的真实薪水情况,给所有想来上海的应届生参考
  9. 【Java】【leetcode第25题】K 个一组翻转链表
  10. vue + el-upload上传图片/文件,编辑时回显文件名