<改进SGPN>一种无色合成数据训练的杂乱场景中点云实例分割的卷积神经网络

题目:A Convolutional Neural Network for Point Cloud Instance Segmentation in Cluttered Scene Trained by Synthetic Data Without Color

Abstract

本文提出了一种训练卷积神经网络的方法,以利用合成数据预测实例分割结果。
所提出的方法基于SGPN框架。
我们用学习如何提取局部几何特征的“动态图卷积神经网络DGCNN”取代了原来的特征提取器,并提出了一个简单有效的损失函数,使网络更加专注于hard examples(硬例子)。

I. INTRODUCTION

  • 我们专注于料框抓取场景,其中大量相同的零件堆放在一个等待对齐的盒子中。
  • 受SGPN [7]的启发,SGPN使用单个网络在点云上执行实例分割。
  • 与目前许多基于2D图像[18]或3D点云[19]、[20]的实例分割方法不同,RGB图像或颜色信息起着重要作用,所提出的方法只需要点云而没有颜色
  • 因此,所提方法可以通过合成获得训练数据。请注意,尽管训练数据集是合成的,但测试结果是在真实数据上执行的。

我们在SGPN [7]的框架下进行了一些重大改进,SGPN [5]使用PointNet/PointNet++ [6],[6]作为特征提取器,并根据相似矩阵,置信图和语义预测的回归来预测实例分割。由于PointNet在提取本地信息方面没有显示出足够的性能[8];

  1. 因此我们将其替换为动态图CNN(DGCNN)的分段模型的网络结构。
  2. 此外,我们提出了一个focal double-hinge loss function(焦点双铰链损失函数),使网络更专注于疑难情况的分割。

我们的主要贡献如下:

  • 由于特征提取器的改进,所提方法的实例分割性能优于斯坦福大学大规模7D室内空间数据集(S3DIS)[3]和我们的数据集上的SGPN [21]。

  • 所提出的方法只需要点云。因此,训练数据集可以从模拟中生成,并轻松应用于其他对象。

  • 与SGPN的损失函数相比,提出并应用了一种新的损失函数,使训练损失更容易收敛。

  • 所提出的由合成数据训练的Graph CNN在真实数据上具有优异的性能。

  • 实验结果表明,所提方法对堆积物体的姿态估计精度较高。

第二节介绍以前的一些进展和SGPN的结构。
第三节提出了点云实例分割的方法。
第四节用S3DIS数据集和我们的杂乱场景数据集证明了所提方法的有效性。


II. Related Work

先驱者在体素化形状上使用3D卷积神经网络[25]。这种简单的3D网络状结构用于3D点云,需要很高的内存要求和计算成本,限制了实际应用。

  • 2D 上的分割:FCN、SegNet、Faster-R-CNN、Mask R-CNN
  • 点云上的分割:
  1. 需要点云和RGB图——费资源又耗时。
  2. 点云无序性——点云转换为3D体素网格——计算成本
  3. 置换不变性——PointNet——使用对称函数来解决点云的排列不变性——网络单独处理每个点,MLP学习每个点的特征,局部信息提取不佳——有人改进:搜索嵌入空间中最近或相似的点来探索点云的局部信息

因此,基于PointNet,SGPN [7]提出了一种新的点云实例分割方法。由于其优异的性能和灵活性,我们提出了一种基于它的点云实例分割新方法。

图1.所提方法生成的实例分割结果。
我们首先使用与 [1] 相同的方法来获取边界点,并为每个边界点输出实例标签。
(a) 场景的有组织的点云。(b) 场景云中的边界点。(c) 边界点云上的实例分割。


SGPN的结构

SGPN [7] 将实例分段表述为clustering problem(集群问题)。SGPN使用PointNet 提取点云的特征+训练网络来预测语义结果、相似性矩阵和逐点置信度+生成实例分割结果。

  1. 图二所示,SGPN 使用特征提取器提取特征F的大小Np×Nf. 
  2. Np :点云的大小        Nf :特征的维度。
  3. F 馈送到三个子网和三个特征矩阵FSIM ,FCF ,FSEM 以相同的形状生成Np×Nf .
  4. 三个子网分别负责生成similarity matrix(相似性矩阵,SIM)、point-wise confidence map(CF,逐点置信图)、semantic segmentation map(SEM,语义分割图)。
  5. SGPN 的loss是三个子网的组合。L=LSIM+LCF+LSEM

简而言之,SGPN使属于同一实例的点在嵌入式空间中更接近,将分割问题转变为聚类问题。

图2.改进的SGPN的网络架构。我们将边界点云馈送到网络中,并输出每个点的实例结果。
DGCNN提取每个点的特征,然后分别发送到三个子网。Np 是点云的大小,我们设置Np=4096 .Nc 是对象类别的数量【也就是说,你的箱子里放了几种物品】,在 S3DIS 中Nc=13 ,在我们的数据集中Nc=1


1)特征提取器

SGPN使用PointNet的分段网络来提取点云的特征。每个点对应一个 128 维特征,然后将这些特征发送到三个子网中进行进一步处理。

2) Similarity Matrix 相似矩阵

  • F_{SIM},特征矩阵的i 行是一个Nf 维张量,表示点位置P_{i}在嵌入式空间中的位置。
  • 相似性矩阵的子网使用F_{SIM}获取的特征来生成相似性矩阵S。
  • S的大小是Np×Np .S中的元素S_{ij}是嵌入空间中每个点对的特征距离,隐式的表示P_{i} 和 P_{j} 是否属于同一实例。
  • SGPN使<相似的点对>在嵌入空间中具有接近的特征距离,尽管它们在物理空间中很远。
  • 每对点P_{i} 和 P_{j}的关系定义为三类:
  1. P_{i}P_{j}属于同一实例;
  2. P_{i}P_{i}属于同一类别,但属于不同的实例;
  3. P_{i}P_{i}不属于同一类别。

损失函数L_{SIM}如下。

  • F_{SIM}P_{i}在嵌入空间的特征。C_{ij} 代表i和j的相似性。
  • α , K1 , K2 是常数。α>1 是增加语义分割损失的权重。因为嵌入空间中不同类别的点对的特征距离应大于同一类别的特征距离,所以K1<K2。

\begin{align*} L_{SIM}=&\sum _{i}^{N_{p}} \sum _{j}^{N_{p}} l(i,j) \\ l(i,j)=&\begin{cases} \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2} & C_{ij}=1 \\ \alpha \,\mathrm {max}(0, K_{1} - \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2}) & C_{ij}=2 \\ \mathrm {max}(0, K_{2} - \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2}) & C_{ij}=3 \end{cases}\tag{1}\end{align*}

 3) Confidence Map 置信图

  • 置信度图是一个Np×1 的矩阵,它表明模型认为point分组的正确程度。
  • SGPN的回归置信度图G 根据ground Truth G,也是Np×Np 的相似性矩阵。
  • similarity matrix(相似性矩阵)的每一行都是一个聚类:同一实例小于某个阈值。
  • 对于此组改进,SGPN将此预测的结果与ground truth进行比较,并计算intersection over union (IoU)。IoU 越大,预测结果越接近真实聚类,分组候选项的可信度就越高。
  • 损失L_{CF} 预测group和ground truth group之间的 L2 损失。

4)Semantic Segmentation Map 语义分割图

  • 语义分割图是一个点分类器。类别数量为Nc 。
  • SGPN发送F_{SIM}到子网中并输出Np×Nc 大小的矩阵M_{SIM}
  • M_{SIMij}表示点属于每个类别的可能性。
  • L_{SIM}的语义分割图是通过交叉熵函数计算的。

III. Method

我们提出了一种在没有颜色的点云上进行例如分割的新方法。受SGPN方法的启发,该方法将实例分割视为聚类问题,我们直接对边界点云数据集执行实例分割。
真实场景的边界点通过[1]中提出的方法捕获。
通过对RGB图像执行Canny Edge算法并将相应的像素映射到场景中的点云来提取边界点。我们使用合成数据训练网络,并用真实数据评估我们提出的网络。

  • 我们使用DGCNN [8]而不是PointNet作为SGPN的特征提取器。DGCNN是一个语义分割网络,其结构与PointNet相似。不同之处在于DGCNN引入了一种名为EdgeConv [8]的新算法,该算法利用局部几何结构并学习全局特征。当合成数据缺少颜色信息时,这些功能至关重要。
  • 此外,对于我们的场景,我们对损失函数进行了一些调整,并在预测阶段添加了distance mask(距离遮罩)。
  • 我们的方法经实验证明在我们的数据集和 S3DIS 上具有更好的性能。

A. Replace Feature Extractor 替换特征提取器

  • 我们合成的点云信息只包含坐标,因此局部特征变得尤为重要。SGPN中用作特征提取器的PointNet单独处理点,因此网络无法学习本地特征。该问题是由缺少颜色信息引起的,因为仅通过空间坐标很难确定点的类别。
  • 为了解决这个问题,我们首先用DGCNN替换特征提取器PointNet,并在S3DIS上评估此修改。
  • 这种替换的效果在我们不包含颜色信息的数据集上起着更重要的作用。

B. Focal Double-Hinge Loss 局灶性双铰链缺失

  • SGPN [7] 划分点对的关系{Pi,Pj} 分为三类。
  • 受RetinaNet [32]的启发,我们使网络更加关注一些点对——位于两个不同实例的边界上。
  • 当点对的特征距离小于某个阈值时,可以将其视为同一实例。
  • 因此,如果 2 个点已经足够接近,则不需要它们对损失函数做出贡献。
  • 为了实现这一点,我们重新定义损失函数如下。

其中:

  • α ,β ,M1 ,M2 和M3 是常量,使得β>α>1 ,M3>M2>M1>0 。
  • 与原始损失函数相比,所提出的损失函数倾向于使同一实例中两点之间的特征距离小于阈值M1 但不需要接近零。
  • 因此,易于区分的点对的贡献被降低了权重。通过改进,我们可以发现预测结果有了很大的提高。

\begin{align*} L_{SIM}^{*}=&\sum _{i}^{N_{p}} \sum _{j}^{N_{p}} l^{*}(i,j) \\ l^{*}(i,j)=&\begin{cases} \beta \mathrm {max}(0, \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2} - M_{1}) & C_{ij}=1 \\ \alpha \mathrm {max}(0, M_{2} - \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2}) & C_{ij}=2 \\ \mathrm {max}(0, M_{3} - \Vert F_{SIM_{i}} - F_{SIM_{j}}\Vert _{2}) & C_{ij}=3 \end{cases}\tag{2}\end{align*}

C. Distance-Mask 距离掩码

Inspired by Hinterstoisser et al. [12], if the distance dij between two points is greater than the longest distance dmax in the model, then these two points cannot belong to the same instance as shown in Figure 3. So, we add a distance judgment during the process of clustering points. If their euclidean distance exceeds the maximum size, even if they are very close in embedding space, they will not be regarded as the same instance. We show the improvement effect in Table 2.

  • 灵感来自Hinterstoisser等人。 [12],如果在模型中两点之间距离d_{ij} 大于最长距离d_{max},这两个点不能属于同一个实例,如图 3 所示。
  • 因此,我们在聚类点的过程中增加了距离判断。如果它们的欧几里得距离超过最大值,即使它们在嵌入空间中非常接近,也不会被视为同一实例。我们在表2中显示了改善效果。

图三.蓝色圆圈对应于Distance-Mask的pi ,在模型中圆的半径为最长距离d_{max}
即使Pi和Pj在嵌入空间中具有很高的相似性,它们不会被分组到一个对象中。
添加距离掩码后,可以减少聚类错误。

IV. Experiment

  • 我们将我们提出的网络的分割精度与S3DIS上的SGPN进行了比较。
  • SGPN的结果由作者在GitHub上发布的代码实现[33]。
  • 采用扫描网评估[34]来评估测试结果。
  • 仅当每个预测组和ground truth group之间的 IoU 大于 0.5 时,预测实例才被视为<真>。
  • 进一步利用我们的数据集进行了姿态估计实验,以证明分割的有效性。我们的方法是在Tensorflow框架中实现的,硬件设备是Nvidia GTX1080,Intel Core i7 8700K CPU和32G RAM。
  • 我们使用初始学习率为 0.0001、批量大小为 2、动量为 0.9的 ADAM [9] 优化器。
  •  epoch =200,每个部分大约需要 10 个小时。
  • 在培训阶段,α= 最初设置为 2,每 2 个epoch增加 5,最多 10。
  • 我们设置β=2 以平衡loss损失,以及M1=5、M2=10、M3=80 .M1,M2 和M3 根据经验和需要设置,以满足0<M1<M2<M3 .不同的值对实验结果没有明显影响。
  1. S3DIS:数据集涉及3个区域的6D扫描,覆盖272个房间。每个点都有 13 个语义类别的实例和语义标签。网络由S3DIS训练,区域5除外,网络由S5DIS区域3进行评估。请注意,区域 5 未出现在该区域的其余部分。

  2. 我们的数据集:我们使用三个工业部分来评估所提出的方法。合成场景的生成方法与 [1] 相同,涉及 1000 个训练样本。测试样本为真实场景,真实实例标签为手动制作。一个场景中随机堆积了 20 到 30 个相同类型的零件。每个场景包含大约 60,000 个边界点。场景中的每个点都有实例注释。这些部件没有纹理,没有可辨别的颜色。合成场景的模型和示例如图 4 所示。请注意,训练样本和测试样本都只包含零件的边界点。

图4.(a)、(b)和(c)是模型。(d)、(e)和(f)是合成边界点云场景。
我们将训练集可视化,并在同一场景中用不同的颜色表示不同的对象。

 图6.(a) 是真实场景。(b)是场景的有组织的点云。(c) col 是场景的边界点云。
(d) 是 SGPN 的实例结果。(e) 是我们的实例结果。

C. Pose Estimation 姿势估计

V. Conclusions

该文提出一种简单而有弹性的实例级点云分割方法。我们只需要点云的坐标信息,因此所提出的方法更加高效便捷,并且克服了深度学习的最大缺陷:数据集。我们使用 S3DIS 来确认修改是否有效,新的损失函数提高了模型的性能。实验表明,与原来的实例分割方法SGPN相比,我们的算法能够更精确地分割点云,并且在杂乱点云中具有优异的分割性能。此外,我们利用所提方法进行了姿态估计实验,表明该方法可以应用于精确的姿态估计过程。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这里是 20 个比较流行的点 3D 分割模型: 1. PointNet 2. PointNet++ 3. PointCNN 4. Kd-Net 5. SpiderCNN 6. PointSIFT 7. PointASNL 8. PointGroup 9. PointConv 10. PointWeb 11. PointGNN 12. PointPillars 13. PointSESA 14. PointSNE 15. DensePoint 16. PointSAP 17. PointSGN 18. PointGCN 19. PointSRNN 20. PointSOGN 希望这些模型能够帮助您解决问题。 ### 回答2: 以下是20个比较流行的点 3D 分割模型的推荐: 1. PointNet: PointNet是一种用于点分类和分割的经典模型,能够直接对点进行分析和处理。 2. PointNet++: PointNet++是PointNet的扩展版本,通过层次化聚类和采样机制更好地捕捉点的局部和全局特征。 3. PointCNN: PointCNN采用卷操作在点数据上进行局部特征提取和聚合,实现高效的点分割。 4. PointSIFT: PointSIFT使用旋转不变的滤波器对点数据进行采样,以实现稳健的点分割。 5. DGCNN: DGCNN使用动态图卷神经网络对点数据进行分割,并在图像分类上取得了较好的性能。 6. KPConv: KPConv是一种新的基于点的卷操作,适用于点分类和分割任务。 7. RSNet: RSNet是一种适用于点分割的点级循环神经网络,能够有效地处理大规模点数据。 8. 3D PointCapsNet: 3D PointCapsNet是一种基于胶囊网络的点分割模型,具有旋转不变性和姿态估计能力。 9. PointWeb: PointWeb将点数据转换为图像,以便使用传统的2D卷神经网络进行分割。 10. \[1\]PCANet: PCANet是一种基于主成分分析的点分割方法,能够提取点的重要特征。 11. \[1\]Superpoint Graph: Superpoint Graph使用图神经网络在点上建立图结构,实现点分割任务。 12. \[1\]SGPN: SGPN是一种快速和准确的点分割方法,能够对未见过的场景进行分割。 13. \[1\]PoissonNet: PoissonNet使用基于网格的曲面重建方法,将点数据转换为曲面,并进行分割。 14. \[1\]PointCNN++: PointCNN++是PointCNN的改进版本,能够更好地处理较大规模的点数据。 15. \[1\]SPH3D-GCN: SPH3D-GCN将点数据表示为稀疏差分图,以实现高效的点分割。 16. \[1\]SphereNet: SphereNet是一种基于球面卷神经网络的点分割模型,能够处理球面点数据。 17. \[1\]GACNet: GACNet使用旋转不变的球形卷神经网络进行点分割,能够处理复杂的三维场景。 18. \[1\]3DMPPE: 3DMPPE是一种基于动作估计的点分割方法,可以对动态点进行分割。 19. \[1\]PointRSS: PointRSS利用注意力机制在点中提取重要的特征,并进行点分割任务。 20. \[1\]FPSNet: FPSNet使用最远点采样的方法对点数据进行分割,能够处理大规模点数据。 以上是20个比较流行的点 3D 分割模型的推荐,可以根据具体任务需求选择适合的模型进行使用。 ### 回答3: 以下为20个比较流行的点3D分割模型的推荐: 1. PointNet:一种基于点的深度学习架构,用于点的分类和分割任务。 2. PointNet++:PointNet的改进版本,通过层级结构从全局和局部角度对点进行分割。 3. PointCNN:使用卷神经网络在点中学习局部特征,并进行分割任务。 4. KPConv:基于卷神经网络的点分割模型,利用可自适应的卷操作对点进行处理。 5. PointSetGen:利用生成对抗网络 (GAN) 的方法,从噪声中生成3D点,并进行分割任务。 6. PointWeb:一种使用WebGL进行点分割的方法,具有高效的渲染和交互能力。 7. PointSIFT:利用可学习的特征权重对点进行密集采样,并进行分割任务。 8. PointGrid:将点转换为网格表示,在网格上进行分割任务。 9. PointCapsNet:基于胶囊网络的点分割模型,利用胶囊结构对点进行多尺度分析。 10. DGCNN:基于图卷神经网络的点分割模型,将点转换为图结构进行分割任务。 11. MVCNN:将多视角的点数据输入多个卷神经网络进行分割任务。 12. MLPNet:一种使用多层感知器 (MLP) 的点分割模型,通过多层神经网络对点进行分析和分类。 13. PUNet:基于Unet架构的点分割模型,通过编码和解码的过程对点进行分割。 14. DensePoint:利用密集的点采样策略进行分割任务,具有高分辨率的分割结果。 15. CGNet:一种使用全局和局部信息进行卷操作的点分割模型。 16. PointAttentionNet:通过学习点中的注意力权重,对点进行细粒度的分割任务。 17. EdgeConv:通过边缘卷操作对点进行分割任务,具有高效的计算效果。 18. PointTransformer:利用Transformer结构对点进行特征学习和分割任务。 19. KPConv-UNet:将KPConv和UNet结构相结合,实现高效的点分割模型。 20. RandLA-Net:一种利用自适应采样和局部特征学习的点分割模型,具有快速和高准确度的特点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值