董鵬輝,柯良軍
(西安交通大學(xué) 電信學(xué)院,陜西 西安 710049)
三維重建技術(shù)就是獲取環(huán)境中物體的三維信息,從而確定不同物體所在位置并建立相應(yīng)的空間模型[1]。現(xiàn)階段,計算機(jī)技術(shù)飛速發(fā)展,無論是硬件還是軟件都得到了很大提升。因此,對三維重建場景繪制的規(guī)模越來越大,精度越來越高,難度則相對減小。具有高效率的三維重建技術(shù)也已經(jīng)被應(yīng)用在眾多領(lǐng)域當(dāng)中,其中包括城鎮(zhèn)建模、無人作戰(zhàn)、文物保護(hù)和地圖重建等,相關(guān)的重建算法及流程也愈加完善[2]。
三維重建的發(fā)展經(jīng)歷了漫長的過程,早期的三維重建主要通過人工繪制來完成,該方法耗時耗力。隨著社會的發(fā)展,激光掃描儀得到了廣泛地應(yīng)用,該方法獲取物體的三維信息精度高,與真實環(huán)境相差無幾。但是它構(gòu)建的模型不具有紋理,無法進(jìn)一步完善物體的結(jié)構(gòu)。同時,激光掃描設(shè)備往往價格昂貴,維護(hù)起來較為困難。現(xiàn)階段伴隨著計算機(jī)技術(shù)的發(fā)展逐步有一些建模工具可以通過人機(jī)交互的方法完成建模。通過該方法建立的三維模型簡單方便,大大提高了效率。另外,由于圖像三維重建技術(shù)通過獲取的圖片來構(gòu)建模型,因此它能夠給出對應(yīng)物體的顏色信息,從而使模型更加生動形象。無論是進(jìn)行科學(xué)研究還是商業(yè)用途,通過計算機(jī)進(jìn)行三維重建都是主要的方法。
基于圖像的三維重建從獲取多視圖圖像開始,逐步通過相應(yīng)的算法恢復(fù)場景中物體的三維結(jié)構(gòu)[3-4]。根據(jù)應(yīng)用場景的不同,使用者可以對三維結(jié)構(gòu)的精度以及信息豐富度進(jìn)行調(diào)整,也可以針對某一部分進(jìn)行優(yōu)化完善。總之,基于圖像的三維重建技術(shù)是當(dāng)今計算機(jī)視覺領(lǐng)域的熱門方向[5-6]。
本文從三維重建的傳感器、重建流程與相關(guān)算法以及典型應(yīng)用3個方面概述當(dāng)前的主要成果,最后指出有待于進(jìn)一步研究的問題。
基于圖像的三維重建系統(tǒng)前端只需要圖像采集設(shè)備。現(xiàn)如今深度攝像頭作為深度視覺產(chǎn)品,廣泛應(yīng)用在AR/VR以及自動駕駛、無人機(jī)和機(jī)器人等人工智能領(lǐng)域。通過它獲取的圖像不僅可以得到場景物體的二維信息,還能夠獲取相應(yīng)的深度,因此只要知道相機(jī)的位置就能知道場景物體在世界中所處的位置,從而一步步恢復(fù)圖像當(dāng)中的場景。常見的深度攝像頭有:
① 基于結(jié)構(gòu)光的深度攝像頭:主要依賴于場景中物體的幾何關(guān)系,通過三角相似性計算得到圖像中物體的深度信息。拍攝時,攝像頭前端的結(jié)構(gòu)光發(fā)射器會發(fā)出可控制的光面、光條或光點照射到被測物體的表面,從而得到被測物體的幾何信息進(jìn)行后續(xù)處理。
② 基于雙目視覺的深度攝像頭:主要依賴于人眼的雙目立體視覺成像原理。通過在攝像頭前端的2個攝像頭同時獲取2個不同角度的圖像從而通過計算來對場景中的物體進(jìn)行深度感知。
③ 基于TOF飛行時間的深度攝像頭:主要是依賴光線反射的時間差或者相位差來計算場景中物體的深度信息。攝像頭前端的傳感器可以發(fā)射出近紅外光,當(dāng)光線遇到被測物體時會反射從而進(jìn)一步接收。通過發(fā)射與接收的時間差可以完成后續(xù)的計算過程。
不同的攝像頭應(yīng)用場景有很大的不同,通過研究對它們進(jìn)行比較分析,結(jié)果如表1所示。

表1 攝像頭性能比較
圖像三維重建的整件流程如圖1所示。在三維重建時,首先需要對收集到的圖像除去當(dāng)中無用的圖片,在此基礎(chǔ)上,對每個圖片進(jìn)行去噪等預(yù)處理,為后續(xù)的處理做準(zhǔn)備。接下來,對圖像進(jìn)行特征點的檢測與匹配,得到不同圖像中相同的特征點。然后通過相機(jī)標(biāo)定得到拍攝圖片所用相機(jī)的內(nèi)參數(shù)(焦距),再進(jìn)一步計算得到基礎(chǔ)矩陣與本質(zhì)矩陣,獲得特征點的三維空間位置。最后對點云進(jìn)行網(wǎng)格化從而可將三維場景可視化地展現(xiàn)給用戶。

圖1 三維重建整體流程
攝像頭獲取的圖像往往不能夠直接使用,需要對眾多圖像進(jìn)行預(yù)處理。通過預(yù)處理過程能夠過濾圖像中無用的信息,把拍攝不清晰、有殘缺的圖像刪除掉,同時選擇出有實用價值、可供后續(xù)處理的圖像。該過程能夠顯著提高后續(xù)計算的效率,增強(qiáng)三維重建的實用性。圖像預(yù)處理的方法很多,常見的有中值濾波、自適應(yīng)加權(quán)濾波、雙邊濾波等各種圖像濾波算法[7]。
獲取有效圖像后,需要進(jìn)一步進(jìn)行特征點的提取與匹配,從而找到場景中相同的物體進(jìn)行后續(xù)的計算。通常說的特征點主要指圖像中鄰域變化較大的點,比如說噪聲點和角點,因此進(jìn)行特征點檢測與匹配的關(guān)鍵就是在有畸變存在的情況下,正確地提取和匹配圖像中的特征點。
特征點提取的方法主要有:
① 基于Harris算子的特征提取:文獻(xiàn)[8]中提到Harris算子包含的信息量大,檢測圖像的范圍廣,當(dāng)有光照存在時,該算子比較穩(wěn)定,抵抗環(huán)境變化的能力也較強(qiáng)。
② 基于SIFT算子的特征提取算法:該算法在當(dāng)今各個研究領(lǐng)域中應(yīng)用最為廣泛。它是一種局部的特征描述算子,通過尋找圖像空間尺度中的極值點來確定特征點,其顯著特點是特征點的尺度、位置和旋轉(zhuǎn)不變量不會輕易發(fā)生改變[9-10]。該方法先建立高斯金字塔模型,找到一個領(lǐng)域內(nèi)的像素點,通過比較像素點是否是極值點(即可判斷特征點),從而將特征點提取出來。
③ 基于SURF算子的特征提取算法:Bay在文獻(xiàn)[10]中提到了加速魯棒算子,該算子與SIFT算子相比運算效率更快,它簡化了SIFT算子,通過運用小波技術(shù)等新技術(shù)使得圖像的處理速度變快。目前,SURF算子也逐步在一些計算機(jī)圖像視覺領(lǐng)域得到了應(yīng)用。
特征點匹配方法主要有:
① 歸一化互相關(guān)(Normalizes Cross Correlation,NCC)特征匹配:可以不受亮度和對比度變化的影響,并且速度快。缺點是:? 圖像縮放情況下無法應(yīng)用;? 視角變化大不適用。
② SIFT特征匹配:主要尋找用來表述特征點的特征向量描述符。通過計算一個鄰域內(nèi)的特征點的梯度對該領(lǐng)域進(jìn)行劃分,進(jìn)一步得到最終的128維特征向量描述符,衡量匹配程度好壞的關(guān)鍵就是計算特征向量描述符之間的歐式距離,歐式距離越短匹配程度越高。
③ SURF特征匹配:與SIFT特征匹配類似,主要也是通過特征點之間的歐式距離來判斷匹配程度的高低。但是,SURF加入了一種新的矩陣跡來優(yōu)化判斷的過程,該矩陣跡通過比較正負(fù)號可以提前排除一些不相關(guān)的點,從而進(jìn)一步加快匹配過程的效率。
基于圖像的三維重建需要對相機(jī)進(jìn)行標(biāo)定。標(biāo)定的主要目的就是求出相機(jī)的內(nèi)部參數(shù),最終得到內(nèi)參數(shù)矩陣K。
相機(jī)標(biāo)定的方法主要有:
① Tsai的2步標(biāo)定方法:該方法與線性標(biāo)定方法相比精度更高,主要原理是利用透視變換原理來計算攝像機(jī)的基本參數(shù)配置。這些參數(shù)可以作為后續(xù)優(yōu)化算法的初始值來使用,該方法考慮了相機(jī)的徑向畸變,通過優(yōu)化算法來計算剩余的參數(shù)。
② 張正友的平面標(biāo)定方法:該方法由張正友提出,在相機(jī)標(biāo)定領(lǐng)域有著廣泛的應(yīng)用,它使得相機(jī)標(biāo)定的可靠性和有效性得到了提升。其主要原理是將計算機(jī)視覺技術(shù)與傳統(tǒng)的攝像機(jī)標(biāo)定技術(shù)結(jié)合起來,使空間中的標(biāo)定模板變?yōu)槠矫鏄?biāo)定模板,從而簡化了標(biāo)定的繁瑣程度。
③ 相機(jī)自標(biāo)定方法:顧名思義,就是對通過傳感器獲取的已有信息進(jìn)行計算,完成相機(jī)的標(biāo)定過程。該方法靈活多變,運用起來也十分方便。現(xiàn)階段根據(jù)應(yīng)用場景的不同可以選擇不同的自標(biāo)定方法,常見的方法有:絕對對偶二次曲面標(biāo)定法與分層自標(biāo)定法等。
計算基礎(chǔ)矩陣與本質(zhì)矩陣是重建過程中必不可少的一部分。基礎(chǔ)矩陣主要是確定不同圖像中同一場景的幾何約束關(guān)系。本質(zhì)矩陣則用來確定三維點的具體位置。
Sultanov A K在文獻(xiàn)[11]中對基礎(chǔ)矩陣做了介紹,其中包括它的計算方法與基本性質(zhì);文獻(xiàn)[12]提出了用于計算基礎(chǔ)矩陣的歸一化點算法,該方法能夠抵抗噪聲的影響,優(yōu)化系數(shù)矩陣,提高計算的精度;文獻(xiàn)[13]介紹了RANSAC算法,隨機(jī)抽樣一致性算法RANSAC(Random Sample Consensus)可以在一組包含“外點”的數(shù)據(jù)集中,采用不斷迭代的方法,尋找最優(yōu)參數(shù)模型,不符合最優(yōu)模型的點,被定義為“外點”。
文獻(xiàn)[14]依據(jù)多視圖間的幾何約束關(guān)系來計算本質(zhì)矩陣。通過該方法得到的本質(zhì)矩陣在歐式幾何空間中給出。得到的基礎(chǔ)矩陣也可以用來進(jìn)一步計算本質(zhì)矩陣。得到本質(zhì)矩陣后可以對它進(jìn)行分解得到表述不同特征的旋轉(zhuǎn)矩陣與平移向量。通過這一系列數(shù)據(jù)能夠獲得三維點在空間中所處的位置。
通過上述步驟得到場景中物體的空間位置,三維重建的主要過程已經(jīng)完成。但是這些物體空間點都是離散的,需要完善其表面信息,因此需要用到三角剖分技術(shù)進(jìn)行點云的網(wǎng)格化。
現(xiàn)階段,三角剖分技術(shù)有2種主要的方法:
① 平面投影法:主要應(yīng)用投影映射原理,在得到空間點的位置后將其投影在平面上,接著對平面上的點進(jìn)行剖分處理,再將剖分后的結(jié)果轉(zhuǎn)移到三維結(jié)構(gòu)上即可;
② 直接剖分法:比較繁瑣,它直接在原始點云的基礎(chǔ)上進(jìn)行線性插值,從而完成點云網(wǎng)格化的過程。
剖分完成后可以得到目標(biāo)場景的整體模型,為了進(jìn)一步優(yōu)化,可以對模型進(jìn)行紋理映射從而使得建模效果更加逼真。紋理映射總體來講就是選擇一幅最為合適的圖像,將圖像上的紋理信息添加到三維模型當(dāng)中。
三維重建是當(dāng)前人工智能相關(guān)領(lǐng)域的重要研究方向,它在工業(yè)檢測、醫(yī)療、建筑設(shè)計、航空航天和虛擬現(xiàn)實等領(lǐng)域都有廣泛的應(yīng)用,而基于圖像的三維重建與傳統(tǒng)的三維重建相比具有數(shù)據(jù)獲取容易、采集設(shè)備簡單以及場景適用范圍廣等優(yōu)點。因此,基于圖像的三維重建技術(shù)在眾多領(lǐng)域都發(fā)展迅速。
城鎮(zhèn)建模在當(dāng)今的生產(chǎn)生活上發(fā)揮著重要作用。一方面,通過對城鎮(zhèn)建模可以具體了解到城鎮(zhèn)的布局結(jié)構(gòu),為后續(xù)的發(fā)展建設(shè)提供依據(jù)。另一方面,城鎮(zhèn)建模可以幫助人們更為清晰地了解城市,促進(jìn)城市宣傳。當(dāng)發(fā)生自然災(zāi)害時,救援人員還可以調(diào)看城鎮(zhèn)的三維結(jié)構(gòu)從而做出合理的部署。目前,數(shù)字化城鎮(zhèn)已經(jīng)得到了飛速發(fā)展并且廣泛應(yīng)用在生產(chǎn)生活當(dāng)中。
文物保護(hù)一直以來都是歷史性難題。隨著科技的發(fā)展,基于圖像的三維重建技術(shù)已經(jīng)廣泛應(yīng)用在文物重建當(dāng)中,并且取得了良好的效果[15]。河南省曾對新鄉(xiāng)市輝縣村舍進(jìn)行了三維重建,成功還原當(dāng)?shù)氐耐暾婷玻粴v史學(xué)家對新疆米蘭古城進(jìn)行了建模,同樣起到了保護(hù)文物的重要作用。
醫(yī)療救護(hù)也是三維重建的一個重要研究領(lǐng)域。現(xiàn)階段一些常見的掃描設(shè)備能夠快速發(fā)現(xiàn)患者的受傷部位,從而為醫(yī)生的治療提供了技術(shù)支持。常見的有對頜面、臉部軟組織和全身關(guān)節(jié)等部位進(jìn)行三維重建。重建后的結(jié)果精度高,同時不會對人體造成傷害。目前三維重建技術(shù)已經(jīng)廣泛應(yīng)用在各大醫(yī)院[16]。
三維重建技術(shù)在無人作戰(zhàn)、裝備導(dǎo)航方面也發(fā)揮著重要作用。它有效地推進(jìn)了無人作戰(zhàn)的發(fā)展。例如,美國曾研制出四足軍用機(jī)器人,它能夠協(xié)助士兵作戰(zhàn),同時還可以用于運輸物資。當(dāng)作戰(zhàn)人員迷失方向時它能夠?qū)崟r生成周圍環(huán)境的三維場景從而提供導(dǎo)航[17]。此外,作戰(zhàn)時可以對攻擊目標(biāo)進(jìn)行捕捉并識別其三維特征,從而對目標(biāo)的行為進(jìn)行判斷以便制定合理作戰(zhàn)計劃。
主要從傳感器、工作流程以及典型應(yīng)用等方面對三維重建研究成果進(jìn)行了總結(jié)。雖然三維重建已經(jīng)取得了很好的進(jìn)展,并且在許多實際場景中應(yīng)用,但是仍存在許多挑戰(zhàn)[18]:
① 不確定情況下的三維重建。由于環(huán)境的影響,使得基于圖像的三維重建成為不確定問題。陰暗潮濕、光照較差等條件都會影響重建的效果。雖然現(xiàn)階段有相關(guān)技術(shù)可以對圖像進(jìn)行濾波處理,但是最終的結(jié)果還需進(jìn)一步優(yōu)化處理。
② 相機(jī)自標(biāo)定問題。正如文中提到的一樣,當(dāng)前的相機(jī)標(biāo)定主要是以自標(biāo)定為主。雖然絕對對偶二次曲面標(biāo)定法等方法在某些方面得到了應(yīng)用,但是它們在不同程度上都存在著缺陷。如何簡化標(biāo)定過程,使得相機(jī)具有自主學(xué)習(xí)能力是今后的一個重要優(yōu)化方向。
③ 稀疏的三維點云表面重建問題。獲得三維點云結(jié)構(gòu)后,需要進(jìn)行稠密重建,從而使重建后的結(jié)果更加完善。現(xiàn)階段有學(xué)者提出CMVS與PMVS相結(jié)合的方法進(jìn)行稠密重建。如何提高重建的精度,更加清晰地恢復(fù)場景紋理,還值得進(jìn)一步研究。
④ 非剛體的三維重建。當(dāng)前重建算法的提出大都假設(shè)場景中的物體為剛體進(jìn)行研究,但是實際情況是有許多物體都是非剛體,因此需要對算法進(jìn)行優(yōu)化,從而實現(xiàn)對非剛體的三維重建。
⑤ 動態(tài)場景的圖像三維重建。相機(jī)拍攝時獲取的圖像往往是靜態(tài)的,因此無法很好地恢復(fù)運動物體的空間位置。因此今后一個重要研究方向就是如何根據(jù)獲得的圖像,重建出一個動態(tài)的場景。