鄭亦然, 程 健
(中國(guó)科學(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026)
近年來,國(guó)家正逐漸重視和加大對(duì)實(shí)驗(yàn)室的建設(shè),我國(guó)各個(gè)領(lǐng)域的實(shí)驗(yàn)室資源已經(jīng)非常豐富和完善,建立了科研型、教學(xué)型、公共服務(wù)型、專業(yè)測(cè)試型、化驗(yàn)檢驗(yàn)型等不同種類的大型實(shí)驗(yàn)室。實(shí)驗(yàn)室系統(tǒng)一般由多臺(tái)電子計(jì)算機(jī)以及各種復(fù)雜的儀器設(shè)備組成。大型實(shí)驗(yàn)室系統(tǒng)占地面積巨大,運(yùn)行環(huán)境復(fù)雜,運(yùn)行條件嚴(yán)格,現(xiàn)場(chǎng)可能存在危險(xiǎn)或存在距離遠(yuǎn)等其他原因?qū)е碌膱?chǎng)地不可達(dá)情況,學(xué)生通過實(shí)驗(yàn)室系統(tǒng)可能很難有直觀的認(rèn)識(shí)。因此利用三維重建技術(shù)來還原實(shí)驗(yàn)室現(xiàn)場(chǎng)設(shè)備的工作狀態(tài)和運(yùn)行情況,在遠(yuǎn)程端就能快速熟悉了解設(shè)備的運(yùn)作原理和工作過程,提供沉浸式的用戶體驗(yàn),能夠在一定程度上降低實(shí)驗(yàn)室資源消耗,提高實(shí)驗(yàn)室的開放性和智能化,具有重要的現(xiàn)實(shí)意義。
目前,最為常見的三維重建方法主要有如下3種:基于深度傳感器的重建、基于深度學(xué)習(xí)的重建和基于多視圖的重建[1]。其中,基于深度傳感器的重建方法是通過深度傳感器和RGB圖像完成重建[2],然而該方法對(duì)硬件設(shè)備要求高,受距離限制大,并且需要事先對(duì)重建場(chǎng)景進(jìn)行掃描,靈活性低,并不適合完成大規(guī)模的場(chǎng)景重建任務(wù)。隨著人工智能和深度學(xué)習(xí)等相關(guān)技術(shù)的迅速發(fā)展和不斷更新,一些基于深度學(xué)習(xí)的方法迅速崛起,如Yang等[3]提出的換卷積編碼-解碼網(wǎng)絡(luò),Tatarchenko等[4]提出的前饋網(wǎng)絡(luò),Reigler等[5]提出的OctNetFusion網(wǎng)絡(luò)。但是為了獲取更好的重建模型,基于深度學(xué)習(xí)方法需要輸入大量的訓(xùn)練數(shù)據(jù),且網(wǎng)絡(luò)訓(xùn)練對(duì)硬件的設(shè)備要求較高,會(huì)耗費(fèi)大量的時(shí)間,并且前期工作仍然依賴一些深度傳感器。而基于多視圖三維重建方法是將多個(gè)視角拍攝的待重建物體的圖片作為輸入,通過特征提取和匹配后完成重建,對(duì)硬件設(shè)備要求較低,輸入僅僅需要RGB圖像,靈活性好;不需要長(zhǎng)時(shí)間的訓(xùn)練,實(shí)時(shí)性好;適用于各個(gè)場(chǎng)景,魯棒性強(qiáng)。本文利用基于多視圖三維重建方法的優(yōu)點(diǎn),研究了基于多視圖重建方法的整個(gè)流程,改進(jìn)了基于SIFT(Scale Invariant Feature Transform)的匹配效果,并最終在實(shí)驗(yàn)室搭建好的原子氧束能譜測(cè)量?jī)x上進(jìn)行了測(cè)試并完成了模型的重建,解決了系統(tǒng)因?yàn)楦邏簭?qiáng)電等危險(xiǎn)而導(dǎo)致學(xué)生無法直觀了解工作原理和設(shè)備狀況的問題。
基于多視圖的三維重建方法就是將多個(gè)視角拍攝的待重建物體的圖片序列作為輸入,最后得到計(jì)算機(jī)所能表示的三維模型。David Marr的計(jì)算機(jī)視覺理論框架指出,計(jì)算機(jī)視覺系統(tǒng)的輸入應(yīng)是一系列的二維圖片,輸出能定性表示空間場(chǎng)景的三維模型。多視圖的三維重建方法又可分為基于特征區(qū)域生長(zhǎng)的重建算法、基于體素的重建算法和基于深度圖的重建方法。
特征匹配算法中常用的特征方法有:Harris特征[6]、SIFT特征、SURF特征[7]、ORB特征[8-9]等。
基于多視圖的三維重建過程中,特征的提取和匹配對(duì)重建結(jié)果至關(guān)重要,直接影響到重建模型的最終效果。SIFT特征是圖像的局部特征,具有尺度不變性和旋轉(zhuǎn)不變性,對(duì)亮度變化、視角變化、仿射變化能保持較好的穩(wěn)定性,對(duì)噪聲抗干擾能力較強(qiáng)。所以選用SIFT方法來進(jìn)行特征的提取和匹配。其主要步驟如下。
(1) 生成灰度圖像。SIFT方法根據(jù)灰度理論中的歸一化思想,生成灰度圖像,去除色彩信息而保留亮度信息。以此來保證其亮度變化不變性,并且降低提取特征和匹配的時(shí)間代價(jià)。
(2) 構(gòu)建尺度空間。一幅圖像在不同尺度下可以得到不同的細(xì)節(jié)特征,為保證SIFT方法的尺度不變性,需要構(gòu)建不同的尺度空間來觀測(cè)圖像,進(jìn)而獲得更穩(wěn)定的特征點(diǎn)。其圖像的尺度空間L(x,y,σ)可由高斯核G(x,y,σ)與二維圖像I(x,y)卷積獲得:
L(x,y,σ)=G(x,y,σ)?I(x,y)
(1)
(2)
式中,σ為標(biāo)準(zhǔn)差。
(3) 特征點(diǎn)定位。通過對(duì)高斯差分尺度空間中的每個(gè)像素點(diǎn)與其在圖像域和尺度域的所有相鄰點(diǎn)進(jìn)行比較,從而檢測(cè)出圖像分布在離散空間中的所有極值點(diǎn),在此基礎(chǔ)上刪除對(duì)比度過低和具有邊緣響應(yīng)的極值點(diǎn)來增強(qiáng)匹配的穩(wěn)定性,提高抗噪能力。
① 亞像素定位,對(duì)DoG(Difference of Gaussian)尺度空間函數(shù)進(jìn)行泰勒展開,并對(duì)X=(x,y,σ)T求導(dǎo),令導(dǎo)數(shù)為0,得到偏移量的精確位置。
(3)
(4)
② 刪除其中低對(duì)比度的點(diǎn),并將式(3)代入可得
(5)
(6)
(7)
(4) 確定特征點(diǎn)方向。由于SIFT特征點(diǎn)具有旋轉(zhuǎn)不變性,需要通過圖像的局部特征確定其方向。其梯度幅值m(x,y)和梯度方向θ(x,y)計(jì)算公式如下:
m(x,y)=
(8)
(9)
(5) 生成特征描述符。需要對(duì)精確定位的特征點(diǎn)進(jìn)行描述,生成該特征點(diǎn)描述子,方便之后進(jìn)行匹配計(jì)算。把特征點(diǎn)作為中心像素,計(jì)算鄰域窗口內(nèi)的所有點(diǎn)的梯度和方向。
(6) 特征向量匹配。通過對(duì)原圖像與參考圖像特征描述子之間的歐氏距離作為特征相似性的度量,并把最鄰近距離UNN與次近鄰距離USNN的比值UNN/USCN作為匹配依據(jù)進(jìn)行特征向量匹配。
RANSAC算法是從一組包含異常數(shù)據(jù)的觀測(cè)數(shù)據(jù)集中估計(jì)其數(shù)學(xué)模型參數(shù)的迭代方法[11],它是一種不確定算法,通過重復(fù)選擇數(shù)據(jù)中的一組隨機(jī)子集來達(dá)成目標(biāo)。選定的子集設(shè)為局內(nèi)點(diǎn),并通過如下步驟進(jìn)行驗(yàn)證。
① 通過預(yù)先假設(shè)的局內(nèi)點(diǎn)建立一個(gè)模型,其模型參數(shù)均由假設(shè)點(diǎn)計(jì)算得出;
② 利用獲得的模型去檢測(cè)其他的數(shù)據(jù);
③ 如果有足夠多的數(shù)據(jù)點(diǎn)被歸類為局內(nèi)點(diǎn),就認(rèn)為建立的模型足夠合理;
④ 用所有假設(shè)的局內(nèi)點(diǎn)重新估計(jì)模型;
⑤ 通過估計(jì)局內(nèi)點(diǎn)與模型誤差評(píng)估模型。
重復(fù)以上步驟并通過增加迭代次數(shù)來提高獲取正確結(jié)果的概率。
基于多視圖的三維重建流程如圖1所示,主要包括以下幾個(gè)步驟。
① 采集數(shù)據(jù)。采用采集的實(shí)驗(yàn)室系統(tǒng)的實(shí)際圖片集作為輸入。
② 特征檢測(cè)和特征匹配。將得到的圖片用SIFT方法提取特征并進(jìn)行匹配,利用RANSAC方法降低誤匹配點(diǎn)。
③ 生成稀疏點(diǎn)云。利用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(Structure From Motion,SFM)迭代求解三維點(diǎn)坐標(biāo),重建3D模型的稀疏點(diǎn)云。
④ 生成稠密點(diǎn)云。利用多視圖聚簇(Clustering Multi-View Stereo,CMVS)基于面片的三維多視角立體視覺算法(the Patch-based MVS,PMVS)[12]生成稠密點(diǎn)云。
⑤ 網(wǎng)格化:利用PCL泊松曲面重建算法(Poisson Surface Reconstruction,PSR)[13]將稠密點(diǎn)云生成包裹場(chǎng)景的封閉的模型,具有良好的集合表面特性和細(xì)節(jié)特性。
⑥ 模型修復(fù)和投影紋理。去除非流形邊,將紋理映射到修復(fù)好的模型上,不需要事先生成紋理坐標(biāo),并且可以有效地避免紋理扭曲的現(xiàn)象。
圖1 基于多視角三維重建流程圖
本次實(shí)驗(yàn)用到的數(shù)據(jù)是以實(shí)驗(yàn)室已搭建完成的原子氧束能譜測(cè)量?jī)x設(shè)備系統(tǒng)實(shí)際采集的數(shù)據(jù)集,數(shù)據(jù)集主要采用高清CMOS攝像頭對(duì)測(cè)控機(jī)柜和電子槍儀器進(jìn)行了拍攝,采集圖片大小為3024像素×4032像素,采用環(huán)繞式取樣。其中機(jī)柜照片共78張,儀器照片共96張,如圖2所示。本實(shí)驗(yàn)在PC端進(jìn)行,GPU型號(hào)為英偉達(dá)Geforce GTX1080,采用編譯器為Visual Studio 2017并配置OpenCV 3.4.5視覺庫(kù)。
圖2 部分實(shí)際測(cè)控機(jī)柜和電子槍照片
利用SIFT提取測(cè)控機(jī)柜數(shù)據(jù)集圖片1和圖片2的特征,效果如圖3所示??梢钥闯鎏卣鼽c(diǎn)對(duì)光照影響的抗干擾能力強(qiáng),更多地集中在細(xì)節(jié)特征明顯的地方,其特征點(diǎn)數(shù)和運(yùn)行時(shí)間如表1所示。
圖3 測(cè)控機(jī)柜SIFT提取特征點(diǎn)
表1 SIFT特征點(diǎn)檢測(cè)
SIFT特征描述子是128維的特征向量,傳統(tǒng)方法利用歐氏距離獲得匹配相似度,將待匹配圖像和基準(zhǔn)圖像中歐氏距離最小的點(diǎn)被認(rèn)為是匹配的特征點(diǎn),但是通過歐氏距離匹配得到的點(diǎn)會(huì)受到視角亮度變化的影響,實(shí)際結(jié)果準(zhǔn)確度非常低。圖4為測(cè)控機(jī)柜數(shù)據(jù)集中第1張和第5張照片匹配情況,存在大量的誤匹配和交叉匹配現(xiàn)象。
圖4 SIFT特征初匹配結(jié)果
在實(shí)際的應(yīng)用中,可利用對(duì)最近鄰和次近鄰的比值UNN/USCN設(shè)置閾值來提高匹配準(zhǔn)確度,比值小于該閾值時(shí)即可認(rèn)為特征點(diǎn)匹配成功。閾值越小,得到的匹配點(diǎn)就越少,對(duì)應(yīng)的成功率也越高,本文設(shè)置閾值為0.8。由立體匹配約束條件可知,兩幅匹配圖像中,每個(gè)點(diǎn)對(duì)應(yīng)的匹配點(diǎn)最多只有一個(gè)。利用交叉過濾法和RANSAC方法對(duì)匹配結(jié)果進(jìn)行優(yōu)化,可以明顯降低誤匹配率,提高匹配的精度。圖5為機(jī)柜數(shù)據(jù)集中機(jī)柜照片1和機(jī)柜照片5優(yōu)化后的匹配情況。表2和表3分別為優(yōu)化前和優(yōu)化后的匹配情況。根據(jù)表2和表3可以看出,在優(yōu)化刪去了大量的錯(cuò)誤的匹配對(duì)的同時(shí)只增加了很少的時(shí)間代價(jià),誤匹配率明顯降低。
圖5 優(yōu)化后匹配結(jié)果示意圖
表2 優(yōu)化前匹配結(jié)果
表3 優(yōu)化后匹配結(jié)果
通過CMVS可以對(duì)照片進(jìn)行聚簇,降低簇?cái)?shù)來優(yōu)化稠密重建匹配所需的時(shí)間和空間代價(jià),通過PMVS對(duì)圖像簇進(jìn)行重構(gòu),在局部光度一致性和全局可見性約束下,經(jīng)過匹配、擴(kuò)散、過濾后生成的點(diǎn)云具有真實(shí)顏色特性,而由該方法構(gòu)建出的點(diǎn)云足夠稠密,滿足實(shí)驗(yàn)室規(guī)模場(chǎng)景重建。
利用點(diǎn)云的重構(gòu)方法一般分為基于組合結(jié)構(gòu)和基于隱函數(shù)兩類方法?;诮M合結(jié)構(gòu)的方法對(duì)于噪聲抗干擾能力較弱,當(dāng)數(shù)據(jù)中噪聲較多時(shí)構(gòu)建的表面往往是鋸齒狀的,需要額外進(jìn)行平滑處理;而基于泊松算子的隱式擬合可以通過構(gòu)造等值面非常好的平滑近似含有噪聲的數(shù)據(jù)。故本文采用泊松表面重構(gòu)算法來生成多邊形網(wǎng)格表面。
泊松曲面重構(gòu)輸入為PMVS生成的包含法線的點(diǎn)云數(shù)據(jù)集,包括點(diǎn)P和對(duì)應(yīng)的內(nèi)法線N,鄰近未知模型的表面M,首先構(gòu)造指示函數(shù):
(10)
認(rèn)為模型內(nèi)部的值為1,外部的值為0。利用輸入的有向點(diǎn)云估算向量場(chǎng),使其梯度方向最接近向量場(chǎng)的方向,即minχ‖▽?duì)?V‖,并通過散度算子將式(10)轉(zhuǎn)化為泊松方程,提取0等值面來擬合逼近表面,最終得到具有幾何實(shí)體信息的模型。
接著,需要對(duì)生成的實(shí)體模型進(jìn)行紋理uv映射。利用相機(jī)位置將模型坐標(biāo)系轉(zhuǎn)換到相機(jī)對(duì)應(yīng)的圖像空間,即該點(diǎn)對(duì)應(yīng)的紋理坐標(biāo),通過該紋理坐標(biāo)查詢利用MeshLab生成輸入圖像的紋理值,最終將紋理投影到模型表面,本文選擇分辨率為2048的紋理圖。圖6和圖7分別是真實(shí)實(shí)驗(yàn)室機(jī)柜和設(shè)備數(shù)據(jù)集重建的結(jié)果。其中圖6(a)和圖7(a)為生成的機(jī)柜和設(shè)備的稀疏點(diǎn)云;圖6(b)和圖7(b)為利用PMVS生成的稠密點(diǎn)云,可以很好地表達(dá)機(jī)柜和儀器的特征信息;圖6(c)和圖7(c)為最終得到的三維模型??梢钥闯鰷y(cè)控機(jī)柜和電子槍的模型重建效果較好,但是仍存在模型將部分背景也進(jìn)行重建的問題。
圖6 機(jī)柜重建效果圖
圖7 設(shè)備重建效果圖
本文研究了基于多視圖的實(shí)驗(yàn)室系統(tǒng)三維重建方法,并通過實(shí)際的實(shí)驗(yàn)室設(shè)備驗(yàn)證了該方法的有效性。利用RANSAC算法和交叉過濾法改進(jìn)SIFT進(jìn)行特征的提取和匹配,并在此基礎(chǔ)上計(jì)算點(diǎn)云、獲取等值面、修復(fù)模型、進(jìn)行重建。實(shí)驗(yàn)結(jié)果表明,利用該方法可以有效地改進(jìn)SIFT的誤匹配率,具有較高的準(zhǔn)確率和較好的重建效果,可以很好地還原危險(xiǎn)、復(fù)雜的現(xiàn)場(chǎng)實(shí)際情況,如原子氧束能譜測(cè)控系統(tǒng)等實(shí)驗(yàn)室系統(tǒng)的實(shí)際情況。