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
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复现相关推荐
- Pointnet++复现流程及问题解决
复现流程 1.通过github下载pointnet++的包; 2.以分类为例,在pointnet2-master目录下新建data文件夹,将modelnet40_ply_hdf5_2048数据集解压到 ...
- pointnet++复现
首先修改代码中所有错误,与自己的python和tensorflow适配,导入该导入的包,其中provider和eulerangles和plyfile都在utils文件下或者pointnet-maste ...
- Pytorch1.7复现PointNet++点云分割(含Open3D可视化)(文末有一个自己做的书缝识别项目代码)
毕设需要,复现一下PointNet++的对象分类.零件分割和场景分割,找点灵感和思路,做个踩坑记录. 下载代码 https://github.com/yanx27/Pointnet_Pointne ...
- 点云网络的论文理解(一)-点云网络的提出 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 ...
- 点云网络的论文理解(二)- PointNet的pytorch复现
1.了解PointNet 为了更好的复现这个东西我们需要先了解这个东西,先把原文给出的图片放在这里,之后我们再一点点理解. 1.1点云的特点 1.1.1无序性:也就是说这个点的先后顺序和实际上是什么无 ...
- Pytorch:复现PointNet
文章目录 一.[点云分类]和[部件分割]: 1.1 复现结果展示 1.2 复现过程 1.3 复现过程中遇到的问题 1.3.1 分类遇到的问题 1.3.2 分类可视化(检验)遇到的问题 1.3.3 部件 ...
- 基于pointnet的3D物体分类和分割检测(复现不出来你直接敲我家门)
录 前言 一.资料下载 1.代码下载 2.数据集下载 二.环境配置 1.本文采用设备配置说明 2.虚拟环境配置 三.训练部分 1.分类训练部分 2.分割的训练部分 四.预测部分 1.分类结果展示 2. ...
- PointNet系列代码复现详解(1)—PointNet分类部分
想尽快入门点云,因此就从这个经典的点云处理神经网络开始.源码已经有了中文注释,但在一些对于自己不理解的地方添加了一些注释.欢迎大家一起讨论. 代码是来自github:GitHub - yanx27/P ...
- Python-Point Cloud 系列(二)——PointNet论文复现
文章目录 Point Net 介绍 网络结构 旋转变换矩阵 源码解析(详细) 源码下载 源码目录结构 PointNet.py ModelNetDataLoader.py 复现程序 原文数据集下载 其他 ...
最新文章
- 上班第一天公司就倒闭了??? | 每日趣闻
- SDUSTOJ 1801 LIS2(最长上升子序列不同值的数量)
- Spring Mvc + Easyui中根据查询结果导出文件
- 我,宇宙最强编辑器,支持远程开发
- JEECG开源社区招收学生说明
- 推荐一本学javascript的书籍---经典
- 免费批量修改图片MD5软件 图片处理防和谐软件
- vue教程 html表单美化 与 vue表单数据的自动搜集
- mysql怎么下载_mysql下载安装使用教程
- 裁判文书网文书数据采集
- 电脑计算机键盘没反应了怎么办,电脑键盘无法使用怎么办 键盘没反应解决办法...
- 如何把分布式远程总线IO应用到项目中
- 明日之后无限金条服务器,明日之后:无限金条bug 你值得收藏
- Android小程序-涂鸦板
- 【Proteus仿真】Arduino UNO+uln2003驱动步进电机+按键启保停正反转控制
- 物联网技术可以给养老院带来哪些变化
- JDK中文API帮助文档【沈东良】
- TIKTOK赚钱项目到底是真是假 有哪些?
- [附源码]计算机毕业设计宁财二手物品交易网站Springboot程序
- Android Google Map实例 - 在地图和卫星图之间切换(Android mapview)