其中,3D点云数据作为一种重要的数据形式,被广泛应用于自动驾驶、机器人导航、3D建模等领域。PointNet作为处理点云数据的开创性工作,为这一领域的发展奠定了基础。 二、PointNet网络结构 PointNet的网络结构相对简洁,主要包括输入层、特征提取层和全连接层。 输入层:PointNet可以直接处理无序的点云数据,输入为N×3的矩...
实际上通过网络结构看出T-net结构是一个mini的Pointnet做特征提取,是个弱监督学习设计,我理解为需要训练一个矩阵对输入点(或者深层特征)进行坐标变换,个人认为这样的设计实际上是可以保留原始点云的部分特征,为后面的concat操作提供更多特征。源码中在点云分类部分使用到了 T − n e t T-net T−net,点云分割...
实际上通过网络结构看出T-net结构是一个mini的Pointnet做特征提取,是个弱监督学习设计,我理解为需要训练一个矩阵对输入点(或者深层特征)进行坐标变换,个人认为这样的设计实际上是可以保留原始点云的部分特征,为后面的concat操作提供更多特征。源码中在点云分类部分使用到了T-net,点云分割部分可以不用,对结果并没有太...
在基于点云数据的深度学习研究中,很少有网络直接处理场景的点云数据,因此作者们在这个领域探索并设计了Pointnet网络结构直接使用原始点云数据作为输入,并用了一些方法使得网络能对输入点云的扰动具有鲁棒性。整个网络结构很简单却能有效的处理数据,并在当时的数据集上有着不错的表现,为后来的处理点云数据的深度学习网络...
总结一下PointNet网络的整体架构如下图所示。 PointNet++ PointNet++是PointNet的改进版,PointNet在分类任务和Part Segmentation上都取得不错的结果,但是其在Semantic Segmentation上却无能为力。原因在于其并无法学习到点与点之间的关系。所以PointNet++根据2D CNN的思想改进了这一缺点。
源码中在点云分类部分使用到了T-net,点云分割部分可以不用,对结果并没有太大的提升,原因在于pointnet结构自身不能学到点云点的局部联系,因此即使加入类似结构的T-net也是一样。 models/transform_nets.py中的网络实现 向上滑动阅览 def input_transform_net(point_cloud, is_training, bn_decay=None, K=3):...
PointNet++是PointNet改进版,PointNet在分类和Part Segmentation表现良好,但在Semantic Segmentation受限。PointNet++依据2D CNN思想改进,通过SA模块进行特征学习。模块首先采样关键点,围绕每个关键点选取球形区域内点作为Grouping,应用PointNet提取特征。每个点特征不仅包含自身信息,还融合领域内周围点关系。关键点...
三、pointnet网络结构详解 先来看网络的两个亮点: 空间变换网络解决旋转问题:三维的STN可以通过学习点云本身的位姿信息学习到一个最有利于网络进行分类或分割的DxD旋转矩阵(D代表特征维度,pointnet中D采用3和64)。至于其中的原理,我的理解是,通过控制最后的loss来对变换矩阵进行调整,pointnet并不关心最后真正做了什么变...
PointNet是针对目标分类和语义分割任务设计的一种网络模型,特别注重处理点云数据中点的无序性、点间关系和刚性变换不变性。其核心在于设计能够适应点云特性,不受点的排列顺序影响的网络结构。点的无序性:点云由无特定顺序的点组成,网络设计需考虑对所有N!种可能的排序保持不变性。PointNet采用了顺序无...
2、网络结构分析 (1)针对无序性的解决方法比较 (2)输入和特征对齐的有效性验证 (3)鲁棒性测试(数据缺失、异常值、点扰动) 3、可视化(解释为什么鲁棒性) 通过研究是哪些点最大程度激活了神经元的值,论文发现,能够最大程度激活网络的点都是物体的主干点,将其上采样,很容易能得到原始的结构。这样的能力...