官网:https://github.com/charlesq34/pointnet
简介
这项工作是基于我们的arXiv技术报告,该报告将出现在CVPR 2017。
我们为点云(作为无序点集)提出了一种新的深度网络架构。您也可以查看我们的项目网页,以获得更深入的介绍。
点云是一种重要的几何数据结构。由于其不规则的格式,大多数研究人员将这些数据转换为规则的3D体素网格或图像集合。然而,这使得数据不必要地庞大,并导致问题。在本文中,我们设计了一种新型的直接消耗点云的神经网络,它很好地尊重了输入点的排列不变性。我们的网络名为PointNet,为从对象分类、零件分割到场景语义解析等应用程序提供了统一的架构。虽然简单,但PointNet非常高效。
在这个存储库中,我们发布了代码和数据,用于在从3D形状采样的点云上训练PointNet分类网络,以及在ShapeNet part数据集上训练零件分割网络。
安装
安装TensorFlow。您可能还需要安装h5py。代码已经在Ubuntu 14.04上使用Python 2.7, TensorFlow 1.0.1, CUDA 8.0和cuDNN 5.1进行了测试。
如果你正在使用PyTorch,你可以在这里找到第三方PyTorch实现。
安装h5py for Python:
使用
训练一个模型来分类从3D形状中采样的点云:
python train.py
日志文件和网络参数默认保存在日志文件夹中。HDF5文件中的ModelNet40型号点云会自动下载(416MB)到数据文件夹。每个点云包含从形状表面均匀采样的2048个点。每个云都是零均值,并归一化为一个单位球体。data/modelnet40_ply_hdf5_2048中还有文本文件,指定h5文件中形状的id。
要查看培训脚本的HELP:
Python train.py -h
我们可以使用TensorBoard来查看网络架构并监控训练进度。
Tensorboard——logdir log
经过上述训练,我们可以对模型进行评估,并输出一些错误案例的可视化结果。
Python evaluate.py——visu
分类错误的点云默认保存到dump文件夹。我们通过将点云渲染成三视图图像来可视化点云。
如果您想准备自己的数据,可以参考utils/data_prep_util.py中的一些帮助函数来保存和加载HDF5文件。
部分细分
为了训练对象部分分割的模型,首先下载数据:
cd part_seg
sh download_data.sh
下载脚本将下载ShapeNetPart数据集(约1.08GB)和我们准备好的HDF5文件(约346MB)。
然后您可以运行part_seg文件夹中的train.py和test.py进行训练和测试(计算mIoU用于评估)。
标签:入门,训练,Python,数据,py,点云,文件夹,giuhub,快速 From: https://www.cnblogs.com/mxleader/p/17228575.html