阅读的文献是国防科技大学的一篇综述:Guo Y , Wang H , Hu Q , et al. Deep Learning for 3D Point Clouds: A Survey[J]. 2019.
根据自己的情况选择了以下四个方向进行研读。
任务一:点云形状分类(3D shape classification)
任务二:点云目标分割(3D object detection)
任务三:点云语义分割 (3D point cloud semantic segmentation)
任务四:点云实例分割 (3D point cloud instance segmentation)
任务一:点云形状分类(3D shape classification)
1. 基于多视图的方法(Multi-view projection methods)
在俯视图,正视图,侧视图三个方位提取特征,然后聚合这些特征用于目标定位。关键点在于如何融合多视图特征,使之聚合为一个可区分的全局表示。MVCNN是该类方法的开创性工作,将三个视图的特征最大池化为一个全局描述符,用于分类。MHBN 通过协调双线性池化整合了局部卷积特征,以生成紧凑的全局描述符。
2. 基于体积占用的方法(Volumetric-based methods)
VoxNet体积占用网络,就是二维卷积在三维的扩展。3D ShapeNet用体素网格上二进制变量的概率分布表示。上述两种方法无法很好地应用到密集的3D数据,因为计算和内存占用量会随着分辨率的增加而三次增长。OctNet首先使用混合网格八叉树结构对点云进行分层划分,使用位串表示对octree的结构进行有效编码,并通过简单的算法对每个体素的特征向量进行索引。树结构的优点是没有点云的地方不再细分。
3. 基于点的方法(Point-based methods)
3.1 单点独立处理式
对单点进行MLP处理,然后聚合(聚合函数可以是max pooling, avg pooling等)。
PointNet:T-Net调整点云姿态;max pooling 解决点云排列不变性。
DeepSets 用summing up + nonlinear transformation实现permutation invariance。
上述两种方法不考虑点云的局部空间关系,即不考虑邻域点的特征。
PointNet++:使用set abstraction结构逐层提取特征。Set abstraction 分为 sampling(一般是总点云数量的一半),grouping(为每个采样点寻找半径r内的固定k个领域点),对这些点用PointNet提取特征并max pooling 聚合为采样点坐标。如此,做两次set abstraction 操作,如果是分类任务,就再进行一个PointNet+max pooling 提取全局特征,如果是分割任务就插值+concat+pointnet(也是两次)来提取单个点云特征。
3.2 考虑邻域的卷积式
3.2.1 连续卷积
3.2.2 离散卷积
3.3 考虑邻域的图卷积式
3.3.1 空间域图卷积
3.3.2 频率域图卷积
3.4 树结构式