PointNet++:点集在度量空间中的深度层次特征学习
层次神经网络,递归地将PointNet应用于输入点集的嵌套区域。
通过利用测度空间的距离,我们的网络可以随着不断增加的上下文尺度去学习局部特征。
集合学习层自适应地组合来自于多个尺度的特征。
PointNet的基本思想:学习每个点的空间编码,然后将所有的单个点聚合成一个全局点云签名。
PointNet++的基本思想:以分层的方式处理在度量空间中采样的一个点集。通过底层空间的距离度量将点集分割为重叠的局部区域。从小的邻域中提取局部特征,从而捕捉精细的几何结构;将局部特征分组为更大的单元,形成更高级别的特征。重复这个过程,直到我们获得整个点集的特征。
PointNet++解决的两个问题:点集划分的生成;局部特征学习器抽象点集和局部特征
两个问题之间的关系:点集的分割必须产生跨越分区的共享结构;PointNet作为局部特征学习器
局部感受野既依赖于输入数据,还依赖于度量,因此效率更高、效果更好
PointNet++与CNN的区别:
- 输入点集的采样密度
- CNN的输入可以被视为在具有均匀恒定密度的标准栅格上定义的数据。在CNN中,局部划分的尺度对应着核的大小。[^25]表明使用较小的核有助于提高CNN的能力。
PointNet++与PointNet的区别:
- PointNet是对点的空间编码
- PointNet++增加了层次结构的扩展,可以在不同尺度上捕捉局部上下文的能力
集合抽象层由三个关键层组成:采样层、分组层和PointNet层。
- 采样层:从输入点中选择点集,点集中的点定义了局部区域的质心。
- 输入点${x_1,x_2,\cdots,x_n}$,迭代地应用最远点采样(Farthest Point Sampling,FPS)去选择点的子集${x_{i_1},x_{i_2},\cdots,x_{i_m}}$,
- 相比随机抽样,在质心数量相同的情况下,PointNet++方法对整个点集的覆盖结果更好。
- 相比CNN这种扫描数据分布不可知的向量空间方法,PointNet++抽样策略以数据依赖的方式生成感受野。
- 分组层:通过寻找质心周围的“领域”点构建局部区域集。
- 该层的输入是大小为$N\times(d+C)$的点集和大小为$N’\times d$的质心集合的坐标,输出是大小为$N’\times K\times(d+C)$的点集组,其中每个组对应于一个局部区域,$K$是质心点的领域中点的数目。
- PointNet层:使用一个微型PointNet编码局部区域模式为特征向量。
- 输入是大小为$N’\times K\times(d+C)$的数据点的$N’$局部区域。
- 输出中的每个局部区域通过其质心和编码质心领域的局部特征完成抽象。输出是大小为$N’\times(d+C’)$的数据。
集合抽象层次以$N\times(d+C)$的矩阵作为输入,该矩阵是具有$d$维坐标的$N$个点和$C$维的点特征组成。它的输出是$N’\times(d+C’)$矩阵,该矩阵是具有$d$维坐标的$N’$子采样点和新的汇总局部上下文的$C’$维的特征向量组成。
Sec0303 非均匀采样密度下的稳健的特征学习——密度自适应PointNet层
图3(a):多尺度分组(MSG)
- 应用不同尺度的分组层,根据PointNet提取的不同尺度的特征拼接越来构成一个多尺度特征
- 计算成本大
图3(b):多分辨率分组(MRG)
- 某个层次$L_i$上的区域特征是两个向量的拼接
- 一个向量是通过(图3左)是通过汇总使用了集合抽象层的低一层的$L_{i-1}$每个子区域上的特征获得
- 一个向量是使用PointNet在局部区域上直接处理所有原始点获得的特征
- 当局部区域密度较低时,第一个向量不如第二个向量有价值,因为计算第一个向量的子区域中包含的点更加稀疏,并且更加受到采样不足的影响。
- 当局部区域的密度较高时,第一个向量提供了更加精细的细节信息,因为它具有在较低的层次以较高的分辨率递归地检查的能力。
- 与MSG相比,效率更高,避免了在最低的层次的大规模邻域中进行特征提取
PointNet++评估使用的数据集
- MNIST(二维图像):带有6万个训练样本和1万个测试样本的手写数字图像
- ModelNet40(三维刚性模型):40个类别的CAD模型(大部分是人造的)。我们使用官方划分,9843个训练用形状,2468个测试用形状。
- SHREC15(三维非刚性模型):50个类别1200个形状。每个类别包含24个形状,其中大部分是有机生物的姿势,如:马、猫等。我们使用五重交叉验证来获得该数据集的分类精度
- ScanNet(三维扫描场景):1513扫描和重建的室内场景。我们遵循[^5]中的实验配置,使用1201个训练场景,312个测试场景。
思考问题
- 如何将输入的数据集采样成点云?
- 所有的点集被归一化为零均值、单位球
- 数据集的处理方式
- MNIST抽样为512个点的二维点云
- ModelNet40从网格表面抽象成1024个点的三维点云,使用面片的法向作为附加的点特征
- 曲面上的测地线是什么?如何解决非刚性变换带来的问题?
- 度量空间中提取内在点特征(WKS、HKS和多尺度高斯曲率)是什么?