PointNet++:(1)网络完成的任务分析
-----------物体形状分类任务(Shape Classfication)-------
一、数据准备
modelnet40_normal_resampled.zip 解压后下边有:
(1)有40个子文件是不同的物体类别,每一个类别里边是超级多的txt文件,一个txt文件代表的是每一个物体类别的一个点云数据。
如下打开的是飞机的其中一个txt文件:
其中每一行代表的是这一个点的位置和法向量信息(每一行中的前三个分别对应xyz的坐标值,当然都是经过归一化-1和1之间的值)然后是法向量的信息,也是三个值因为法向量是在这个点垂直与切平面的向量的信息,也是有3个值,所以每一行一共是6个值。
(2)有一个modelnet40_shape_names.txt,这个里边存放的是40个类别的目录的列表的一个文件。
(3)有一个filelist.txt,这个里边一共有12311行,表明所有物体的点云文件一共有12311个。
(4)有一个modelnet40_train.txt这里是用作训练的点云文件的列表,一共有9843个,也就是12311个数据集中有9843用作训练集。
(5)有一个modelnet40_test.txt这里是测试集文件的列表,一共有2468个。
二、PointNet++物体形状分类训练:
如果出现显存溢出的报错,就要指定一下batch_size,默认batch_size是24,所以给他改小一点,改成16。
训练完会自动生成log文件夹,里面保存了日志文件和网络参数。
训练结束后在log文件夹下存在一个classfication,classfication下边有一个pointnet2_cls_msg,这个pointnet2_cls_msg文件下有checkpoints,如果这个checkpoints下边有一个best_model.pth这是我们训练好的网络模型的权重文件。pointnet2_cls_msg这个文件夹下边有一个logs目录,下面的pointnet2_cla_msg.txt就是我们训练过程的日志,包含一些从什么时候开始训练以及他中间的一些信息,从里边可以看到这个Accuracy是在不断的改善,最终训练好的Best Instance Accuracy可以到0.926613(其中Instance Accuracy是所有物体分类正确以后的统计结果)、Class Accuracy可以到0.915796(Class Accuracy是对每一分类正确的统计,每一个类别我们就是对于40个类别他的Accuracy以后的再进行平均以后的结果)。
三、测试
接下来对训练好的模型进行一下测试。
在log--->classfication--->pointnet2_cls_msg--->eval.txt这个里边就是测试的结果,
---------物体部件分割的任务(Part Segmentation)--------
一、数据准备
shapenetcore_partanno_segmentation_benchmark_v0_normal.zip解压后下边有:(有16个子文件夹,他代表了不同的物体)
(1)有synsetoffset2category.txt,里边罗列了16种物体,以及后边是分别对应的他们文件夹的名字。
(2)到每一个文件夹下查看有很多个txt文件,比如02691156文件夹下打开一个txt文件如下图:
每一个txt文件里边有很多行数据(2816行,就表示有2816个点的数据),每一行中其中前三个表示xyz的值,接着的中间三个表示法向量的值,最后一个他是飞机部件的编号(0、1、2、3一共有4个部件,也就是说飞机一共被分成了4个部分,)(一共有16个物体,每个物体有若干个部件的分类,一共有50个部件的分类)
二、PointNet++物体部件分割训练
训练结果在log目录下,part_seg下边pointnet2_part_seg_msg下边checkpoints下边我们训练出的best-model.pth就是我们训练出的网络模型。同时在pointnet2_part_seg_msg下边的logs下边pointnet2_part_seg_msg.txt就是训练过程的记录 .
三、测试
---------场景语义分割(Semantic Segmentation)任务--------
一、数据准备
下载完数据集后在解压的时候自己一定要新建立一个s3dis文件夹,否则他在处理的时候会出问题。这个s3dis文件夹下边就会放入我们新解压以后的Stanford3Dataset_v1.2_Aligned_Version这个数据集,这个数据集下边有6个Area,每一个Area下边有不同的场景,比如 conferenceRoom_1下边有一个conferenceRoom_1.txt下边有很多点的数据(前3个是xyz的值即坐标信息,后边3个是RGB的值即颜色信息)这个就是conferenceRoom的一个场景,场景中有办公桌、门、地板等物体,我们要做的事情就是对这个场景中的物体进行分类,我们需要对每一个点它属于哪一个物体进行相应的分类,其实这是一个分割的问题。
解压完数据之后,在训练之前还需要一个步骤,就是进一步的处理。到data_utils目录下执行python collect_indoor3d_data.py 这样处理完的数据他会在data/stanford_indoor3d目录下。
产生这样的npy数据之后我们才能够进行网络模型的训练。
二、训练
这样的任务对于内存和显存的要求都比较高,pointnet++的作者是有4个显卡进行训练的,所以对于我们大家机器的内存和显存要求都比较高,内存最好在64g,显卡最好有4张显卡,这样每张显卡在11~12g可以达到40多g的这样的显存,但是我们平时都没有这么高的配置哈哈,下边是训练的命令和测试的命令,有条件的话可以尝试。
由于性能配置要求较高,直接shot了进程,没有训练完成。
PointNet++:(1)网络完成的任务分析相关推荐
- 既可生成点云又可生成网格的超网络方法 ICML
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文发表在 ICML 2020 中,题目是Hypernetwork approach to gener ...
- 一文搞懂PointNet全家桶——强势的点云处理神经网络
作者:黎国溥,3D视觉开发者社区签约作者,CSDN博客专家,华为云-云享专家 首发:公众号[3D视觉开发者社区] 前言 PointNet是由斯坦福大学的Charles R. Qi等人在<Poin ...
- Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences
本文介绍一篇Waymo基于点云序列的3D物体检测网络:3D Auto Labeling,论文已收录于CVPR 2021. 这里重点是理解本文提出的 Object-centric Auto Labeli ...
- PointNet++详解与代码
在之前的一篇文章<PointNet:3D点集分类与分割深度学习模型>中分析了PointNet网络是如何进行3D点云数据分类与分割的.但是PointNet存在的一个缺点是无法获得局部特征,这 ...
- PointNet:3D点集分类与分割深度学习模型
之前的一篇博客<动手学无人驾驶(4):基于激光雷达点云数据3D目标检测>里介绍到了如何基于PointRCNN模型来进行3D目标检测,作者使用的主干网是PointNet++,而PointNe ...
- PointNet学习笔记(一)—— 论文
PointNet学习笔记(一)-- 论文 本文记录了博主在学习<PointNet: Deep Learning on Point Sets for 3D Clasification and Se ...
- PointNet 翻译:
红色字体表示可能存在问题的译句 蓝色字体表示值得关注的论文.知识点等 初次接触,所以翻译内容仅供参考,欢迎批评指正 Abstract 摘要 A point cloud is a commonly us ...
- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
基本简介 论文下载地址:https://arxiv.org/abs/1612.00593 代码开源地址:https://github.com/charlesq34/pointnet 作者以及论文信息如 ...
- [LiteratureReview]PointNet Deep Learning on Point Sets for 3D Classification and Segmentation
[LiteratureReview]PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation 出处:20 ...
最新文章
- 5G UE — CPE
- ITK:创建一个后向差分运算符
- 160 - 52 egis.1
- 前端学习(2671): vue3.0脚手架获取功能页面布局
- centos tar安装mysql_centos系统通过tar.gz包安装mysql5.7.19
- 基于 CoreAudio 的音频编解码(二):音频编码
- 【Java Saves!】Session 2:我的意图
- android gms包找不到,错误:包com.google.android.gms.appstate不存在
- Shell脚本 小程序演示
- 【计算机系统组成】IO设备知识要点
- python实现五子棋-人机对战/人人对战(动图演示+源码分享)
- 500VIP源码下载
- android 仿百度地图,仿百度地图街景实现
- 阿里云DDoS防护产品介绍
- 同花顺炒股指标定制-K线只有红绿2个颜色怎么行?
- iPhone手机轻松获取UDID的六种方式
- Rockchip开发系列 - 3.2.引脚配置默认上拉下拉
- 如何在未越狱的ios系统安装ipa文件
- 音乐现场的未来将被NFT门票主宰?
- 【技术栈】【SSM】SMM的常用注解