SSRNet 三维重建
SSRNet: Scalable 3D Surface Reconstruction Network
论文原地址 https:// arxiv.org/pdf/1911.0740 1.pdf
论文目的:surface reconstruction
SSRNet 核心是local geometry-aware features for octree vertices and designs a scalable reconstruction pipeline
优点:
(1)提高顶点和曲面相对位置的重建质量,并行性好
(2)只需要several surface data 用来训练
(3)扩展性和质量都很高(scalability and quality)
1. Introduction
MC如何让获得surface
黄色的点是原始的点,红色的点是外接点,蓝色的点是内接点,MC方法就是找到绿色的交接点,提取表面信息如(d).
表面重建可以看作是对octree vertices的二分类问题。也就是只要找到 哪些是红色点,哪些是蓝色的点, 后续利用MC方法获得三维表面重建结果。
-----------------------分割线---------------------------
根据上图,下面是我对论文的主要理解
(1)黄色点表示 原始点云 ,黑色网格点看作octree,黑色交叉点的位置为 octree vertices ,将两个数据作为输入的数据。
(2)模型预测的是octree vertices里面 哪些是红色点(label=0),哪些是蓝色的点(lable=1)
(3)不是将所有的octree vertices 数据送入到模型。作者认为只要选择和黄色点临近的octree vertices就可以,比如上图(b)中,只需要红色和蓝色的octree vertices就可以( 注意此时对于输入的octree vertices无法区分红色还是蓝色 ),比如没有被标记网格的最左上,最右上,最左下,最右下的octree vertices就不会被送入模型中。
(4)作者为了获得局部信息,及不使用所有点云数据训练,将输入数据进行 划分 。如下图需要将数据划分成4个区域,那么 octree vertices 就以最中心的蓝色点平均分成四个框, 保证 vertices 不重叠。而划分点云数据的框是有重叠区域的,如下图橘色的框。这样做是为了获得到更多点云的信息,预测 octree vertices 的类别。
(5)模型的结构是先有点云的特征,再利这个特征与octree vertices结合,输出对每个octree vertices的预测类别,如下图。这也解释了上面为什么点云数据的框大于octree vertices的框的原因。
(6)模型的结构。
(7)切面卷积的应用是如何帮助获得了geometry-aware vertex feature?
其实切面卷积里的 符号投影距离 和 位置投影 有效的解释了geometry-aware vertex feature。
这里需要知道何为切面卷积。切面卷积就是,点投影到切平面 符号距离 ,然后在切平面上卷积。
上图所示,切面卷积,投影出点的位置,而每位置的值为 符号投影距离 。但是,作者对这个符号有质疑的,是因为local covariance analysis方法算出的法向量k是有歧义的。
“we use the input normals of neighbor points as additional constraints to define np. Let na be the average input normal of the neighbor points of p. In our definition, if the angle between eigenvector k and na is more than 90◦ , we invert the direction of k”
因为local covariance analysis方法算出的法向量k是有歧义的,所以作者 除了考虑单个点的切平面的法向量a外,还考虑了邻近点的法向量相加为b的方向,假设ab>0, a不会改变方向, 如图。所以一旦法向量的方向被改变了,那么 所有符号投影距离 的 符号 将改变 。
(8)Surface Extraction and Smoothing
文章直接用交叉点的中点作为交叉点,Laplacian-based smoothing方法做后处理,用MC提取表面信息。
(9)数据准备
normalize the coordinates
octree building使用PSR
用ground truth surface标记vertices
-----------------------分割线---------------------------
下面是对论文其他部分的理解
重建真实点云存在的问题
(1)考虑了所有的点,不能分开点云来观察。
典型的方法如Deep Marching Cubes, 这样做不太好,计算资源要求高,会使模型的扩展性差(less scalable)
(2)做了很多下采样并且将点聚集在相对小的范围内
典型的方法如Occupancy Networks和DeepSDF
(3)对复杂的数据,模型不能重建很好的细节
(4)用了大部分的数据(a large portion of the dataset)来训练。容易出现过拟合,表现也不好。
个人观点:主要在说不要用那么多点,那么多的数据,太多数据意义不大。
读到这里疑问作者如何只用少数的点和数据就能做好重建任务呢?以及如何选择少数的点?作者的效果真的很好吗,非常小的细节也可以吗?
这篇文章中,作者也是用 implicit function 方法来重建表面,主要的思想就是对octree vertices做0-1标签,这样就会变成binary classification的问题。但是,这样做产生的重建质量不是很好,对此需要处理三个主要的限制。
(1)网络的可扩展性The scalability of the network.
PointNet考虑了全部的点,所以less scalable。作者在固定大小的局部区域(fixed-size local spatial region)用 切面卷积 (tangent convolution)操作,并且每个1 × 1 convolution也是 独立 的。因此作者通过 bounding boxes 分开 points and octree vertices并且独立处理了不同的部分,这样就有高的可扩展性(strong scalability)。
(2)重建几何细节的能力The ability to reconstruct geometry details.
作者的octree vertex features特征重建来自局部邻近点并且利用 局部邻近信息(local projection information) 去构建表面,比如 the signed projection distances 。这样就能从大量数据中获得local geometry details和local geometry information用于计算front-back分类。
(3)模型生成的能力The generalization ability of the network.
作者的octree vertex features是具有局部几何感知的。因为不需要依赖全局信息所以这样做有很好的生成能力。
个人观点,可以看出作者的方案主要是 切面卷积,独立性,局部邻近信息 提升模型的可扩展性,细节能力和生成能力。
2. Related Work
这里主要解释了如何缩放大规模数据和如何获取几何细节。
2.1. Geometric reconstruction methods
TSDF和用各种MLS的低次 多项式拟合 局部距离场和向量场, 这样就将邻近的点放在一起。这种做法也类似我们在网络中使用切面卷积。
2.2. Learning-based reconstruction methods
3D voxel grids or adaptive octree
PointNet++
the tangent convolution network can divide points using bounding boxes and process each part independently.
强调切面卷积能够用bounding boxes分离点和让每个部分相互独立。
作者说ONet 和 DeepSDF需要一个global latent vector表示所有数据,这样就不用划分输入数据。
3 Method
3.1. Pipeline
SSRNet, 这个方法需要划分输入点云和octree vertices。如图
这个部分在论文理解里详细描述了。
其他信息理解
1 octree vertices,就是每个树的节点只可能接8个或者0个的子节点。为什么是8个呢?因为8个顶点构成了一个立方体。
2 tangent convolution,切面卷积
3 TSDF, a truncated signed distance function on a volumetric grid。截断符号距离
4 MLS,移动最小二乘法
论文引用
[1] Lars Mescheder, Michael Oechsle, Michael Niemeyer, Sebastian Nowozin, and Andreas Geiger. Occupancy networks: Learning 3d reconstruction in function space. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 4460–4470, 2019. 1
[2] Maxim Tatarchenko, Jaesik Park, Vladlen Koltun, and QianYi Zhou. Tangent convolutions for dense prediction in 3d. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 3887–3896, 2018.
[3] Michael Kazhdan and Hugues Hoppe. Screened poisson surface reconstruction. ACM Transactions on Graphics (ToG), 32(3):29, 2013
[4] William E Lorensen and Harvey E Cline. Marching cubes: A high resolution 3d surface construction algorithm. In ACM siggraph computer graphics, volume 21, pages 163–169. ACM, 1987
[5] Gabriel Taubin. A signal processing approach to fair surface design. In Proceedings of the 22nd annual conference on Computer graphics and interactive techniques, pages 351– 358. ACM, 1995
最后
我目前是边看便理解,如果有错误的地方,希望批评指正,一定会修改过来。
我是一个正在努力学习3D视觉的小米渣。加油~