赞
踩
PointNet++:使用set abstraction结构逐层提取特征,采样后的点融合了邻域点的特征信息,同时每次采样只保留一半的点云,后续网络层的感受野逐渐扩大,最后通过聚合函数得到紧密的全局点云特征表示。
Set abstraction 包括 sampling,grouping 和PointNet三部分:
1)sampling:对输入点云进行采样,只保留部分点进入下一层网络。采样数一般是输入点云总数量的一半,
采样算法是Farthest point sampliing (FPS),以保证采样点均匀分布在整个点云集上 。
FPS:https://blog.csdn.net/dsoftware/article/details/107184116
2)grouping:为每个采样点寻找半径r(r=0.2)范围内的固定k(k=32)个邻域点,所有点坐标都是归一化后的。
3)PointNet:对这些点用PointNet(MLP)提取特征并max pooling 聚合为采样点坐标。
如上图,做两次set abstraction 操作后,接两个支路:
分类任务,接一个 PointNet(MLP)+max pooling + 2层full connection layers + softmax 提取全局特征;
分割任务,插值+concat+Pointnet来上采样点云数量并提取点云特征。与set abstraction 对应,插值上采样操作也是两次,以恢复原有的点云数量,最后对每个进行softmax分类。上采样采用的是interpolate结构,对于要恢复的点x(上一级中的点),找尺度空间下的最近K个点,按照距离的倒数对特征加权平均,得到上采样后这个点的特征。然后通过FCN中的skip connection操作将上采样后的点特征和之前encoder部分得到的点特征进行concat,再用pointnet进行特征抽取。重复上述三个步骤直至点云分辨率恢复原始点云分辨率。
PointNet++还讨论了两种局部特征提取方式:Multi scale grouping (MSG), Multi resolution grouping (MRG)。文章用的MSG,即在同一层网络上,分别用不同的r提取不同的k个邻域点,然后它聚合到的特征concat。
由于PointNet结构简单又具有强大的表达能力,很多网络都在PointNet的基础上发展而来。如Achlioptas,PAT,Mo-Net,PointWeb,SRINet等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。