(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上面做了很多实验,大家感兴趣的话,可以去阅读我们的文章,有更多的实验和应用研究。


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

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

  1. 深度学习在点云分类中的研究综述————文献总结

    根据知网的一篇文章写的总结,详见我的资源:深度学习在点云分类中的研究综述_王文曦.pdf 这篇文章详细介绍了点云语义分割的发展概况. 正文开始 点云的语义分割的发展概况,先上图: 基于深度学习的分类方 ...

  2. 基于深度学习的点云分割网络及点云分割数据集

    作者丨泡椒味的泡泡糖 来源丨深蓝AI 引言 点云分割是根据空间.几何和纹理等特征对点云进行划分,使得同一划分内的点云拥有相似的特征.点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物 ...

  3. 前沿丨基于深度学习的点云分割网络及点云分割数据集

    众所周知,点云的有效分割是许多应用的前提,例如在三维重建领域,需要对场景内的物体首先进行分类处理,然后才能进行后期的识别和重建.传统的点云分割主要依赖聚类算法和基于随机采样一致性的分割算法,在很多技术 ...

  4. 大盘点 | 基于深度学习的点云分割网络及点云分割数据集

    编辑 | 深蓝前沿 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 后台回复[数据集下载]获取计算机视觉近30种数据集! 引言 点云分割是根据空间.几何和纹理 ...

  5. 深度学习如何在云服务器中搭建环境

    深度学习如何在云服务器中搭建环境 作者:Ruci 在深度学习中,难免会碰到电脑带不起的情况.这时,可以去网上购买云服务器使用.由于本人,在一次跑程序时,跑不起来.问向了导师,导师给我了一个云服务器.我 ...

  6. 又是华为!对标 TensorFlow、PyTorch,深度学习框架 MindSpore已开源!附入手公开课...

    Datawhale 作者:Datawhale 摘要:随着深度学习框架等工具的全面开源,最强 AI 处理芯片昇腾的落地,华为的 AI 布局已经逐渐清晰起来,MindSpore 将为各行业带来哪些新变化, ...

  7. CSDN技术主题月----“深度学习”代码笔记专栏

    from: CSDN技术主题月----"深度学习"代码笔记专栏 2016-09-13 nigelyq 技术专题 Hi,各位用户 CSDN技术主题月代码笔记专栏会每月在CODE博客为 ...

  8. #今日论文推荐# 爱丁堡大学等首篇《移动无线网络中的深度学习》综述论文,67页pdf涵盖570篇文献阐述深度学习在移动无线网络中的应用最佳实践

    #今日论文推荐# 爱丁堡大学等首篇<移动无线网络中的深度学习>综述论文,67页pdf涵盖570篇文献阐述深度学习在移动无线网络中的应用最佳实践 移动设备的迅速普及以及移动应用和服务的日益普 ...

  9. 【知识图谱】知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?深度学习在知识图谱构建中的应用。

    阿里妹导读:搜索"西红柿",你不但能知道它的营养功效.热量,还能顺带学会煲个牛腩.炒个鸡蛋!搜索引擎何时变成"暖男"了?原来背后有"知识图谱" ...

最新文章

  1. 四代 DNA 测序技术简述*
  2. 单例模式——创建型模式
  3. css——模态框【遮罩层的制作;信息层;往白色的块里添加表单】
  4. 【STM32】硬件随机数程序示例
  5. python小白逆袭大神课程心得_python小白逆袭大神(深度学习7日训练营)——心得体会...
  6. 对于刚开始使用该软件,应该在熟悉基本的markdown语法的基础上,再进行快捷键的使用!...
  7. java中能构成循环的语句_《编程导论(Java)#183;3.2.4 循环语句》
  8. linux自动重启保护,Linux在崩溃时自动重启应用程序 – 守护进程
  9. 爬虫demo_全自动爬虫,你爱了么!解放双手的时刻
  10. Windows域策略设置 IE信任站点【全域策略生效】
  11. YOLO系列目标检测算法-YOLOv2
  12. 拉格朗日插值的优缺点_拉格朗日插值法与牛顿插值法比较
  13. QT重写QLabel画框并透明化背景
  14. 局域网之间两台计算机同屏,spacedesk解决两台电脑同屏的问题
  15. 计算机信息管理基础考试试题及答案,计算机信息管理基础复习题A及答案
  16. Linux路由器流量统计系统
  17. 关于Dve C++——[Warning] pointer to a function used inarithmetic
  18. 微信小程序--点击水波涟漪效果
  19. web技术分享| AudioContext 实现音频可视化
  20. Java---Map详解

热门文章

  1. 以色列量子计算软件公司,与欧洲机构合作开发薛定谔猫状态纠错技术
  2. 安装屏保软件(Linux终端演示 “黑客帝国” 字母雨界面)和Linux修改管理员密码...
  3. gdpr通用数据保护条例_关于通用数据保护法规(GDPR),您需要了解的15件事
  4. 分析IBM JVM上的heap dump 文件phd格式
  5. 什么叫结构化的算法?为什么要提倡结构化的算法?
  6. React 使用Markdown 更改样式
  7. core dump 1
  8. 基于堆栈二值化自动编码器和二值化神经的无约束人脸表情识别算法(An efficient unconstrained FERa based on BAEs and BNN)
  9. 当没有接口文档时候,测试人员如何测试?
  10. SSL/TLS一键配置工具-IISCrypto