其他分享
首页 > 其他分享> > Pointnnet、Pointnet++、Pointsift总结及核心方法解读

Pointnnet、Pointnet++、Pointsift总结及核心方法解读

作者:互联网

笔者是大二学生,理解比较浅薄,欢迎大家对文章问题进行指正。

一、Pointnet

(一)前提: 

1、基于点云的置换不变性(无序性)使得其设计的网络必须是一个对称函数。

(置换不变性:点的排序不影响物体的性质)

2、某点与其邻域内点之间的相互关系构成了局部特征。

3、旋转,平移等变换不会影响点云的性质。

(二)框架:

        首先输入一个n×3的原始点云(n个点3个维度x、y、z)通过一个inputtransform将点云旋转到正面,之后将每个点输入到mlp网络中,(一共n个点每个点都是一个[xi yi zi]的向量),进行上采样将3维特征映射到64维度上。之后重复上述步骤,点云旋转,将点云特征向高维度映射,最后原来n个具有三维特征的点,变为n个具有1024维特征的数据,最后采用对称函数--最大池化函数,将n个点每一维采用最大池,输出一个1×1024的全局特征向量。

        如果是分类问题,直接进入mlp网络输出每一类的概率。如果是分割问题再将全局特征向量与64维的逐点特征向量上然后通过两次mlp输出逐点的分类概率。

(三)效果

 

二、Pointnet++

(一)背景

        Pointnet++主要是为了克服在pointnet中存在的缺失局部特征的问题。(从上文中可以看出,Pointnet侧重于提取全局向量,即使在分割问题上也只是简单地将全局特征变量拼接在逐点的64维特征上,显然缺乏对局部特征的提取)

(二)框架

         作者借鉴了CNN多层感受野的思想,首先通过(Sampling)随机采样选出一部分点作为局部特征的质心,然后(Grouping)将其邻域内的点划为一簇作为此部分的局部特征点,在局部范围内采用Pointnet提取出局部的全局特征向量,之后逐层进行上述过程,直到提取出全局特征为止。

        

         如果是分类问题,直接进入全连接层输出分类概率即可。 如果是分割问题,则进行上采样(解码),采用线性插值的方法给点作填充最后输出每个点的分类概率。

                                       (简单来说就是距离质心越远的点赋予的权重越小)

(三)改进

        为解决上述提出的框架在点缺少时鲁棒性变得很差的情况,作者引入了多个尺度或者分辨率的Grouping,当点云稠密时尺度较小的Grouping与分辨率高的Grouping权重更大,当点云稀疏时,则相反。

(四)效果

        

 

 

 

 

 

三、PointSIFT

(一)背景

        1、点云稀疏使得算法效率低下。

        2、点与点之间的关系无法较好表示。

(二)框架

        1、PointSIFT模块

         

        作者借鉴了SIFT的思想,对于原始点云数据(n×d),以特征点p0为中心,将空间分割为八个方向,每个方向采用离f最近的点为该方向的特征点,如果在某一方向上在r半径内没有找到该方向上的特征点则用p0本身代替。这样以来,我们使得每一个点都有八个特征,数据变为n×8×d。之后对于x、y、z方向分别进行一次卷积,每次将八个特征两两结合。三次过后数据就从n×8×d变为n×d最后进入relu函数。

        2、尺度感知

        为了能扩大感受野,如同Pointnet++一样,采用多层PointSIFT进行卷积,用多个方向以增大感受野,最后将多个个方向的特征用残差进行拼接,采用卷积进行选择,最后输出n×d个特征。

        

(三)将PointSIFT穿插于Pointnet++中

        

        作者首先将原始点云(n=8192,d=3 or 6)输入到 mlp网络中,输出8192×64维的数据,再经过PointSIFT进行特征提取,输出形状不变。之后进入Pointnet的SA层(Sampling、Grouping&Pointnet)输出1024×128维数据,之后修改参数重复过程变为64×512维数据。

        之后,采用线性插值的方法进行上采样,然后进入PointSIFT。重复操作得到8192个点的128维特征,最后进入全连接层输出每个点的分类概率。

(四)效果

                

 

 

 参考博客:

论文阅读PointSIFT_JiangZuning的博客-CSDN博客

                   【3D计算机视觉】从PointNet到PointNet++理论及pytorch代码_小执着的博客-CSDN博客_pointnet

标签:输出,PointSIFT,Pointnnet,Pointnet,++,Pointsift,特征,点云
来源: https://blog.csdn.net/m0_53455348/article/details/120623565