熊思博 王琦 劉光潔
關(guān)鍵詞:三維重建;深度學(xué)習(xí)方法;點云;體素;曲面網(wǎng)格;隱式曲面
中圖分類號:TP37 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)36-0114-04
三維重建技術(shù)是指對場景或物體建立起能在計算機(jī)環(huán)境下進(jìn)行處理與分析的數(shù)學(xué)模型的過程。目前,建立三維物體模型的方法主要分為三種:一是通過多角度的相機(jī)拍攝,通過計算機(jī)視覺技術(shù)建立三維數(shù)學(xué)模型,也稱為基于圖像的三維重建;二是運用傳統(tǒng)的幾何建模技術(shù)構(gòu)建三維模型,例如Nurbs、KitBashing、布爾建模等技術(shù)方法;三是基于點云的三維重建方法,通過對物體進(jìn)行掃描,生成該物體點云視角下的三維模型。
圖像的三維重建方法分為兩種:一是基于單幅圖像的三維重建方法,依靠單張圖像獲取物體的形狀、顏色、共面性等信息。該方法獲取的信息有限,另一方面,單幅圖像中的遮擋現(xiàn)象使得重建過程難度加大;二是基于多幅圖像的三維重建,該方法主要是利用三角測量計算多個視角下物體的三維數(shù)據(jù),通過對關(guān)鍵特征點的提取與匹配,對物體表面局部紋理進(jìn)行填充與優(yōu)化,恢復(fù)三維模型?;趫D像的三維重建方法能夠快速得到物體的三維模型,且虛擬化后的模型逼真,但是也存在著虛構(gòu)場景無法重建、基于單幅圖像的三維重建方法在大規(guī)模場景中偽影嚴(yán)重,重建效果差等問題。
基于傳統(tǒng)幾何技術(shù)實現(xiàn)三維重建的方法發(fā)展最為成熟,現(xiàn)在已經(jīng)廣泛地應(yīng)用于生產(chǎn)生活當(dāng)中,利用該方法可以得到高精度的三維模型。但重建過程中存在對物體需要進(jìn)行逐一測量、操作煩瑣、建模周期長等問題。
基于點云的三維重建是通過移動測繪系統(tǒng)(Mo?bile Mapping System),包括相機(jī)和移動激光掃描系統(tǒng),采集得到點云數(shù)據(jù),通過點云數(shù)據(jù)恢復(fù)圖像,經(jīng)過計算機(jī)處理得到三維模型,模型的質(zhì)量取決于點云的精細(xì)度和準(zhǔn)確度,所以該方法的重點與難點在于如何獲取高水平的點云數(shù)據(jù)、點云數(shù)據(jù)的后期降噪處理、多個點云數(shù)據(jù)的拼接。
近些年得益于深度學(xué)習(xí)方法的發(fā)展與應(yīng)用,基于深度學(xué)習(xí)的三維重建技術(shù)得到了充分發(fā)展并取得了一定成就。2014年,D.Eigen[1]首次使用CNN神經(jīng)網(wǎng)絡(luò)進(jìn)行三維重建研究工作,使用三維數(shù)據(jù)的深度特征表示,依靠深度學(xué)習(xí)方法實現(xiàn)三維模型的構(gòu)建,開啟了基于深度學(xué)習(xí)的三維重建方法,也為研究者們指出了未來新的研究方向。
1 基于點云的表面表示方法進(jìn)行三維重建
點云從字面意思可以理解為“大量的點”,它是三維空間坐標(biāo)系下點分布的樣本集合,通過掃描儀器得到的物體表面的點數(shù)據(jù)集合被稱為點云數(shù)據(jù)集,該數(shù)據(jù)集中包含有大量信息,如顏色數(shù)據(jù)、距離、點在三維空間坐標(biāo)系中的位置、光反射強(qiáng)度等,點云數(shù)據(jù)集與點云模型如圖1所示。獲取原始點云數(shù)據(jù)的方法主要有LiDAR激光雷達(dá)、RGB-D相機(jī)、多傳感器融合等,其中多傳感器融合得到的原始點云數(shù)據(jù)最為全面,可信度較高。點云數(shù)據(jù)集從獲取到的點數(shù)量上的多少可劃分為稀疏點云與密集點云,兩者在基于深度學(xué)習(xí)的表面重建過程與方法上有差異。
1.1 稀疏點云重建
稀疏點云重建方法是通過輸入場景或物體的多視角圖像,通過sift或者surf求得多對特征點,并對特征點進(jìn)行檢測與匹配,通過人為地標(biāo)定或者從圖像信息中獲取相機(jī)的初始參數(shù),然后運用SFM(Structurefrom motion)算法,輸出相機(jī)位姿與稀疏點云,根據(jù)輸出的相機(jī)位姿與相機(jī)初始參數(shù)運用LM算法進(jìn)行捆綁優(yōu)化,得到更為精確的三維點坐標(biāo),結(jié)合稀疏點云數(shù)據(jù)恢復(fù)物體或場景的三維結(jié)構(gòu)。使用SFM(Structurefrom motion)算法輸出相機(jī)位姿與稀疏點云容易受到圖像的光照、距離等因素影響,David Lowe[2]在SFM算法的基礎(chǔ)上加以改進(jìn)提出了SIFT算法,在空間尺度中尋找尺度、旋轉(zhuǎn)不變數(shù),解決了以上因素的影響,使得稀疏點云重建的精度得到了大幅度提高。
Fan[3]在基于PointNet架構(gòu)的基礎(chǔ)上使用點云的表面表示方法進(jìn)行三維重建,為后續(xù)單幅圖像的點云三維重建研究工作指出了方向,體現(xiàn)了深度學(xué)習(xí)方法在三維重建工作中的強(qiáng)大性能。
1.2 稠密點云重建
稠密點云重建是在已經(jīng)過SFM(Structure frommotion)算法處理得到稀疏點云的基礎(chǔ)上選取全局視角圖像序列生成深度圖,根據(jù)深度圖每個像素的深度投影到三維空間得到三維稠密點云。在稠密點云重建中對深度圖的計算與生成是工作的重點也是難點。
Bleyer[4]將立體匹配算法PatchMatch算法應(yīng)用到深度圖的計算當(dāng)中,該方法能得到較好的像素值,但是對于表面紋理較少的物體或場景,由于算法計算過程中對信息的部分丟失,使得效果不佳。Huang[5]提出的DeepMVS 方法通過構(gòu)建包括PatchMatch匹配網(wǎng)絡(luò)、卷內(nèi)特征聚合網(wǎng)絡(luò)、卷間特征聚合網(wǎng)絡(luò)三部分構(gòu)成的網(wǎng)絡(luò)模型輸出視差圖,后期通過視差圖得到深度圖的辦法很好地解決了處理紋理缺失表面場景的問題,但是處理速度較慢。
考慮到傳統(tǒng)點云重建三維表面過程中存在的場景丟失、重建效果受場景環(huán)境影響較大等問題,基于深度學(xué)習(xí)的稠密點云重建算法應(yīng)運而生。Yao[6]在2019年提出了R-MVSNet算法。該方法主要是將深度圖變換到深度不同的深度平面上,結(jié)合像素在不同深度平面上的概率分布得到初始深度圖。R-MVSNet 算法運行速度快,適用性廣,可用于任意原始圖像輸入。
利用超網(wǎng)絡(luò)(Hyper Net Works)生成三維點云的方法獨辟蹊徑,該方法與現(xiàn)有的基于深度學(xué)習(xí)的三維重建方法相反,不像其他的方法返回點云的標(biāo)準(zhǔn)表示,而是以生成的方式找到基于網(wǎng)絡(luò)的三維對象表示,該方法可以同時找到對象及其三維表面表示。其主要思想是建立一個超網(wǎng)絡(luò),在點上訓(xùn)練基于流的模型,將點的球分布反射成三維模型。
2 基于體素的表面表示方法進(jìn)行三維重建
基于體素的三維重建方法是通過在三維空間中描述其實體區(qū)域來表示其表面及內(nèi)部形狀,如圖2所示?;隗w素的三維重建在魯棒性、重建效果上與傳統(tǒng)三維重建方法相比有著自己獨特的優(yōu)勢,但是在存儲上耗費較高并且圖像的二維卷積擴(kuò)展到三維圖像計算量大。
Wu[7]提出了一個基于體素表示方法和深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),用損失函數(shù)進(jìn)行回歸,該方法在基于深度學(xué)習(xí)的三維重建方面取得了突破性進(jìn)展。在此基礎(chǔ)之上Tatarchenko[8]提出了一種分割三維空間,將其遞歸細(xì)分為八個分叉空間的方法,在體素網(wǎng)格上預(yù)測更高分辨率的形狀。
Stutz[9]首次提出了一種無監(jiān)督學(xué)習(xí)的三維重建方法,該方法在不降低精確度的基礎(chǔ)上對物體的體素模型進(jìn)行補(bǔ)全,其主要依靠深度神經(jīng)網(wǎng)絡(luò)(DNN)的數(shù)據(jù)訓(xùn)練和線性優(yōu)化。
Zhang[10] 設(shè)計了一種使用GAN 網(wǎng)絡(luò)(Generative Adversarial Networks, GAN)三維重建方法,通過一個發(fā)生器G(Generator)和一個鑒別器D(Discriminator)對輸入的圖像進(jìn)行判別與訓(xùn)練,隨機(jī)生成三維模型,經(jīng)過多次迭代最終得到精確度最高的三維模型。該方法生成的三位體素模型具有分辨率高、結(jié)構(gòu)詳細(xì)等優(yōu)勢。
雖然基于體素的表面表示方法進(jìn)行三維重建有其獨特的優(yōu)勢,但受限于顯存消耗、存儲占用等問題,近年來基于深度學(xué)習(xí)的三維重建研究更多關(guān)注于基于點云和曲面網(wǎng)格的神經(jīng)網(wǎng)絡(luò)。PointNet模型很大程度上解決了深度學(xué)習(xí)中基于體素的表面表示方法的問題,在此之后基于深度學(xué)習(xí)的三維重建訓(xùn)練和結(jié)果輸出大都基于點云和曲面網(wǎng)格。
3 基于曲面網(wǎng)格的表面表示方法進(jìn)行三維重建
基于曲面網(wǎng)格的表面表示方法目前使用最多的是投影網(wǎng)格測量法,投影網(wǎng)格測量法的主要流程是將網(wǎng)格投影到被測物體上,記錄下此時的網(wǎng)格成像(稱為測量圖像),計算出每個網(wǎng)格的深度,建立三維坐標(biāo)系來重建三維曲面。
相比于點云和體素的表面表示方法進(jìn)行三維重建,基于曲面網(wǎng)格的表面表示方法進(jìn)行三維重建能夠避免顯存占用問題,同時具有高精準(zhǔn)度,高適應(yīng)性等特點,并且可以呈現(xiàn)更好的細(xì)節(jié)。
在使用深度學(xué)習(xí)方法進(jìn)行基于曲面網(wǎng)格表示的三維重建時,構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型通常以端到端的形式存在,通過對輸入的二維圖像進(jìn)行網(wǎng)格投影得到深度、特征點等信息,構(gòu)建形變網(wǎng)絡(luò),通過形變網(wǎng)格與池化層為橢球網(wǎng)格提供深度、特征點等信息,完成對輸入圖像的三維模型重建工作,該神經(jīng)網(wǎng)絡(luò)中的節(jié)點即為形變網(wǎng)格中的頂點。
近年來使用深度學(xué)習(xí)方法構(gòu)建曲面網(wǎng)格實現(xiàn)三維重建取得了不錯的進(jìn)展,Simonyan[11]設(shè)計了一個VGG網(wǎng)絡(luò)(Very Deep Convolutional Networks),通過小卷積核代替大卷積核,加深神經(jīng)網(wǎng)絡(luò)深度,提高了三維重建模型的精度。Pixel2mesh[12]模型是一種端到端的深度學(xué)習(xí)架構(gòu),采用由粗糙到精細(xì)的變換策略,將輸入的圖像通過特征提取轉(zhuǎn)換為橢球網(wǎng)格,經(jīng)過神經(jīng)網(wǎng)絡(luò)的逐步變形將橢球網(wǎng)格重建為物體的三維模型,整個變形過程穩(wěn)定,信息損失小,提高了重建的精度。
4 基于隱式曲面的表面表示方法進(jìn)行三維重建
在數(shù)學(xué)與計算機(jī)圖像學(xué)中,隱式曲面是一種重要的表示方式,基于隱式曲面的表面表示方法進(jìn)行三維重建主要是通過構(gòu)建隱式曲面函數(shù),通過函數(shù)來表示物體的二維或三維形狀。由于隱式曲面函數(shù)的構(gòu)建靈活,且能夠表示任意復(fù)雜的物體,適用于圖像的檢測、變形、運算等方面。近年來在三維重建領(lǐng)域,由于隱式曲面函數(shù)能夠很好地解決點云散亂模型,許多研究者開始關(guān)注在深度學(xué)習(xí)方法中構(gòu)建隱式曲面函數(shù)來解決三維重建的問題。
現(xiàn)有的隱式曲面重建方法中,較為經(jīng)典的重構(gòu)方法有小波曲面重建算法、RBF曲面重建算法、Poisson 曲面重建算法、MPU曲面重建算法等。在此基礎(chǔ)之上,Jiang[13]引入了一種將隱式解碼器用作在模型上計算代碼解碼后提高匹配度的優(yōu)化組件,該方法比稀疏點云實現(xiàn)重建具有更好的效果,適用性更廣,可擴(kuò)展性強(qiáng)。Chen[14]的團(tuán)隊提出了一種IM-NET的方法,該方法通過VAE+GAN的深度學(xué)習(xí)訓(xùn)練網(wǎng)絡(luò),在輸入單視圖實現(xiàn)三維建模過程中使用一種新的隱式曲面函數(shù)解碼器替換傳統(tǒng)的重建方式,在重建效果和時間上取得了較好的效果。
IF-Nets網(wǎng)絡(luò)模型是近兩年非?;馃岬难芯繜狳c,其原理是將點的學(xué)習(xí)轉(zhuǎn)化為判斷分類問題,用0或1標(biāo)注曲面內(nèi)或者曲面外,通過后期對標(biāo)注的點進(jìn)行分類處理實現(xiàn)模型曲面化和模型復(fù)原。IF-Nets的優(yōu)勢在于保留了圖像輸入中的細(xì)節(jié),補(bǔ)全了形狀的遮擋部分的細(xì)節(jié),缺陷在于泛化性有待提高。近年新出現(xiàn)的基于遞歸神經(jīng)網(wǎng)絡(luò)模型的三維重建方法。該方法通過對圖像提取特征信息,經(jīng)過多層級結(jié)構(gòu)編碼,能夠使得該神經(jīng)網(wǎng)絡(luò)模型本身學(xué)習(xí)到部件本身的拓?fù)浜徒Y(jié)構(gòu)特征。
SAGNET模型是一種基于弱監(jiān)督的結(jié)構(gòu)感知生成模型,該方法用成對關(guān)系反映形狀結(jié)構(gòu)中的不同部分,能獲得較好的視覺質(zhì)量,在拓?fù)浞矫孑^為靈活。同樣是采用解碼器解開特征并重建三維模型,MDIF (多分辨率深度隱式函數(shù))函數(shù)是一種可從深度圖像中實現(xiàn)詳細(xì)的解碼器形狀補(bǔ)全的函數(shù),該模型觀察區(qū)域的細(xì)節(jié)被準(zhǔn)確地保留,而未觀察區(qū)域則用可信的形狀完成。
在最新的研究中,有研究者將遷移學(xué)習(xí)的方法引入三維重建當(dāng)中,將圖像中的三維點信息劃分到幾個區(qū)域,通過無監(jiān)督的遷移學(xué)習(xí)方法訓(xùn)練網(wǎng)絡(luò),然后基于區(qū)域間的關(guān)系完成三維重建工作,使得三維重建問題轉(zhuǎn)換成為二維問題。
5 總結(jié)與展望
5.1 總結(jié)
三維重建在制造業(yè)與逆向工程、影視、娛樂、醫(yī)學(xué)等許多方面有著廣泛的應(yīng)用,不管是已有技術(shù)或方法在三維重建中應(yīng)用或者是隨著三維重建取得巨大進(jìn)展而產(chǎn)生的許多新方法或算法,都體現(xiàn)了三維重建在未來的發(fā)展前景與市場潛力。
早期的三維掃描儀器價格昂貴、精度較低、相關(guān)的配套軟件與方法不全面,使得處于起步階段的三維重建工作與研究停留在處理陰影、重疊等問題。2010 年,Schmidt設(shè)計出Meshmixer后,三維重建的軟件配套問題得到了很好的解決,促進(jìn)了相關(guān)軟件的開發(fā)與技術(shù)突破。
后期三維重建的研究重點更多放在了應(yīng)用領(lǐng)域,如臨床醫(yī)學(xué)中通過對患者的身體構(gòu)建三維模型,標(biāo)識出患者的神經(jīng)、血管、腫瘤等各個結(jié)構(gòu);文物保護(hù)工作中,通過構(gòu)建虛擬化的三維仿真場景,能夠讓游客最大程度上感受到文物的原始樣貌、古遺跡的還原場景等;另外在制造業(yè)中,通過三維重建方法構(gòu)建所需零部件的模型,由計算機(jī)控制生產(chǎn)設(shè)備完成加工,實現(xiàn)了生產(chǎn)流程的全自動化,極大地降低了開發(fā)與生產(chǎn)成本。
隨著人工智能技術(shù)的發(fā)展,在自動駕駛領(lǐng)域,對駕駛環(huán)境、道路、障礙物等的識別與三維重建是目前以及今后一個重要的研究課題與方向。三維掃描設(shè)備的輕量化、民用化是今后的一大發(fā)展趨勢。
本文基于點云、體素、曲面網(wǎng)格、隱式曲面的這四類表面表示方法展開了綜述,重點介紹了這四類方法的原理、發(fā)展過程與基于深度學(xué)習(xí)方法下的研究進(jìn)展與成果。然后根據(jù)這四個分類詳細(xì)討論了每個表面表示方法的優(yōu)缺點及重大改進(jìn),并對這些改進(jìn)進(jìn)行比較。使用深度學(xué)習(xí)方法進(jìn)行三維重建是近年來計算機(jī)視覺下一個新的研究方向與重點,但是存在著方法凌亂、數(shù)據(jù)集體量小等問題。
5.2 展望
三維重建研究工作整體不夠成熟,對于重建過程與結(jié)果的評價算法較少,如何全面地評價三維重建算法、模型、方法的存儲占用、時間損耗、重建精度等是未來的一個發(fā)展方向。
在生活和生產(chǎn)應(yīng)用當(dāng)中,物體與場景所處的外部環(huán)境實時變化,現(xiàn)有的三維重建方法無法適用于所有的外部環(huán)境當(dāng)中,現(xiàn)有的研究工作也都是設(shè)置了一個特殊環(huán)境對物體和場景進(jìn)行三維重建。如何應(yīng)對與處置實時變化的外部環(huán)境是今后三維重建研究當(dāng)中的一個難點。
基于深度學(xué)習(xí)方法的三維重建中,由于需要大量數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,導(dǎo)致計算量較大,對計算機(jī)設(shè)備的要求較高,很難完成對圖像數(shù)據(jù)的實時三維重建,如何在不降低重建效果的基礎(chǔ)上縮減三維重建工作中的計算量是今后研究的重點。