【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)

Learning to Segment 3D Point Clouds in 2D Image Space

本文介绍一篇cvpr2020里面关于点云部件分割的文章。
论文
代码

1. 问题

相比于2D U-net 的架构上,点云上的部件分割没有取得比较好的进展。
所以这篇文章,将3D点云投影到2D空间上,再使用U-net的架构进行分割,取得的效果可谓是遥遥领先!

【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)

2. 思想

整体流程就是以下三步

  • Construct graphs from point clouds.
  • Project graphs into images using graph drawing.
  • Segment points using U-Net.

【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)
首先将2048个点,来源于shapent 或者partnet, 将其聚类成32个类别。 然后将这32个聚类中心映射到16x16规格的grid上。然后,对于属于一类的点,将他们再映射到16x16的grid上,最终形成了256x256的图片。

【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)

3. 算法

3.1 Graph Construction from Point Clouds

先使用kmeans算法进行聚类,对形成的各个类别内再进行建图。

由于kmeans形成的类别很可能是不均衡,此文提出了一种改进算法,进行均衡聚类。想要各个类别的点数比较相近(毕竟物体是由对称的各个单元组成的)
【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)
相比于常见的KNN建图方法,本文使用Delaunary triangulation 方法进行建图。
Delaunary triangulation 建图方法有以下优点

  • The connection of all the nodes in the graph is guaranteed
  • All the local nodes are directly connected
  • The total number of graph connections is relatively small

3.2 Graph Drawing: from Graphs to Images

要将图中的顶点映射到grid上面,同时保证图的拓扑结构尽可能的被保存。
所以,可以建模成一个integer programming (IP) 问题
【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)
【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)

3.3 MultiScale UNet for Point Segmentation

【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)
作者在这里贴出了几个对比实验,证实多尺度的U-net是最合适的结构。

4 实验结果

【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)【点云识别】Learning to Segment 3D Point Clouds in 2D Image Space (CVPR 2020)

遥遥领先的分割精度,可谓是难寻对手!

总结

突破性的进步,大大提高了3D part segmentation 领域的SOTA。使3D转化为2D变成现实,可以预见未来大家可以更好地迁移2D领域的相关知识。

我也意识到,如果想在3D上有比较大的突破,是需要扎实的知识储备!这篇文章和之前阅读的hieracical都是将图形学的知识迁移,并进行改进,取得了比较大的进步!!积累很重要!!!!!!

上一篇:python 列表套列表去重


下一篇:python实现BFS(广度优先搜索)& DFS(深度优先搜索)