一 寫在前面
未經(jīng)允許,不得轉(zhuǎn)載鸠补,謝謝~~
這篇文章主要講的是進行三維重建的過程膘滨,與前面提到的這篇文章最大的不同之處在于其表示方式既不是基于點的voxel或者point clouds耀鸦,也不是基于網(wǎng)格的mesh寝衫。
- 文章出處:arxiv 2019
- 原文鏈接:https://arxiv.org/abs/1905.10711
二 主要介紹
2.1 背景介紹
- 目前三維重建方向已經(jīng)很受關(guān)注顷扩,尤其是single view image reconstruction。
目前深度學習已經(jīng)展現(xiàn)了在這個任務上的優(yōu)越性慰毅。
- 在現(xiàn)有的方法中:
point based method (voxel, point cloud)
- 優(yōu)點:易于使用CNN(歐幾里得表示)
- 缺點:分辨率很受限
mesh based method
- 優(yōu)點:表示更精細
- 缺點:受限于固定的拓撲結(jié)構(gòu)
- 而且在以上兩種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婶芭;
另外其實驗結(jié)果確實還不錯,應該是第一個能把物體的孔洞等細節(jié)都恢復出來的模型:
三 文章方法
3.1 SDF (signed distance function)表示方法
- SDF是一個將3D物體中的點p=(x,y,z)映射到實數(shù)s=SDF(p)的連續(xù)函數(shù)着饥。
-
如下圖所示:
- s 的絕對值表示這個點到物體表面的距離
- s=0: 點在物體表面
- s>0:點在物體外部
- s<0:點在物體內(nèi)部
這樣就可以把3D模型表示出來雕擂。
3.2 DISN(deep implicit surface network)網(wǎng)絡(luò)結(jié)構(gòu)
DISN用圖像作為輸入,然后可以預測任意一個給定點p(x,y,z)的SDF值贱勃。這樣表示DISN的預測模型的分辨率是完全不受限制的井赌,因為我們可以給任意多的點。
結(jié)構(gòu)圖如下:
DISN主要分成兩個部分:
- camer pose estimation :評估將3D物體投影到這張2D圖像的相機參數(shù)贵扰;
- SDF prediction:預測給定點的SDF值仇穗。
參照網(wǎng)絡(luò)結(jié)構(gòu)圖,主要包含以下幾個主要步驟:
- 輸入:input image戚绕,point p(x,y,z)
- 對input image進行相機參數(shù)的評估纹坐;
- 用CNN encoder得到輸入圖像的global feature即各層的feature map;
- 用預測到的相機參數(shù)將點p映射到2D image plane舞丛,然后進行這個點的局部特征提取
- 最后將全局特征耘子、局部特征依次與點特征結(jié)合再進行特征提取,得到兩路SDF值球切,最后做個融合谷誓。
接下來介紹一些主要步驟中比較重要的部分:
1 相機參數(shù)評估
- 相機參數(shù)評估是一個獨立的部分,也是用深度卷積神經(jīng)網(wǎng)絡(luò)來預測圖像的相機參數(shù)吨凑。
- 其意思可以理解將一個3D物體投影到這張?zhí)囟ǖ妮斎雸D像上所需要的相機參數(shù)是什么樣子的捍歪。
- 估計出來的相機參數(shù)在后面對每個點求局部特征的時候會被用到。
- 其結(jié)構(gòu)圖:
用的是ShapeNet數(shù)據(jù)集進行這個網(wǎng)絡(luò)的訓練鸵钝。PC
表示點云糙臼,GT Cam
Pred Cam
分別表示ground truth的相機參數(shù),預測出來的相機參數(shù)恩商。大概過程就是對輸入進行一定的旋轉(zhuǎn)等操作得到一個預測的相機參數(shù)变逃,然后用預測的相機參數(shù)下的點分布與gt下的點位置分布去做一個比較,得到一個loss
(但這個具體的過程涉及坐標系轉(zhuǎn)換怠堪、旋轉(zhuǎn)等我還沒有弄懂揽乱。)
2 局部特征提取
這個想法其實也挺簡單的末患,先看一下圖吧:
- 首先用已知的相機參數(shù)(訓練)或者預測得到的相機參數(shù)(測試)將點p投影回二維的圖像平面;
- 之前在求圖像的全局特征的時候就已經(jīng)獲取到了各層的feature map锤窑;
- 或者這個點對應各個feature map中的特征(具體操作的時候為了包含保證各個大小一致璧针,對小的feature map用雙線性差值作了尺寸恢復)
- 把每個feature map提取到的局部特征(圖中紅色的小方塊)直接做一個連接就構(gòu)成了我們想要的local feature。
-
文章實驗證明這個local feature能幫助解決細節(jié)(孔渊啰、細小的地方)恢復的問題探橱。(a和b分別是沒有局部特征和有局部特征的效果)
3 SDF預測及損失函數(shù)
- 原本的ShapeNet數(shù)據(jù)集提供的是物體的3D mesh結(jié)構(gòu)
- 為每個物體的3D mesh生成256^3的SDF作為ground truth: SDF(I)
- 這樣在與預測得到的SDF的時候就不需要用近似的CD、EMD距離來求loss绘证,直接用精確對應的點點關(guān)系進行計算即可隧膏。
- 然后在loss設(shè)計的過程中考慮到模型會更加關(guān)注接近表面的點,所以最終的loss函數(shù):
- m表示權(quán)重系數(shù)嚷那,如果在一定范圍內(nèi)則權(quán)重為m1, 否則為m2
- 為了讓表面的點更有權(quán)重胞枕,m1 > m2 ;
- f(I,p)表示DISN網(wǎng)絡(luò)對輸入圖像I,對給定點p預測得到的SDF值魏宽;
- SDF(I)(p)表示點p的SDF的ground truth值腐泻;
- 距離用的是L1距離;
四 還要再學習的幾個地方
- 相機參數(shù)估計網(wǎng)絡(luò)
- 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 ?elds 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.