劉暢
摘要:在通過PSGN網(wǎng)絡(luò)得到單張圖像生成的三維點云后,由于點云精度較為稀疏,因此在表面重建后含有孔洞。提出使用隱式擬合方式進行表面重建后,針對模型有孔洞的情況,找出孔洞進行網(wǎng)格三角化、網(wǎng)格細分、網(wǎng)格平滑,最終得出完整封閉的幾何體模型。
關(guān)鍵詞:點云;泊松方程;孔洞修補;深度學(xué)習(xí);三角剖分
中圖分類號:TP393 文獻標(biāo)識碼:A
文章編號:1009-3044(2020)06-0185-02
1概述
隨著深度學(xué)習(xí)研究越來越受到學(xué)者歡迎,無論是人臉識別還是無人駕駛的新聞都更多出現(xiàn)在大眾的視野,所以研究者們也將目光投入了三維重建技術(shù)與深度學(xué)習(xí)的結(jié)合。早年三維重建多是以序列圖像或是雙目、單目采集到的視覺圖像作為數(shù)據(jù)進行研究,但如今使用單張圖像也可以進行三維重建。很多人或許提出這樣的疑問,一張圖像所得到的數(shù)據(jù)如此少,怎樣才能進行三維重建?這個問題在深度學(xué)習(xí)快速發(fā)展以后得到了很好的回答。
常見的三維重建表現(xiàn)模式分為四種:深度圖、體素、點云、網(wǎng)格。針對單張圖像三維重建并且結(jié)合深度學(xué)習(xí)進行研究的進程中,基于體素重建的典型網(wǎng)絡(luò)結(jié)構(gòu)為3D-R2N2,該網(wǎng)絡(luò)結(jié)合GRU和LSTM的思想構(gòu)建了單視圖與多視圖相結(jié)合的體系,缺點在于會隨著模型精度增高計算量會得到指數(shù)級的增長;基于點云重建的典型網(wǎng)絡(luò)為PSGN,該網(wǎng)絡(luò)結(jié)合卷積與反卷積層進行特征提取,聯(lián)合兩個分支得到最后的點云數(shù)目,一個分支預(yù)測全局點云,一個分支預(yù)測局部點云;基于網(wǎng)格重建的典型網(wǎng)絡(luò)Pixel2Mesh,該網(wǎng)絡(luò)一部分提取圖像特征,一部分利用變形思想,以三維橢圓網(wǎng)格作為三維重構(gòu)目標(biāo)的初始化結(jié)構(gòu),將圖像的淺層到深層的特征,反映到三維橢圓網(wǎng)格形狀的改變上。這些網(wǎng)絡(luò)的出現(xiàn)使得單張圖片重建在各種表現(xiàn)形式上都顯示出非常不錯的結(jié)果,后續(xù)也有很多學(xué)者在這幾種網(wǎng)絡(luò)上進行改進,并且也進一步得到良好效果。
2總體流程
本文總體流程為首先拍攝現(xiàn)實巖石圖像作為PSGN數(shù)據(jù),得出數(shù)量為1024的點云三維模型,第二步經(jīng)過泊松表面重建得到初步的表面模型圖,第三步針對模型具有孔洞的地方進行修補。該算法在windows系統(tǒng)上完成,運行平臺為VS2013,所使用到的開源庫有PCLl.8、BOOSTl.61.0、CGAIA.9、Open-Mesh5.1。
2.1單張圖片三維點云模型重建
2016年Fan提出的PSGN網(wǎng)絡(luò)含有兩個分支,其一卷積層和反卷積層形成最終點云的整體結(jié)構(gòu),其二全連接層加強局部點云的生成。本次實驗使用的版本為hourglass version,類似于漏斗類型,改版本中加入遞歸循環(huán)能夠更好地進行編碼解碼,綜合全局以及局部的信息,特別是在需要在局部進行表現(xiàn)的區(qū)域,該網(wǎng)絡(luò)可以得到效果不錯的表現(xiàn)。
2.2表面重建
生成點云的三維模型以后,本文選擇使用網(wǎng)格形式進行表現(xiàn)。選擇使用三角網(wǎng)格形式原因是易于生成,并且在進行進一步操作時,三角網(wǎng)格相比于多邊形網(wǎng)格具有更多成熟的算法可以供使用。
本文選擇泊松重建,泊松重建的步驟:
①求解泊松方程取得點云模型表面的信息。
②利用獲取到的隱形方程進行等值面的提取。設(shè)置變量值為j,當(dāng)j>0時則設(shè)定在模型內(nèi)部;當(dāng)j<0,則設(shè)定在模型外部,只提取j=0的等值面。
③根據(jù)等值面提取得到具有真實幾何實體表面信息并得到模型。
2.3孔洞修補
孔洞修補[6]首先需要找到屬于孔洞的邊界,再針對孔洞進行三角剖分。如果該條邊屬于孔洞的邊,那么該條邊一定只有一個三角片與之相連,我們可以利用這一特性進行尋找孔洞的邊界。
在尋找開始之前,應(yīng)設(shè)置結(jié)構(gòu)存儲頂點v、邊h以及面f,根據(jù)孔洞特性進行尋找模型中缺失的位置具體分布在哪里,找出具體位置進行存儲并進行填充。填充孔后,根據(jù)CGAL庫的使用說明,可以使用節(jié)網(wǎng)格劃分中描述的網(wǎng)格劃分函數(shù)cgal::polygon_mesh_processing::refineO和cgal::polygon_mesh_pro-cessing::fair()對生成的面片進行細化和光順。
3實驗結(jié)果
3.1點云模型的生成
輸入單張真實巖石圖片(如圖3所示),巖石種類選擇沒有限制,可以是砂巖、石英巖,也可以是玄武巖。巖石不同于ShapeNet數(shù)據(jù)集中常見的飛機、椅子等模型,得到點云模型(如圖4所示)的結(jié)果同樣也顯示出該網(wǎng)絡(luò)也較好的可擴展性。由圖3和圖4可見,圖3左起第一張原始圖對應(yīng)圖4左起第一張點云模型圖,其他圖片同理。
3.2泊松表面重建
在點云文件生成后,下一步進行表面重建。在表面重建中使用濾波進行圖像處理,使用低通濾波,即阻高頻通低頻使得圖像進行平滑。隨后進行法向量的計算,設(shè)置搜索樹搜索半徑為5,將點云數(shù)據(jù)的坐標(biāo)和法向信息拼接,隨后開始泊松重建,并保存為ply格式。如圖5所示,依次為原始圖像,經(jīng)過PSGN網(wǎng)絡(luò)形成的點云模型,再經(jīng)過泊松重建后的表面非封閉幾何模型。由于PSGN網(wǎng)絡(luò)輸出點云個數(shù)僅僅只為1024個,因此在表面重建后會形成非封閉的表面模型,所以為形成封閉幾何體,就要進行缺失的孔洞修補。
3.3孔洞修補
將獲取到的模型進行觀察,發(fā)現(xiàn)模型兩側(cè)具有較大的孔洞,但巖石表面應(yīng)是封閉幾何體,因此必須進行空洞修補,才能得到較符合實際情況的模型。如圖6所示,左起為含有孔洞的巖石表面模型,右邊為經(jīng)過修補后構(gòu)成的網(wǎng)格模型,可以看到結(jié)果是完整的。
4結(jié)論
由實驗結(jié)果可以表明,在針對具有孑L洞的表面模型中,利用網(wǎng)格的半邊數(shù)據(jù)結(jié)構(gòu),結(jié)合孔洞結(jié)構(gòu)特性進行修補,得到了不錯的效果。在以后的研究中,還可以繼續(xù)增加由深度學(xué)習(xí)網(wǎng)絡(luò)得到的點云模型精度來進行表面重建,也可以得到較為完整的表面模型,在這一點上也是值得研究的領(lǐng)域。