一 写在前面
未经允许,不得转载,谢谢~~
这篇文章主要讲的是进行三维重建的过程,与前面提到的这篇文章最大的不同之处在于其表示方式既不是基于点的voxel或者point clouds,也不是基于网格的mesh。
- 文章出处:arxiv 2019
- 原文链接:https://arxiv.org/abs/1905.10711
二 主要介绍
2.1 背景介绍
- 目前三维重建方向已经很受关注,尤其是single view image reconstruction。
目前深度学习已经展现了在这个任务上的优越性。
- 在现有的方法中:
point based method (voxel, point cloud)
- 优点:易于使用CNN(欧几里得表示)
- 缺点:分辨率很受限
mesh based method
- 优点:表示更精细
- 缺点:受限于固定的拓扑结构
- 而且在以上两种point based与mesh based的方法中大多只能使用Chamfer distance(CD)和Earth Mover Distance(EMD)来度量预测模型与gt模型之间的距离,而这两种距离本身只能近似估计。
2.2 文章方法概述
我觉得文章主要可以归为以下两大贡献:
- 引入SDF(signed distance function)来表示3D物体。
- 提出DISN(deep implicit surface network)来预测SDF;
另外其实验结果确实还不错,应该是第一个能把物体的孔洞等细节都恢复出来的模型:
三 文章方法
3.1 SDF (signed distance function)表示方法
- SDF是一个将3D物体中的点p=(x,y,z)映射到实数s=SDF(p)的连续函数。
-
如下图所示:
- s 的绝对值表示这个点到物体表面的距离
- s=0: 点在物体表面
- s>0:点在物体外部
- s<0:点在物体内部
这样就可以把3D模型表示出来。
3.2 DISN(deep implicit surface network)网络结构
DISN用图像作为输入,然后可以预测任意一个给定点p(x,y,z)的SDF值。这样表示DISN的预测模型的分辨率是完全不受限制的,因为我们可以给任意多的点。
结构图如下:
DISN主要分成两个部分:
- camer pose estimation :评估将3D物体投影到这张2D图像的相机参数;
- SDF prediction:预测给定点的SDF值。
参照网络结构图,主要包含以下几个主要步骤:
- 输入:input image,point p(x,y,z)
- 对input image进行相机参数的评估;
- 用CNN encoder得到输入图像的global feature即各层的feature map;
- 用预测到的相机参数将点p映射到2D image plane,然后进行这个点的局部特征提取
- 最后将全局特征、局部特征依次与点特征结合再进行特征提取,得到两路SDF值,最后做个融合。
接下来介绍一些主要步骤中比较重要的部分:
1 相机参数评估
- 相机参数评估是一个独立的部分,也是用深度卷积神经网络来预测图像的相机参数。
- 其意思可以理解将一个3D物体投影到这张特定的输入图像上所需要的相机参数是什么样子的。
- 估计出来的相机参数在后面对每个点求局部特征的时候会被用到。
- 其结构图:
用的是ShapeNet数据集进行这个网络的训练。PC
表示点云,GT Cam
Pred Cam
分别表示ground truth的相机参数,预测出来的相机参数。大概过程就是对输入进行一定的旋转等操作得到一个预测的相机参数,然后用预测的相机参数下的点分布与gt下的点位置分布去做一个比较,得到一个loss
(但这个具体的过程涉及坐标系转换、旋转等我还没有弄懂。)
2 局部特征提取
这个想法其实也挺简单的,先看一下图吧:
- 首先用已知的相机参数(训练)或者预测得到的相机参数(测试)将点p投影回二维的图像平面;
- 之前在求图像的全局特征的时候就已经获取到了各层的feature map;
- 或者这个点对应各个feature map中的特征(具体操作的时候为了包含保证各个大小一致,对小的feature map用双线性差值作了尺寸恢复)
- 把每个feature map提取到的局部特征(图中红色的小方块)直接做一个连接就构成了我们想要的local feature。
-
文章实验证明这个local feature能帮助解决细节(孔、细小的地方)恢复的问题。(a和b分别是没有局部特征和有局部特征的效果)
3 SDF预测及损失函数
- 原本的ShapeNet数据集提供的是物体的3D mesh结构
- 为每个物体的3D mesh生成256^3的SDF作为ground truth: SDF(I)
- 这样在与预测得到的SDF的时候就不需要用近似的CD、EMD距离来求loss,直接用精确对应的点点关系进行计算即可。
- 然后在loss设计的过程中考虑到模型会更加关注接近表面的点,所以最终的loss函数:
- m表示权重系数,如果在一定范围内则权重为m1, 否则为m2
- 为了让表面的点更有权重,m1 > m2 ;
- f(I,p)表示DISN网络对输入图像I,对给定点p预测得到的SDF值;
- SDF(I)(p)表示点p的SDF的ground truth值;
- 距离用的是L1距离;
四 还要再学习的几个地方
- 相机参数估计网络
- E.InsafutdinovandA.Dosovitskiy. Unsupervisedlearningofshapeandposewithdifferentiable point clouds. In NeurIPS, 2018.
- Y. Zhou, C. Barnes, J. Lu, J. Yang, and H. Li. On the continuity of rotation representations in neural networks. arXiv preprint arXiv:1812.07035, 2018.
- 本文改进的方法
- 如何获取输入图像I的SDF ground truth
- F. S. Sin, D. Schroeder, and J. Barbiˇc. Vega: non-linear fem deformable object simulator. In Computer Graphics Forum, 2013.
- H. Xu and J. Barbiˇc. Signed distance fields for polygon soup meshes. In Proceedings of Graphics Interface 2014, pages 35–41. Canadian Information Processing Society, 2014.
- 获取到物体的预测出来的SDF信息后,如何进行mesh的重建工作
- W. E. Lorensen and H. E. Cline. Marching cubes: A high resolution 3d surface construction algorithm. In ACM siggraph computer graphics, 1987.
网友评论