Qi大神提出的pointnet家族中的一员,相较于划时代的只有全局特征的pointnet,加入了局部特征,以下是整理的笔记和不理解的地方。
简介
PointNet是在点云上应用深度学习的先锋,但有两个缺点。第一,pointnet学习每个点得到逐点特征,并把所有点串联得到全局特征,这导致无法获得局部特征,限制了网络对精细场景的识别和对复杂场景的泛化能力。第二,pointnet均匀采样,但实际场景的点云密度变化较大。
对应以上两点,pointnet++作出如下改进:
一是利用度量空间距离(metric space distances)将点集划分为有重叠的局部区域,使用pointnet对点集局部区域进行特征迭代提取,使其学到局部尺度越来越大的特征,直到全局特征。(类似CNN特征提取,先提取低级别特征,随着感受野增大,提取特征level越来越高)。二是提出了自适应密度的特征提取方法。
pointnet++需要解决的两个关键问题:
- 如何生成点集的划分
- 如何利用特征提取器提取不同区域的局部特征
这两者是相关的,点集的划分必须得到在跨区域的共同的结构,以便像卷积设置那样共享局部特征学习器的权重。
针对问题2,使用pointnet迭代学习局部特征。
针对问题1,定义邻域球,参数有中心坐标和半径。中心坐标的选取,文章使用了快速采样算法FPS(farthest point sampling)。相比于CNN以固定的步长进行扫描,这里的感受野依赖输入数据和度量。半径的选取,这里的邻域球大小类比于CNN中的卷积核,尽管VGG中提到小的卷积核效果比较好,但这是由于图像是网格化的,如果pointnet++使用较小的半径,可能会扫不到完整的局部特征。这里可以用KNN实现。
(未完)