官网: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用于评估)。
作用
们的网络名为 PointNet,为从对象分类、部分分割到场景语义解析等应用提供了统一的架构
原理
是什么样的模型结构,能直接从点云中学习特征
点云的特征是啥?不规则。所以采用了symmetric function
分类网络:
分类就是这个物体是什么。
mlp:多层感知机
input point:n×3 的点云坐标矩阵,就是三维坐标
input transform:‘变换’,就是一个位姿变换矩阵,输入的点云数据在与该矩阵相乘后可以实现空间上 的对齐,即将点云旋转到正面
mlp:点云数据在经过 1个 多层感知器(Multi-Layer Perceptron,MLP)的操作 后被映射到 64 维的空间上
feature transform:64 维空间点云进行特征变换
mlp:再经过 1个 MLP完成升维操作,进而 将原点云坐标映射到 1 024 维的空间上。
max pool:经过最大池化操作(Max Pooling)后便得到了一个 1 024维的行向量,该列向量 被称为点云的全局特征向量
mlp:用全局特征过一个 MLP 来做分类
分割网络:
分割就是在一个物体的基础上,再次分类。
point features:相比分类,分割需要每个点捕捉全局信息后才能知道自己是哪一类,于是把每个点的 feature 和全局 feature 做一个 对比,过 MLP,之后对每个点做分类。
参考:
Research on Structure Recognition of Spatial Non-cooperative Objects Based on Point Cloud Data
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!