Learning to Segment 3D Point Clouds in 2D Image Space
本文介绍一篇cvpr2020里面关于点云部件分割的文章。
论文
代码
1. 问题
相比于2D U-net 的架构上,点云上的部件分割没有取得比较好的进展。
所以这篇文章,将3D点云投影到2D空间上,再使用U-net的架构进行分割,取得的效果可谓是遥遥领先!
2. 思想
整体流程就是以下三步
- Construct graphs from point clouds.
- Project graphs into images using graph drawing.
- Segment points using U-Net.
首先将2048个点,来源于shapent 或者partnet, 将其聚类成32个类别。 然后将这32个聚类中心映射到16x16规格的grid上。然后,对于属于一类的点,将他们再映射到16x16的grid上,最终形成了256x256的图片。
3. 算法
3.1 Graph Construction from Point Clouds
先使用kmeans算法进行聚类,对形成的各个类别内再进行建图。
由于kmeans形成的类别很可能是不均衡,此文提出了一种改进算法,进行均衡聚类。想要各个类别的点数比较相近(毕竟物体是由对称的各个单元组成的)
相比于常见的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) 问题
3.3 MultiScale UNet for Point Segmentation
作者在这里贴出了几个对比实验,证实多尺度的U-net是最合适的结构。
4 实验结果
遥遥领先的分割精度,可谓是难寻对手!
总结
突破性的进步,大大提高了3D part segmentation 领域的SOTA。使3D转化为2D变成现实,可以预见未来大家可以更好地迁移2D领域的相关知识。
我也意识到,如果想在3D上有比较大的突破,是需要扎实的知识储备!这篇文章和之前阅读的hieracical都是将图形学的知识迁移,并进行改进,取得了比较大的进步!!积累很重要!!!!!!