(SGPN)南加州大学 phd 王薇月:深度学习在点云分割中的应用 | 公开课视频内容分享总结

(SGPN)南加州大学 phd 王薇月:深度学习在点云分割中的应用 | 公开课视频内容分享总结

本博客基于论文:SGPN: Similarity Group Proposal Network for 3D Point Cloud Instance Segmentation
论文作者:Weiyue Wang,Ronald Yu,Qiangui Huang,Ulrich Neumann
参考资料及公开课视频链接:
https://www.leiphone.com/news/201806/mEvy6NJ7tyQtk889.html
http://www.mooc.ai/open/course/501
在这里感谢王薇月博士的分享以及刘鹏的整理
本博客主要分享SGPN内容


大家好,我是来自南加州大学的在读phd王薇月,我的主要研究方向是计算机视觉(主要侧重于3D的vision),今天我们介绍的是深度学习在点云分割中的应用。我们知道三维物体和场景有很多种的表达方式,比如3D的mesh,还有Volumetric data,distance field等等。点云是比较直接,而且很简单的一种表示方式。首先介绍一下什么是点云(Pinot Cloud),点云是很多三维的点的坐标的集合,这整个集合可以反映场景或者物体的几何信息,在计算机里面,它就是一个N * 3维的一个矩阵,N代表的是点的个数,三维就是x、y、z的坐标(当然也可以是N*6,即x、y、z、r、g、b),随着激光、雷达和深度摄像头等硬件设备的发展,我们就能更好地捕捉 3D 的场景,处理 3D 信息也是现在的一个非常关注、非常火的话题。采集点云的主要方式就是激光雷达、深度摄像头(深度摄像头采集来的 深度图可以通过照相机的参数计算出 3D 的点云)。我们今天的讲课专注点云的分割。
在这里插入图片描述
在这里插入图片描述
所谓点云的分割,今天我想介绍的有两层,一层是语义分割和实例分割,所谓语义分割就是给每个点指派一个标签(label),比如说这个点是桌子还是椅子。实例分割就是在指派语义分割的同时,把每个不同的物体给分割出来,比如一个房间里有很多椅子,每个点标label 成椅子1、椅子2。实例分割与物体检测,即对象检测(目标检测)是紧密相连的,对象检测:给一个场景,把你想要的物体检测出来并给一个bounding box(边界框)。实例分割是比物体检测要稍微难一点的问题,因为它需要给每个点都要标出来。今天主要介绍在最新的 CVPR 上的工作,对点云进行实例分割的网络:similarity group proposal network(SGPN)。

介绍 SGPN:实例分割的网络

在这里插入图片描述
在此之前,我想先回顾一下 2D 是怎么做实例分割和物体检测的。
在这里插入图片描述
我们都知道 2D CNN 在物体检测上取得了比较好的成果,就是R-CNN一系列的工作,包括fast R-CNN,都是从 R-CNN 开始的,R-CNN是使用选择性搜索从图片中提取一些用Region Proposal,然后把每一个proposal fit到CNN的网络里面,然后再进行分类,它用这种方法来进行物体检测。根据 R-CNN 的工作,faster R-CNN替代了选择性搜索,通过 Region Proposal network来回归每个Region Proposal的相对anchor的offset来获取proposal,然后这整个是一个end-to-end的网络,出来的就是一些 像素的bounding box,还有每个bounding box代表的每个物体的概率。根据faster R-CNN的ICCV的best paper是Mask R-CNN,它是通过做图像level的实例分割来实现,它们沿用了faster R-CNN 的 Region Proposal network,然后在生成了bounding box的基础上又生成了object mask(对象掩码),我们也使用这种Region Proposal的概念,然后对点云进行分割,随后我会对此进行详细的介绍。
在这里插入图片描述
还有一个相关的工作是3D的deep learning,从2D的CNN到3D的CNN,最直接的方法就是Volumetric CNN,当然这个是因为受到GPU内存的限制,没有办法做到很高的精度。去年CVPR上斯坦福的研究者们提出了PointNet,是针对point cloud的网络,他们把N*3的点云feed到网络里面,然后在最后一层用max pooling提取global feature,然后把这个global feature concat到每一个点云,然后进行分割,我们的网络建立在pointnet和它的后续工作pointnet++的基础上提取出来feature。
在这里插入图片描述
我们还有一个相关的工作是,deep metric learning,中文:度量学习,在deep learning里面比较典型的metric learning就是siamese network,比如说有两张图片,我们想让它做分类的话,同一类在特征空间里面很相近,不同类就是在特征空间里面相差比较远,它们的两张图片feed到的CNN,是共享的weight,投射到同一个特征空间上,训练的时候用的是Hinge Loss(即图右公式)。
在这里插入图片描述
注:公式讲解可回放视频至第7分钟查看

之后会讲我们的工作跟simaese network的关系,先简单介绍一下背景,之前说过,我们的任务是想生成一个实例标签和一个语义分割标签,也就是说对于每个点云有两个标签,一个标签代表着这个点云是属于椅子1还是椅子2的,另一个标签代表它是椅子还是桌子,还是电视等等,背景知识已经介绍完毕了。我们是建立在pointnet和pointnet++基础上进行feature提取,然后借用R-CNN等工作的Region Proposal的思想,提出了一个叫similarity group proposal的network,我们现在把它简化为SGPN。
在这里插入图片描述
SGPN的大体思路是这样的,我们首先是用pointnet提取feature,也可用pointnet++,提起完feature之后,之后有3部分(下图中间部分),similarity matrix(相似矩阵),confidence map(置信图),semantic prediction(语义预测),我下面会对这三个部分进行一一介绍。
在这里插入图片描述
首先是 semantic prediction(语义预测),这里的semantic prediction 跟 pointnet 的 semantic segmentation 是一样的,对于每个点生成的是一个类别的可能性,就是对于每个 类别它的概率是多大,比如说我们有 Np 个点,就生成了 Np*NC 的矩阵,NC 就是有多少个对象类,下面的这个结果就是 semantic prediction 的结果,比如下图(右)黄色区域代表桌子,蓝色区域代表椅子。
在这里插入图片描述

下面来介绍 similarity matrix(相似矩阵),similarity matrix 就是对于每一个点,我们想生成 N 个点相对于它的位置,也就是说对于 similarity matrix 是通过 pointnet 生成的那个 特征,我们管它叫 Fsim,通过它进行计算它的 pointwise 的距离,对于这个 similarity matrix,假设它叫做一个ij的元素,Sij 就是point i和point j在特征空间的距离,如果它距离越远,说明它们两个就不在同一个 group,如果距离越近,就说明在同一个群体,也就是说如果两个点都是椅子1的话,它们两个在特征里的距离比较近。如果椅子1和椅子2在特征空间里面距离比较远,或者说它们是椅子和桌子的话,它们两个在 特征空间里面的距离也要非常远。然后,我们有这样一个Np(点的个数),有这样一个Np * Np的similarity matrix,就是说每一行都可以是一个group proposal,我们要设一个下限,如果小于这个下限,对于每一个小于这个下限,表示这些点在一个group里面,也就是说我们现在有Np个group proposal,现在的问题就是我们怎么去 train 这个 matrix(矩阵;模型),它的Ground Truth是什么?
在这里插入图片描述
注:该公式详细解读可回放视频至第 10 分钟查看

我们刚才讲过了siamese network(接入网),就是说两个图片如果是一类的话,就让它们在特征空间里面的距离很小。如果它们不是一类的话,就让它们距离比较大,所以我们通过采用这种方式,借用这个思想,来训练我们的 similarity matrix,如果两个点属于不同类的话,我们就让它们的距离很大。如果它们是相同类的话,我们就让它们在特征空间里面的距离比较小,我们同样得使用的是Hingle loss,两个点都是椅子1的话,我们就 minimize(最小化)这个 term(项)(下图右下公式),在这里介绍一个 double hinge loss,也就是说两个点,一个椅子1、一个椅子2的话,我们让它们的边缘比K1大。如果两个点是一个桌子、一个椅子的话,我们就让它们的距离比K2大,在训练的时候K1要比 K2小一点,在实验中我们发现用这种double hinge loss的方式,会让结果更好一点,比 K1=K2的时候结果好一点,这样我们就训练出了similarity matrix。
在这里插入图片描述
注:该公式详细解读可回放视频至第12分钟查看

大家可以来看一下这些可视化的结果,这些代表的是相似点,越黑的表示特征空间它们的距离越近,颜色越浅,就表示它们特征空间距离越远。
在这里插入图片描述
注:此处详细讲解可回放视频至第 14 分钟时查看

介绍完了 similarity matrix,我们再来介绍另一个部分:confidence map(置信图)。
在这里插入图片描述
因为similarity matrix是个Np*Np的矩阵,也就是说我们有Np个group proposal,这样就有很多冗余,我们想用这个confidence map削减一些group proposal,confidence map 的定义,也就是说它的ground truth是如下定义的。
在这里插入图片描述
对于similarity matrix的每一个行,我们是一个 group proposal,对于这一个 group proposal,我们有一个 ground truth,然后我们把这个通过 similarity matrix 预测出来的的预测结果和ground truth进行比较,我们计算IoU,IoU就是inter section over union,也就是说,如果IoU越大的话,表示这一行,也就是这个similarity propose出来的结果更可信。如果IoU更小的话,是更不可信的,这样我们就回归出来 confident map,然后在这里,我们也可视化这些confidence,颜色越深表示confidence越高,颜色越浅表示 confidence越低,我们可以看到着一些连接部分,连接处的confidence比较低,通过这些方式去排除掉一些噪声,相当于在similarity matrix的预测削减掉一些similarity matrix confidence比较低的group proposal。

之后,像R-CNN、faster R-CNN它们有一些后置处理,它们会多预测出来一些 region proposal,然后就会用临界值的方法去证明这些结果,我们也同样用一个比较简单的贪婪法去证明这个结果,效果也是非常不错的,对于网络预测出来的一些group proposal,对于每一个,先初始化一个大的群集,如果这个group proposal是没有出现在这个群集里面,我们就把它放进去,如果出现了的话,我们就进行下一个,这样就做了一个后置处理,就得到了最终的结果,下面是一些实验结果。
在这里插入图片描述
在介绍实验结果之前,我们先简单介绍一种非常简单的均类方法,就是在所有的点里面选一些种子,然后进行BFS去寻找到最近的零点,然后去寻找跟它最近的相同的标签,如果它们有一个下限,如果大于这个下限就停止,如果小于这个下限,就继续寻找。相同的 label group起来,就形成了一个新的情况,就是我们的一个group,然后通过跟这个方法进行比较,因为在目前文献上面进行点云实例分割的文章比较少,我们就用这种比较简单的方法进行比较。
在这里插入图片描述
可以看到,这个是stanford 3D indoor semantic dataset上面,然后我们取得的结果比 seg-cluster好很多。我们有了instance segmentation(实例分割)之后,就很容易得到 3D 的object detection(目标检测)结果,因为我们有了每个实例,每个点的位置,我们就可以计算边界框,然后去跟Ground Truth的边界框比较,pointnet也给了一个结构去做instance segmentation,可以看到我们比它们也是好很多。
在这里插入图片描述
注:此放大部分的详细讲解可回放视频至第 19 分钟查看,不同的颜色代表不同的 group,即不同的 instance。
在这里插入图片描述
seg-cluster有不同的临界值(下限),临界值变大的时候,也就是说两个相同标签的物体更容易连接在一起,如果临界值变小的时候就更不容易连接在一起,临界值变小的时候,结果就如上图(右部)所示,将它分成了两个部分,但是在SGPN中就会避免这个问题,通过 similarity matrix(相似矩阵)的方法,建立了上面和下面的联系。
在这里插入图片描述
除此之外,还在NYU dataset上面做了实验,因为NYU有很多2D的图像数据,包括depth信息,然后我们通过2D的CNN去改善SGPN的结果,因为通过相机参数,我们可以把深度图像换成点云,也就是说每一个点和每一个图像的坐标是有联系的,于是我们通过几个 CNN layer,然后联系相同的位置的特征,把 CNN 里的功能连接到 pointnet 的相同point 的特征里面,然后再进行几个pointnet的 layer,再生成 SGPN 的3个子模块去进行point 的实例分割,在NYU的dataset上面。
在这里插入图片描述
这是我们的结果(图上),SGPN比seg-cluster好很多,我们还进行了3D detection跟 literature的比较,因为literature有Ground Truth的bounding box,像床、桌子一些大型的物体,它们的bounding box是 loose 的,也就是说,扫描的时候只是扫描一部分点,像有些?clusion,像床、桌子这些点其实都很小,存在的我们能看到的点,在点云中其实很少的,所以计算bounding box,不是很准确,就是一个 tide 的 bounding box,没有办法跟大的bounding box去比,所以我们在这里(图右下)只比较了一些小的物体,比 literature都好一些。

然后我们看一些更多的可视化的结果,这里有在stanford 3D indoor semanticdataset上面的,我们还在scannet上面做了很多实验,大家感兴趣的话,可以去阅读我们的文章,有更多的实验和应用研究。


再次感谢王薇月博士的分享以及刘鹏的整理

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值