参考的论文是这篇:
PointNet:
https://arxiv.org/abs/1706.02413
PointNet++:
https://arxiv.org/abs/1612.00593
官方的源码pytorch版本:
官方源码中语义分割sempseg的部分改了很多次依然没跑起来,后找b站一位博主改良的PointNet框架代码顺利运行,有需要的可以参考一下这个,个人觉得比较清晰:
【完整版】3D点云(3D point cloud)实战解析,PointNet、PointNet++、GCN算法解读!_哔哩哔哩_bilibili
一、前言
1.1 基本思路
图像处理比起点云处理来说,有什么不同:对一个二位图像来说,除开RGB的维度,一般都是拆分分成三个维度各自处理,颜色维度上测度为255(默认颜色是连续的);在location中XY的维度上测度为0,是一个有限的二维点集,不可导不可积,即在X和Y的维度上,相邻的元素两两从整体上没有紧密的联系,映射到欧几里得空间时为一个点,在转换时不需要考虑描述过程;所以对图像处理的根本就是对一个”有序“的一维向量点集做处理(可以思考为什么是有序,而对于到点云是”无序“的),在经典神经网络框架中表示在输入为有限的常量。CNN引入了卷积的概念,下面说法中以3×3的卷积为例,在同在一个卷积核内,使得每一个点与周围(包括斜距上相邻)的点产生联系。
点云是三维数据,由大量的点组成。每个点都包含位置信息和可能的其他属性(如法线、颜色等)。在点云中,点的位置不仅限于二维平面,而是可以在三维空间中任意位置,location中XYZ都是可密的,且具有连续性(具体见最下方的连续性假设):因为点云中的点表示了物体表面或场景的采样,相邻的点会紧密地排列在一起,形成连续的曲面。没有明确的排序规则