点云深度学习系列四: SGPN:Similarity Group Proposal Network for 3D Point Cloud Instance

1. 背景引入

分割概念

语义分割:对图像中每个像素或点云的每个点都划分出对应的类别

实例分割:实例分割是物体检测+语义分割的综合体。相对物体检测的边界框,实例分割可精确到物体的边缘;相对语义分割,实例分割可以标注出图上同一物体的不同个体(羊1,羊2,羊3...)

siamese network

 两张图片做分类的话,同一类在 feature space 里面很相近,不同类就是在 feature space 里面相差比较远,它们的两张图片 feed 到 CNN,利用共享的权重投影到同一个 feature space 上,训练的时候用的是 Hinge Loss(即图右公式)

2.整体框架

首先使用PointNet/PointNet++来获取Np个点云的全局和局部特征,然后在特征的基础上计算三个属性矩阵相似矩阵(Similarity Matrix)、置信度矩阵(Confidence Map)和语义分割矩阵(Semantic Prediction),最后将所有结果整合即可得到实例分割结果。

Similarity Matrix

similarity matrix 是通过 pointnet 生成的特征(Fsim),计算每个点的特征距离。Sij 就是点 i 和 点 j 在特征空间的距离,如果它距离越远,说明它们两个就不在同一个类别,如果距离越近,就说明在同一个类别。如果两个点都是椅子 1 的话,它们距离比较近;如果是椅子 1 和椅子 2 ,距离比较远;如果是椅子和桌子,它们在 feature space 里面的距离也要非常远。

假设点的个数为Np,similarity matrix的大小为Np*Np,每一行是一个 group proposal,设一个 threshold,如果小于这个 threshold,对于每一个小于这个 threshold,表示这些点在一个 group 里面,也就是说我们现在有 Np 个 group proposal。

训练方式

借助siamese network的思想:两个图片如果是一类的话,就让它们在 feature specs 里面的距离很小。如果它们不是一类的话,就让它们距离比较大。

如果两个点属于不同类的话,让它们的距离很大。如果它们是相同类的话,就让它们在 feature specs 里面的距离比较小,我们同样得使用的是 Hingle loss,两个点都是椅子 1 的话,我们就 minimize 这个 term(下图右下公式),在这里介绍一个 double hinge loss,也就是说两个点,一个椅子 1、一个椅子 2 的话,我们让它们的 margin 比 K1 大。如果两个点是一个桌子、一个椅子的话,我们就让它们的距离比 K2 大,在训练的时候 K1 要比 K2 小一点,在实验中我们发现用这种 double hinge loss 的方式,会让结果更好一点,比 K1=K2 的时候结果好一点,这样我们就训练出了 similarity matrix。

 

SGPN中的相似矩阵的一个可视化结果,表示了一个指定点到其余点的距离。红色箭头处表示的是指定点的位置,点云的颜色表示相似度,黑色表示你距离较近。

 

Confidence Map

对于 similarity matrix 的每一个行,我们是一个 group proposal,对于这一个 group proposal,我们有一个 ground truth,然后我们把这个通过 similarity matrix 预测出来的 prediction 的结果和 ground truth 进行比较,我们计算 IoU,IoU 就是 inter section over union,也就是说,如果 IoU 越大的话,表示这一行,也就是这个 similarity propose 出来的结果更可信。如果 IoU 更小的话,是更不可信的,这样我们就 regress 出来 confident map,然后在这里,我们也 visualize 这些 confidence,颜色越深表示 confidence 越高,颜色越浅表示 confidence 越低,我们可以看到着一些 connection part,连接处的 confidence 比较低,通过这些方式去排除掉一些噪声,相当于在 similarity matrix 的预测削减掉一些 similarity matrix confidence 比较低的 group proposal。

置信度矩阵的主要目的是反映每一个聚类是一个正确分割实例的可信度。在训练阶段,置信度矩阵来自于相似矩阵;但是在使用阶段,置信度矩阵和相似矩阵都是则同时计算。 

置信度矩阵的可视化,颜色越深表示可信度越高,而实例相交处的颜色则较浅.

 

Semantic Prediction

语义分割矩阵是一个基于点的分割器。经过PointNet求取特征后,每一个点得到一个类别概率,比如Np×Nc的矩阵,代表Np个点和Nc个类别

 

图(右)黄色区域代表桌子,蓝色区域代表椅子

 

Group Proposal Merging

直接通过相似矩阵生成的聚类结果会存在较多的噪声和重叠。本文通过去除一些置信度较低的聚类结果,并进一步使用极大值抑制等方法最终得到一个噪声较低和没有重叠的聚类结果。 

当聚类完成后,每一个点都会属于某一个实例。但是在两个实例的相邻区域,点则可能属于两个实例;本文的方案就是将该点随机设置为某一个实例。

 

原作者公开课:http://www.mooc.ai/open/course/501

原作者公开课稿件:https://baijiahao.baidu.com/sid=1605235762733551923&wfr=spider&for=pc

泡泡机器人翻译:https://blog.csdn.net/u012348774/article/details/80792160

 

(感觉文章好多,后面可能会看的越来越粗略)

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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:一种利用自适应采样和局部特征学习的点云分割模型,具有快速和高准确度的特点。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值