pointnet分割自己的点云数据_PointNet:深度学习在3D点云分类与分割上的应用

大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱分享、热爱开源! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、数据结构与算法、编程 等感兴趣,可以关注我的动态,我们一起学习,一起进步~

我的博客地址为:【AI 菌】的博客

我的Github项目地址是:【AI 菌】的Github

1. PointNet简介

点云是一种重要的几何数据结构。由于其格式不规则,大多数研究人员将这些数据转换为规则的三维体素网格(Voxel)或图像,以便于通过深度学习中的卷积操作进行权值共享、优化kernel参数等。但是,这会使得数据变得不必要的庞大,并导致一些问题。

PointNet,由斯坦福大学的Charles R. Qi等人在CVPR2017上发表,是一个端对端的神经网络,可以直接将点云数据作为输入,通过学习,实现对3D点云数据目标的分类与分割。

PointNet的效果很好,并且对输入的扰动等具有很好的鲁棒性,它的表现性能达到了当时最先进的水平。

PointNet的三个重要应用方面:

35702323d37dfd0a56afc8b5a1d80159.png

2. 提出背景

从数据结构的角度来看,点云是一组无序的向量。虽然深度学习的大部分工作都集中在常规的输入表示上,如序列(语音和语言处理)、图像和体积(视频或三维数据),但在点云的深度学习方面却做得很少。这主要是因为点云具有三个特征:无序性、稀疏性、信息量有限。

Oriol Vinyals等人最近的一项工作研究了这个问题。他们使用带注意机制的读写网络来输入无序的集合,并显示他们的网络具有对数字排序的能力。

在欧式空间中的点云集合具有三个特点:

无序性。点云是一组没有特定顺序的点。

点之间的相互作用。这些点来自具有距离度量的空间,这意味着点不是孤立的,相邻的点可以形成一个有意义的子集。因此,模型需要能够从邻近点捕捉局部结构,以及局部结构之间的相互作用。

变换下的不变性。比如点云整体的旋转和平移不应该影响它的分类或者分割。

3. 网络结构

ea78f1fb8cf98b006e04ec4db5349a2a.png

输入是包含n个点的三维点云(x, y, z) , 原始数据通过一个3D 空间变换矩阵预测网络 T-Net(3),估计出3x3的变换矩阵T(3) 并作用在原始数据上,实现数据的对齐。对齐后的数据会以点为单位,通过一个共享参数的双层感知机模型mlp进行特征提取 。每个点提取出64维的特征,再通过特征空间变换矩阵预测网络 T-Net(64) 预测64x64的变换矩阵,作用到特征上,实现对特征的对齐。然后继续利用三层感知机(64,128,1024)进行以特征点为单位的特征提取,直到把特征的维度变为1024,继而在特征空间的维度上进行Max Pooling,提取出点云的全局特征向量global feature。

一方面,全局特征向量经过三层感知机模型,得到k分类输出,实现k分类任务。

另一方面,全局特征向量与前面的64维特征向量concat,通过三层感知机模型得到128维的点特征point features,再经过两层感知机模型,得到n*m的特征向量。n表示输入点的个数,m表示每个点所属的类别信息,从而完成分割任务。

4. 模型的特点

无序输入的对称函数。为了使模型对输入排列保持不变性,有三种策略:1)将输入按规范顺序排序;2)将输入视为训练RNN的序列,但通过各种置换来扩充训练数据;3)使用简单的对称函数来聚合每个点的信息。这里,一个对称函数以n个向量作为输入,并输出一个新的向量,该向量与输入顺序不变。例如,+和*运算符是对称的二进制函数。

e5b9803406200e22c70748fcffa4800a.png

用一个多层感知器网络来近似h,用一个单变量函数和一个最大池函数的组合来近似g。实验证明这种方法很有效。通过h的集合,我们可以学习一些f来捕捉集合的不同性质。

局部和全局信息融合。点分割需要结合局部和全局知识。具体做法是:在计算出全局点云特征向量后,将全局特征与每个点特征连接起来,然后,基于合并的点特征通过3层mlp提取新的逐点特征,提取出的每点特征能同时感知局部和全局信息。

连结对齐网络。如果点云经过一定的几何变换,如刚性变换,则点云的语义标注必须是不变的。因此,我们期望由我们的点集学习的表示对这些变换是不变的。我们通过一个小型网络T-Net预测仿射变换矩阵,并将此变换直接应用于输入点的坐标。小网络本身类似于大网络,由点无关特征提取、最大池和全连通层等基本模块组成。

这种思想还可以进一步扩展到特征空间的对齐。我们可以在点特征上插入另一个对齐网络,并预测一个特征转换矩阵来对齐来自不同输入点云的特征。然而,特征空间中的变换矩阵维数远高于空间变换矩阵,这大大增加了优化的难度。因此,我们在softmax训练损失中添加了一个正则化项。我们将特征变换矩阵约束为接近正交矩阵:

36d418de650d7037220069b4806d2925.png其中A是由小型网络预测的特征对齐矩阵。正交变换不会丢失输入中的信息,因此是需要的。我们发现通过加入正则化项,优化变得更加稳定,我们的模型获得了更好的性能。

5. 理论分析

证明了神经网络对连续集函数的普遍逼近能力。通过集合函数的连续性,直观地看,对输入点集的一个小扰动不应使函数值发生很大的变化,如分类或分割得分。

491a7088d7fe6cb849241ba1549f69d8.png

定理2(a)说明对于任何输入数据集,都存在一个关键集和一个最大集,使得对和之间的任何集合,其网络输出都和一样。这也就是说,模型对输入数据在有噪声和有数据损坏的情况都是鲁棒的。

定理2(b)说明了关键集的数据多少由maxpooling操作输出数据的维度K给出上界(框架图中为1024)。个角度来讲,PointNet能够总结出表示某类物体形状的关键点,基于这些关键点PointNet能够判别物体的类别。这样的能力决定了PointNet对噪声和数据缺失的鲁棒性。

fbe5498b549add70a5aaa3d0c61e0a9e.png

6. 性能与效果

3D Object Classification 。在ModelNet40形状分类基准上评估模型,该数据集有12311个CAD模型,来自40个人造目标的类别,9843个数据作为训练集,2468个数据作为测试集。

2eb8eaa009a9e0994301665c2e893e21.png

3D Object Part Segmentation。部件分割是一项具有挑战性的细粒度三维识别任务。给定3D扫描或网格模型,任务是为每个点或面指定部件类别标签(例如椅子腿、杯柄)。

81d7c8f0f4c4d6b00d334982a0f42721.png

Semantic Segmentation in Scenes。零部件分割网络可以很容易地扩展到语义场景分割,其中点标签变成语义目标类,而不是对象部分标签。

6cd88476ba630160e90d4ea4a2b0110d.png

室内场景的目标分割效果:

059c30fcd32c7048a10306d6d29fd3b8.png

最好的关系是互相成就,各位的「三连」就是【AI 菌】创作的最大动力,我们下期见!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值