[NIPS 2017]PointNet++: Deep Hierarchical Feature Learning onPoint Sets in a Metric Space
语雀(原文内容多一点,CSDN导不进来)
[论文地址][项目页面][GitHub]
在之前的文章中分析了PointNet网络是如何进行3D点云数据分类与分割的。但是PointNet存在的一个缺点是无法获得局部特征,这使得它很难对复杂场景进行分析。在PointNet++中,作者通过两个主要的方法进行了改进,使得网络能更好的提取局部特征。第一,利用空间距离(metric space distances),使用PointNet对点集局部区域进行特征迭代提取,使其能够学到局部尺度越来越大的特征。第二,由于点集分布很多时候是不均匀的,如果默认是均匀的,会使得网络性能变差,所以作者提出了一种自适应密度的特征提取方法。通过以上两种方法,能够更高效的学习特征,也更有鲁棒性。
导览
【PointNet作者亲述】90分钟带你了解3D物体检测算法和未来方向!
PPT:
斯坦福大学在读博士生祁芮中台:点云上的深度学习及其在三维场景理
PPT:
pointnet++翻译
一、背景
pointnet缺陷:没有平移不变性、没有局部特征提取能力、没有考虑点之间的关系
这些缺陷急需解决。
二、解决的问题
1.解决pointnet的缺陷,获得特征提取能力更好的网络。
2.多层次结构特征学习。
3.点的稀疏与稠密对特征提取的影响
三、方法
论文中说了很多官话,有兴趣的可以去看下,我稍微简洁点。
1.思路:在局部区域中用pointnet做递归
1.先根据空间距离的度量将点云划分到一些局部的区域中,这些区域可以是重叠的,再对每个小区域采用pointnet聚合特征,将每个区域聚合成一个带有特征向量的点,到此为止,庞大的点云转化为了:少量的点+包含区域特征的特征向量。处理和抽象一组点产生具有较少元素的新集合。
2.获得的新点云重复上面的工作,以扩大特征深度和广度。
举例,现在有一个点云 ( x , y ) (x,y) (x,y),它的一个局部区域中有个点 ( u , v ) (u,v) (u,v),用pointnet聚合区域
得到 ( X , Y , F ) (X,Y,F) (X,Y,F), F F F是该区域特征向量,用 ( X , Y , F ) (X,Y,F) (X,Y,F)代表区域所有点。
所以就将原始点云 ( X , Y ) (X,Y) (X,Y)转化成特征点云 ( Y , Y , F ) (Y,Y,F) (Y,Y,F),特征点云点数更少,具有更高维度的信息 F F F
这就是作者文中提到的操作Set Abstraction:
farthest point sampling + grouping + pointnet
2.网络结构
2.1 set abstraction
用两个SA(set abstraction)组成多层点集特征学习网络,SA由三个关键层组成:采样层,分组层和PointNet层。
采样层从输入点中选择一组点,这些点定义了局部区域的质心。 然后,分组层通过查找质心的相邻点来构建局部区域集。PointNet层使用mini-PointNet将局部区域编码为特征向量。
2.1.1 输入:
SA采用 N × ( d + c ) N\times(d+c) N×(d+c)矩阵作为输入
其中:
d代表d维坐标,比如xyz坐标中d=3;
c代表c维特征;
2.1.2 输出:
它输出具有d-dim坐标的 N’个子采样点的N’×(d + C’)矩阵和总结局部上下文的新 C’-dim特征向量。
( N , ( d + c ) ) (N,(d+c)) (N,(d+c)) ————> ( N ′ , ( d + c ) ) (N’,(d+c)) (N′,(d+c)) ————> ( N ′ , ( d + c ′ ) ) (N’,(d+c’)) (N′,(d+c′))
图中k是区域中的k个点
2.1.3 Sampling layer
最远点采样,网上介绍太多,不讲。
其实最远点采样会丢失点云的强度信息,看看后面有什么发现吧。
2.1.4 Grouping layer
( N , ( d + c ) ) (N,(d+c)) (N,(d+c)) ————> ( N ′ , k , ( d + c ) ) (N’,k,(d+c)) (N′,k,(d+c))
K最近邻(kNN)/Ball query,太多,不讲
2.1.5 PointNet layer
( N , k , ( d + c ) ) (N,k,(d+c)) (N,k,(d+c)) ————> ( N , ( d + c 1 ) ) (N,(d+c1)) (N,(d+c1))
作者还把k个点坐标替换成质心的相对坐标,意义何在,不知道。
2.2 Classification
分类任务:直接最大池化再经过全连接层 ( f c ) (fc) (fc)进行全局分类。
2.3 Segmentation
分割任务:往回插值和向上卷积得到每个点的分类,好好思考网络的过程就可以理解。
2.4 总结构
最终得到整个网络。
四、难点
分组过程中,点的稠密与稀疏会影响特征
MSG:广度
MRG:深度
性能测试,随机丢失点:
五、结果
Scene Parsing
Better accuracy with hierarchical learning
Robust layers for non-uniform densities (MSG) helps a lot
六、总结
一句话总结:分组操作使得点与点之间有了联系,使得局部特征提取有了可能。点的体素化是为了使用cnn,分组操作让pointnet也可以使用cnn思想,而且是直接处理点,因为之前说过pointnet就是为了直接处理点获得特征。所以pointnet的精髓在于分组思想。
最远点采样采集的点大部分都是稀疏点,越密集的地方采集越少,会使得分组得到的点非常少
今天的文章pointnet++网络_POINT是什么币分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/63001.html