一周前看过pointnet文章,也跑了pointnet的代码,但是没有跑出来(用的网上的GPU环境,就是简单的测测),现在打算梳理一下,并且用公司电脑跑完pointnet.
参考博主: https://blog.csdn.net/hongbin_xu/article/details/84638109
https://www.jiqizhixin.com/articles/2019-05-10-13
对其重要地方加深理解。
1. pointnet网络架构
2.关键流程
-
输入为一帧的全部点云数据的集合,表示为一个nx3的2d tensor,其中n代表点云数量,3对应xyz坐标。
-
输入数据先通过一个T-Net学习到的转换矩阵相乘来对齐,保证了模型的对特定空间转换的不变性。
-
通过多次mlp对各点云数据进行特征提取后,再用一个T-Net对特征进行对齐。
-
在特征的各个维度上执行maxpooling操作来得到最终的全局特征。
-
对分类任务,将全局特征通过mlp来预测最后的分类分数;对分割任务,将全局特征和之前学习到的各点云的局部特征进行串联,再通过mlp得到每个数据点的分类结果。
下面就是跑完官方的pointnet 分类代码,最好自己制作数据集 完整的来一遍,边做边试。
16.17开始跑的模型:(1660ti,速度还是慢啊!!!)迭代一次(epoch)大概80s;
大概晚上10点钟左右出来的。
这里一共跑了250次,如果想要更改次数(时间真的太长了。。。),请打开log文件夹下的log_train.txt文件里面有参数设置的功能。(好像不是这里,这个运行后才创建的文件夹)
https://blog.csdn.net/qq_40234695/article/details/86223577
这个博主写的相对详细。