劉志海 , 代振銳 , 田紹魯 , 劉飛熠
(1.山東科技大學(xué)交通學(xué)院, 青島 266590; 2.山東科技大學(xué)機(jī)械電子工程學(xué)院, 青島 266590)
在計(jì)算機(jī)視覺和圖像處理等技術(shù)的快速發(fā)展下,非接觸式三維重建在三維重建領(lǐng)域成為重要研究內(nèi)容。非接觸式三維重建是指通過光、聲和電磁學(xué)等信號(hào)源接觸物體表面[1],并使用相應(yīng)設(shè)備對目標(biāo)物體進(jìn)行圖像采集,然后使用計(jì)算機(jī)對獲取的二維圖像信息進(jìn)行分析處理,再通過三維重建的相關(guān)理論知識(shí)獲得物體的三維信息。與利用測量工具和目標(biāo)物體表面接觸進(jìn)而完成三維重建的接觸式三維重建技術(shù)相比,非接觸式三維重建具有重建速度快、效率高等優(yōu)點(diǎn),且不易受物體的幾何形狀影響。廣泛應(yīng)用于人工智能、自動(dòng)駕駛、機(jī)器人視覺、醫(yī)學(xué)、虛擬和增強(qiáng)現(xiàn)實(shí)等領(lǐng)域[2-6]。
根據(jù)發(fā)射信號(hào)源所使用的傳感器是否主動(dòng)向物體照射光源分為主動(dòng)式、被動(dòng)式[7-8]兩種方法。主動(dòng)式三維重建通過向目標(biāo)物體發(fā)射信號(hào)并分析返回的信號(hào),計(jì)算信號(hào)源與目標(biāo)物體表面的相對位置進(jìn)而完成目標(biāo)物體表面的三維重建。被動(dòng)式三維重建通過單個(gè)或多個(gè)相機(jī)采集目標(biāo)物體的圖像,利用圖像分析獲得目標(biāo)物體表面的三維數(shù)據(jù),進(jìn)而完成物體的三維重建。
現(xiàn)主要對主動(dòng)式三維重建的飛行時(shí)間法、基于三角測距的結(jié)構(gòu)光重建、光柵重建和被動(dòng)式三維重建的單目視覺、雙目視覺、多目視覺重建和基于深度學(xué)習(xí)的三維重建進(jìn)行分析總結(jié)。
主動(dòng)式三維重建是一種主動(dòng)測量環(huán)境深度從而重建出物體三維模型的技術(shù)。該技術(shù)使用傳感器主動(dòng)地向物體表面發(fā)射信號(hào)源,然后依靠解析返回的信號(hào),計(jì)算信號(hào)源與目標(biāo)物體表面的相對位置獲取物體的三維信息。根據(jù)方法原理,主動(dòng)式三維重建主要分為基于激光測距和基于結(jié)構(gòu)光重建?,F(xiàn)主要分析基于激光測距的飛行時(shí)間法、基于相位差的光柵重建和基于三角測距原理的結(jié)構(gòu)光三維重建[9-12]。
飛行時(shí)間法(time of flight,TOF)通過向目標(biāo)發(fā)送光脈沖信號(hào),然后依據(jù)傳感器接收到光脈沖信號(hào)反射后的時(shí)間差來計(jì)算與目標(biāo)的距離,工作原理如圖1所示。TOF根據(jù)測量傳播時(shí)間方式的不同可以分為直接測量法和間接測量法[13],根據(jù)光源發(fā)射器調(diào)制光脈沖方法的不同可以分為脈沖調(diào)制法和連續(xù)波調(diào)制法[14]。TOF主要采用主動(dòng)紅外調(diào)制光源,可以在無光的環(huán)境中工作,不需要進(jìn)行圖像處理分析,速度較快,同時(shí)還具有穩(wěn)定性高、集成度高等優(yōu)點(diǎn),但是容易受環(huán)境光的影響。
隨著微電子、微光學(xué)和微技術(shù)的不斷發(fā)展,20世紀(jì)90年代初,首次將基于TOF測量技術(shù)與特殊功能的傳感器結(jié)合在一起,生成出了第一代TOF相機(jī)[15-16]。目前,生產(chǎn)TOF相機(jī)的廠商主要有Psychemedics(PMD)公司、MESA Imaging AG公司和微軟公司等。TOF相機(jī)的誤差會(huì)影響TOF三維重建的準(zhǔn)確性,TOF相機(jī)的誤差主要分為相機(jī)本身不可避免的系統(tǒng)誤差和外界環(huán)境引起的非系統(tǒng)誤差。
圖1 飛行時(shí)間法原理圖Fig.1 Schematic diagram of TOF method
結(jié)構(gòu)光法三維重建示意圖如圖2所示,通過投影儀將特定的結(jié)構(gòu)光圖案投射到目標(biāo)物體上,由相機(jī)拍攝目標(biāo)物體的二維圖像,再通過圖像處理和視覺模型求出目標(biāo)物體的三維信息[23]。其基本原理是三角測量原理,通過計(jì)算投影儀與相機(jī)之間的位置關(guān)系和畸變條紋來獲取物體的三維信息。這種方法容易受光照影響,適合室內(nèi)環(huán)境,而且隨著檢測距離的增加,重建精度也會(huì)變差。結(jié)構(gòu)光常用的結(jié)構(gòu)形式有單投影儀-單相機(jī)、單投影儀-雙相機(jī)[24]、單投影儀-雙相機(jī)、多投影儀-單相機(jī)[25]、多投影儀-單相機(jī)[26]等。根據(jù)技術(shù)原理可以分為三角測距的結(jié)構(gòu)光重建和基于相位的光柵重建。
I表示條紋圖像;Ip表示p點(diǎn)的條紋圖像;α表示被測物體的反射率; α(x, y)表示被測物體(x, y)點(diǎn)的反射率;β表示環(huán)境光 圖2 結(jié)構(gòu)光示意圖[27]Fig.2 Schematic diagram of structured light[27]
1.2.1 基于三角測距的結(jié)構(gòu)光重建
基于三角測距的結(jié)構(gòu)光重建通過計(jì)算投影儀發(fā)射的光源、相機(jī)和光源在目標(biāo)物體上的投影點(diǎn)構(gòu)成的三角關(guān)系來獲得目標(biāo)物體的三維信息。該方法重建結(jié)果比較穩(wěn)定可靠,但是重建范圍較小。根據(jù)光信號(hào)發(fā)射器的投影模式不同,結(jié)構(gòu)光法可以分為點(diǎn)式結(jié)構(gòu)光、線式結(jié)構(gòu)光、面式結(jié)構(gòu)光。
點(diǎn)式結(jié)構(gòu)光使用光信號(hào)發(fā)射器發(fā)射一束光線投射到目標(biāo)物體上,在目標(biāo)物體上形成一個(gè)光點(diǎn),然后相機(jī)拍攝目標(biāo)物體得到二維圖像信息,再根據(jù)三角測量原理計(jì)算光點(diǎn)的深度。將光信號(hào)發(fā)射器沿豎直和水平方向?qū)Υ郎y物體進(jìn)行逐點(diǎn)掃描就可以得到該物體整個(gè)表面的深度信息。點(diǎn)式結(jié)構(gòu)光只是對一個(gè)點(diǎn)進(jìn)行處理,算法簡單、計(jì)算速度較快,適用于小范圍三維重建。但是這種方法是逐點(diǎn)進(jìn)行測量,效率較低。
線式結(jié)構(gòu)光與點(diǎn)式結(jié)構(gòu)光原理相同,不同的是線結(jié)構(gòu)光使用線形光源。光信號(hào)發(fā)射器將線形激光投射到目標(biāo)物體表面,使用相機(jī)拍攝帶有線形激光的圖像,根據(jù)三角測量原理對線式結(jié)構(gòu)光發(fā)射器和相機(jī)的位置進(jìn)行計(jì)算,從而得到投射線位置的三維信息。與點(diǎn)式結(jié)構(gòu)光相比,線式結(jié)構(gòu)光得到的三維信息更為豐富且測量效率較高。
面式結(jié)構(gòu)光也稱為編碼結(jié)構(gòu)光,其原理是利用投影儀將編碼圖案投射到目標(biāo)物體上,然后使用相機(jī)拍攝目標(biāo)物體得到帶有編碼圖案的物體表面圖像,再根據(jù)解碼方法和三角測量原理計(jì)算得到目標(biāo)物體的三維信息。根據(jù)編碼方式的不同可以分為空間編碼和時(shí)間編碼,空間編碼只有一種投射方式,時(shí)間編碼有兩種及以上的投射方式。投射圖案的編碼方式是影響三維重建精度和效率的重要因素。面結(jié)構(gòu)光與點(diǎn)式、線式結(jié)構(gòu)光重建相比效率較高,重建速度較快,適合較小物體的三維重建,如人臉重建。
潘碩等[28]提出了一種基于多線結(jié)構(gòu)光的深孔類零件表面三維重建方法,使用多線結(jié)構(gòu)光圖像測量系統(tǒng)獲取零件內(nèi)表面的結(jié)構(gòu)光圖像,并結(jié)合深孔零件的特征,建立基于柱坐標(biāo)系下的遠(yuǎn)心鏡頭成像模型,測量的精度誤差滿足實(shí)際要求。曾凱等[29]提出了基于線結(jié)構(gòu)光的彎道類工件三維重建方法,使用標(biāo)定好的線結(jié)構(gòu)光三維重建平臺(tái)獲取工件的點(diǎn)云數(shù)據(jù),該方法具有較高的重建精度,能夠滿足工業(yè)實(shí)時(shí)檢測的要求。陳榮等[30]提出了一種基于空間編碼結(jié)構(gòu)光的稠密重建方法,使用紅色的正弦光柵條紋和藍(lán)色偽隨機(jī)點(diǎn)組成的編碼模式,并利用零均值歸一化互相關(guān)進(jìn)行匹配,該方法不需要對投影儀進(jìn)行標(biāo)定和顏色校正且只需要一個(gè)圖像完成三維重建,在保證三維重建精度的前提下提高了速度。Gunatilake等[31]提出了一種利用履帶式機(jī)器人實(shí)現(xiàn)管道三維重建的解決方案,利用結(jié)構(gòu)紅外激光環(huán)形投影儀和RGB相機(jī),并使用了立體映射、光線投射和RGB深度映射等圖像算法對管道的三維輪廓進(jìn)行了重建,該方案的使用性能和精度得到了保障,但是需要機(jī)器人的定位要求較高。Montusiewicz等[32]利用結(jié)構(gòu)光技術(shù)的三維掃描儀通過數(shù)字化的方式展示了歷史服裝的三維模型,推動(dòng)了服裝文化的記錄和傳播,探討了利用三維模型和信息技術(shù)在數(shù)字資源空間中推廣文化遺產(chǎn)的途徑。
1.2.2 基于相位的光柵重建
基于相位的光柵重建通過分析目標(biāo)物體表面條紋圖像包含的深度信息的相位變化,然后根據(jù)相位和物體深度的關(guān)系獲得目標(biāo)物體表面的深度信息,該方法的原理也是三角測量,但核心是相位的計(jì)算。光柵重建測量的范圍較大、精度較高、速度較快。使用光柵條紋投影進(jìn)行三維重建的方法較為廣泛,常用的方法主要有傅里葉變換輪廓術(shù)和相位測量形貌輪廓術(shù)等。
傅里葉變換輪廓(fourier transform profilometry,F(xiàn)TP)術(shù)由Takeda等[33]提出,基于傅里葉變換,利用計(jì)算機(jī)對帶有光柵條紋的目標(biāo)物體表面的圖像在空間域進(jìn)行傅里葉變換、濾波和傅里葉反變換,獲取光柵條紋在物體表面的相位分布,進(jìn)而獲得目標(biāo)物體表面的三維信息。傅里葉變換輪廓術(shù)使用一副圖像就可以獲得目標(biāo)物體的三維信息,重建速度較快,可以進(jìn)行實(shí)時(shí)重建,但是物體表面的反射系數(shù)對其影響較大,重建精度不高。
相位測量輪廓(phase measurement profilometry,PMP)術(shù)利用投影儀投射多幅具有特殊相移差的條紋圖像到目標(biāo)物體,然后通過三角函數(shù)法計(jì)算每個(gè)像素的相位值,進(jìn)而獲得目標(biāo)物體的深度信息。該方法需要多幅圖像才能獲得物體表面的深度信息,重建速度相比于FTP較慢,但可以彌補(bǔ)FTP的缺點(diǎn),而且具備重建精度高、范圍較廣等優(yōu)點(diǎn),因此廣泛應(yīng)用于工業(yè)測量領(lǐng)域[34]。
Lü等[35]提出了一種基于極限學(xué)習(xí)機(jī)網(wǎng)絡(luò)的相位差-三維坐標(biāo)映射模型,該模型以標(biāo)定板的圓心數(shù)據(jù)為樣本庫,通過分析樣本的網(wǎng)絡(luò)輸出誤差確定隱層神經(jīng)元的數(shù)量,利用極限學(xué)習(xí)機(jī)網(wǎng)絡(luò)分別對訓(xùn)練樣本和測試樣本的輸出進(jìn)行預(yù)測,滿足了三維測量中高精度、高效率的要求。劉飛等[36]提出了改進(jìn)的三頻三步相移結(jié)構(gòu)光三維重建方法,該方法將最高頻率的3張圖像應(yīng)用三步相移算法得到精度最高的包裹相位,計(jì)算出背景光強(qiáng)和調(diào)制光強(qiáng)并代入剩余條紋圖中得到其包裹相位,最后進(jìn)行相位展開得到展開相位進(jìn)而完成三維重建,解決了傳統(tǒng)方法主要投影多編碼圖像和效率低的問題。薛峰等[37]分析了實(shí)際工作環(huán)境和物理模型對三維重建的影響,針對因亮度飽和而導(dǎo)致重建缺失和精度低的問題,提出了一種相位融合和多頻外差算法相結(jié)合的方法。鄧仕超等[38]分析了傳統(tǒng)的三頻外差產(chǎn)生相位跳變誤差的原因,使用誤差范圍約束,并利用公式回帶和多頻外差算法展開相位信息,降低了解包裹過程中的相位誤差跳變,使得三維重建結(jié)果的表面較光滑且細(xì)節(jié)清晰。
被動(dòng)式[39-40]三維重建沒有主動(dòng)獲取環(huán)境深度圖的能力,只能通過相機(jī)采集圖像,然后利用多視圖幾何原理對圖像進(jìn)行分析處理,從而獲取物體的三維信息。根據(jù)相機(jī)數(shù)量的多少,被動(dòng)式三維重建主要分為單目視覺、雙目視覺和多目視覺的三維重建方法。
單目視覺只使用一個(gè)攝像頭作為圖像采集設(shè)備,使用的圖像可以是單張或者序列圖像,主要是通過提取圖像中的亮度、紋理、輪廓、特征點(diǎn)等信息來估計(jì)圖像的深度信息,具有低成本、操作簡單等優(yōu)點(diǎn)。單張圖像很難包含物體所有的三維結(jié)構(gòu)信息,因此使用單張圖像實(shí)現(xiàn)三維重建的難度較大。下面對明暗恢復(fù)形狀法、光度立體視覺法、紋理恢復(fù)形狀、輪廓恢復(fù)形狀、焦點(diǎn)恢復(fù)形狀和運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)單目視覺三維重建方法進(jìn)行闡述。
2.1.1 明暗恢復(fù)形狀法
Minsky[41]于1970年提出明暗恢復(fù)形狀(shape from shading,SFS)法,也稱為明暗度法。該方法需要已知光源方向,并假設(shè)物體表面為朗伯反射模型和成像幾何關(guān)系為正交投影,根據(jù)單幅圖像各點(diǎn)對應(yīng)的亮度值代入預(yù)先設(shè)計(jì)的色度模型中,結(jié)合表面可微分性、曲率約束和光滑度約束等,求解各點(diǎn)深度信息。SFS方法只需要一幅圖像就可以進(jìn)行三維重建,運(yùn)行時(shí)間短,但是幅單張圖像中獲得的信息較少,重建的效果不理想且光照對其影響較大,不適合在室外進(jìn)行三維重建。
明暗恢復(fù)形狀法經(jīng)過多年的發(fā)展,主要有最小化方法、演化方法、局部分析法、線性化方法等[42]。最小化方法在全局范圍內(nèi)將圖像與反射圖的亮度的差值能量最小化。演化方法通過迭代方法從圖像中的特征點(diǎn)開始推演出物體表面的三維信息。局部分析法假設(shè)已知物體的表面形狀,通過求解其與反射圖的方程組進(jìn)而求出物體表面的三維信息。線性化方法是通過Taylor級(jí)數(shù)將SFS反射函數(shù)轉(zhuǎn)換成不同階次未知量的線性和[43]。Fan等[44]基于Cook-Torrance 雙向反射分布函數(shù)建立了SFS模型,該模型建立在相機(jī)的笛卡爾坐標(biāo)系上,具有任意光源位置,通過圖像實(shí)驗(yàn)證明了該算法具有良好的魯棒性。李健等[45]利用深度相機(jī)融合SFS光照約束實(shí)現(xiàn)了物體的三維重建,在深度信息的基礎(chǔ)上加入了光照約束來優(yōu)化深度值,重建出的三維模型細(xì)節(jié)更清晰,精度更高,但受深度相機(jī)的制約僅適用于室內(nèi)重建。
2.1.2 光度立體視覺法
Woodham[46]提出了光度立體視覺(photometric stereo,PS)法,根據(jù)光源方向和圖像明暗之間的關(guān)系求解物體表面的三維信息。其工作原理是在相機(jī)位置及周圍場景不變的情況下改變光源方向或者光源顏色,獲取目標(biāo)的多張圖像,然后通過聯(lián)立亮度方程求出物體的表面形狀,進(jìn)而恢復(fù)出物體的三維模型。根據(jù)光源和相機(jī)等因素,光度立體成像系統(tǒng)可分為平行光源或點(diǎn)光源面陣相機(jī)成像系統(tǒng)和線形光源線陣相機(jī)成像系統(tǒng)[47]。與明暗恢復(fù)形狀法相比,該方法使用多個(gè)光源,獲得的三維信息較多,但是對光照比較敏感,不適合室外場景重建。
為解決由理想的朗伯體表面在現(xiàn)實(shí)中是有限的帶來的缺點(diǎn),研究者們提出基于非朗伯體表面的光度立體視覺方法。Shen等[48]提出了一種基于核回歸的高效光度立體測量方法,該方法將正態(tài)估計(jì)表述為核回歸,并進(jìn)一步表述為特征分解。通過快速的矩陣計(jì)算和適當(dāng)?shù)恼?guī)初始化來加速留過程,提高了計(jì)算效率。Quéau等[49]基于對噪聲和異常值的精確建模,提出了一種魯棒變分方法,解決了在不準(zhǔn)確的照明存在的光度立體問題。朱可等[50]提出了一種基于光度立體視覺的采用二維平面圖像重構(gòu)三維表面的方法,從顯微成像角度建立近場點(diǎn)光源模型,通過PS求解研究對象表面的法向量,最后由Frankot-Coellappa算法獲取表面深度信息,實(shí)現(xiàn)了機(jī)械零部件在無拆卸狀態(tài)下的磨損表面的三維測量。簡振雄等[51]提出了一種進(jìn)場非朗伯光度立體視覺高亮金屬表面紋理的重構(gòu)方法,利用共位光源下的逆反射模型解耦金屬表面法向量,并使用最大值融合策略克服陰影影響,提高了表面紋理重構(gòu)的準(zhǔn)確性。
2.1.3 紋理恢復(fù)形狀法
紋理恢復(fù)形狀(shape from texture,SFT)法是根據(jù)圖像的紋理信息來獲取物體的三維信息,然后重建出物體的三維模型。該方法根據(jù)單張圖像重建出物體三維模型,重建精度和速度比較高,而且對光照和噪聲都不敏感。但是它只適用于具有紋理特征的物理,實(shí)用性不高。
Massot等[52]基于一種不需要選擇最優(yōu)局部尺度的圖像局部頻率估計(jì)方法,將圖像局部分解成小塊,從而估計(jì)出圖像的局部頻率變化,用于解決從紋理中恢復(fù)形狀的問題。Loh等[53]提出了一種從紋理中提取形狀的方法,假設(shè)表面光滑,對鋒面紋理進(jìn)行估計(jì),正確的估計(jì)會(huì)導(dǎo)致最一致的表面,并通過一致性約束恢復(fù)表面。Forsyth等[54]通過假定紋理元素具有有限數(shù)量的固定形狀類型,構(gòu)造了一個(gè)最大后驗(yàn)估計(jì)的表面系數(shù)僅使用單個(gè)紋理元素的變形,描述了一個(gè)形狀從紋理方法。
2.1.4 輪廓恢復(fù)形狀法
輪廓恢復(fù)形狀(shape from silhouettes/contours,SFS/SFC)法簡稱“輪廓法”,主要思想是通過單目相機(jī)從不同角度拍攝圖像來獲取物體的輪廓信息,然后根據(jù)輪廓信息恢復(fù)物體的三維模型,圖像的數(shù)量越多,重建結(jié)果越精確,會(huì)導(dǎo)致計(jì)算量增大,降低了重建的速度。輪廓恢復(fù)形狀法又可以分為體素法、視殼法和錐素法。
Martin等[55]首先提出體素法,這種方法將三維空間離散化為體素,再將前景與背景進(jìn)行分割,然后將所有能夠投影到前景的體素點(diǎn)集合起來就能夠重構(gòu)出物體的三維模型。視殼法[56]是在不同視角拍攝圖像,將得到的輪廓圖通過椎體反投影到三維空間中形成三維錐殼,反投影得到三維錐殼組成視殼,當(dāng)拍攝視角足夠豐富時(shí),那么就可以將視殼的形狀認(rèn)為是物體的三維形狀。錐素法[57]是由視殼法發(fā)展而來,即通過對極幾何的方法把視殼法的運(yùn)算轉(zhuǎn)換到二維空間中,使得運(yùn)算變的簡單。
2.1.5 焦點(diǎn)恢復(fù)形狀法
焦點(diǎn)恢復(fù)形狀(shape from focus,SFF)法也稱為調(diào)焦法,是通過分析相機(jī)光圈、焦距和圖像清晰度之間的關(guān)系來恢復(fù)物體的深度信息,然后重建出物體的三維模型[58]。由于相機(jī)鏡頭具備光學(xué)聚焦原理,物體只有在相機(jī)焦距處才會(huì)拍攝出比較清晰的圖像,然后建立物體到投影中心的距離與圖像清晰度之間的關(guān)系,進(jìn)而得到圖像的深度信息[59]。
調(diào)焦法對光照不敏感,重建精度比較高,但是它與相機(jī)光圈和焦距有關(guān),需要不斷設(shè)置相機(jī)光圈和焦距,不能實(shí)時(shí)重建,對紋理復(fù)雜的物體重建效果也不理想。調(diào)焦法具體可以分為聚焦(shape from focus,SFF)法和離焦(shape from defocus,SFD)法。聚焦法就是被測物體在相機(jī)焦距處,再根據(jù)成像公式求解得到被測物體相對于相機(jī)的距離[60-61]。離焦法則與聚焦法相反,不需要被測物體在相機(jī)焦距處,而是根據(jù)離焦模型計(jì)算被測物體相對于相機(jī)的距離[62]。
2.1.6 運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法
運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(structure from motion,SFM)法首先從不同視角采集圖像,通過圖像的紋理信息提取特征點(diǎn);然后每兩幅圖像之間進(jìn)行特征點(diǎn)匹配,并計(jì)算特征點(diǎn)間對應(yīng)關(guān)系和相機(jī)在三維空間中的相機(jī)姿態(tài);再利用三角測量原理將該圖像對的相機(jī)姿態(tài)與其特征點(diǎn)對求解得到三維坐標(biāo),從而生成三維點(diǎn)云,并用光束法平差對三維點(diǎn)云進(jìn)行優(yōu)化處理;當(dāng)采集到新圖像時(shí),在已處理的圖像中選擇一張與新圖像進(jìn)行特征匹配并求解出新圖像對應(yīng)的相機(jī)姿態(tài),計(jì)算出其對應(yīng)的三維點(diǎn)云,與之前的三維點(diǎn)云融合,從而得到不同視角下的三維點(diǎn)云。該算法使用多幅圖像來獲取目標(biāo)物體的三維信息,使得重建結(jié)果比較精確,但是也會(huì)導(dǎo)致計(jì)算量較大,重建速度較慢。SFM常用的方法有增量式SFM、全局式SFM和混合式SFM等。
增量式SFM[63]是目前應(yīng)用最廣泛的運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法,重建流程如圖3所示。一般先使用尺度不變特征變換算子對每張圖像進(jìn)行特征點(diǎn)檢測,并進(jìn)行特征點(diǎn)匹配。再使用隨機(jī)抽樣一致算法和八點(diǎn)法估計(jì)出基礎(chǔ)矩陣,然后使用三角化對匹配的特征點(diǎn)進(jìn)行操作,得到其對應(yīng)的三維點(diǎn)云信息,通過捆綁調(diào)整不斷地優(yōu)化場景結(jié)構(gòu)。由于在求位姿與三維點(diǎn)時(shí)會(huì)有大量噪聲干擾,且計(jì)算結(jié)果會(huì)發(fā)生漂移,通過添加光束平差(bundle adjustment,BA)算法進(jìn)行優(yōu)化處理。全局式SFM[64]將所有圖像添加到場景中,計(jì)算所有的相機(jī)姿態(tài),然后進(jìn)行三角化處理。全局式SFM僅采用一次光束法平差優(yōu)化,大大提高了重建速度,且精度較高,但是對大規(guī)模場景進(jìn)行重建時(shí),重建的效果并不理想?;旌鲜絊FM[65]是將上述兩種方法進(jìn)行融合,使用全局式SFM估計(jì)相機(jī)旋轉(zhuǎn)矩陣,增量式SFM估計(jì)相機(jī)中心位置坐標(biāo),然后進(jìn)行局部捆綁調(diào)整。
圖3 增量式SFM重建流程圖Fig.3 Flow chart of incremental SFM reconstruction
陳輝等[66]利用運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法實(shí)現(xiàn)了對葉片體積的測量,使用智能手機(jī)采集葉片圖像,通過SFM獲取其點(diǎn)云數(shù)據(jù),采用模糊C均值聚類算法提取單個(gè)葉片,重建出葉片的網(wǎng)格并通過網(wǎng)格法計(jì)算葉片的體積,可以滿足多種不規(guī)則葉片體積計(jì)算的要求。汪侃等[67]提出一種鄰圖配對式SFM重建拓?fù)浣Y(jié)構(gòu),該結(jié)構(gòu)首先以首張圖像相機(jī)坐標(biāo)系下的點(diǎn)云作為主點(diǎn)云,然后使用抗噪聲的尺度迭代最近點(diǎn)法配準(zhǔn)點(diǎn)云,最后規(guī)定世界坐標(biāo)系實(shí)現(xiàn)點(diǎn)云尺度信息的恢復(fù)。梁秀英等[68]基于運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)實(shí)現(xiàn)了玉米植株的三維重建,并通過歐式聚類和圓柱擬合等算法提取了單株、莖稈和葉片等的點(diǎn)云數(shù)據(jù),為玉米植株表型的研究提供了測量方法。
雙目視覺通過雙目相機(jī)拍攝目標(biāo)物體的左右兩幅圖像,然后搜索兩幅圖像中匹配的像素,并計(jì)算其匹配像素的位置差,將這個(gè)差值設(shè)置在圖像的灰度范圍內(nèi),構(gòu)成兩幅圖像匹配像素的位置差的圖像,稱作視差圖像。獲取視差圖像之后,根據(jù)三角測量原理,計(jì)算視差圖像的每個(gè)像素點(diǎn)的三維空間坐標(biāo),得到目標(biāo)的三維點(diǎn)云。之后使用多邊形網(wǎng)格剖分算法或自由曲面擬合算法,對目標(biāo)表面進(jìn)行三維重建,最終得到目標(biāo)的三維空間信息。雙目視覺計(jì)算過程主要包含四個(gè)步驟:相機(jī)標(biāo)定、圖像校正、立體匹配和三維重建計(jì)算[69],如圖4所示。
相機(jī)標(biāo)定的目的是在將二維圖像信息轉(zhuǎn)化為三維空間信息的過程中獲得兩個(gè)相機(jī)的內(nèi)部物理信息和相機(jī)直接的相對位置信息,相機(jī)標(biāo)定的精度會(huì)直接影響三維重建的精度。常見的相機(jī)標(biāo)定方法有傳統(tǒng)標(biāo)定方法[70-71]、基于主動(dòng)視覺的標(biāo)定方法[72]和相機(jī)自標(biāo)定法[73-74]。
圖像校正的目的是將立體匹配的搜索范圍從二維降到一維,使兩幅圖像對應(yīng)的極線位于同一條掃描線上并與基線平行,在搜索兩幅圖像對應(yīng)點(diǎn)時(shí),只要在該點(diǎn)對應(yīng)的掃描線上搜尋即可,可以使立體匹配得到簡化。圖像校正的常用方法主要有基于平面和基于外極線的校正方法。
立體匹配是雙目視覺三維重建的基礎(chǔ),也是重點(diǎn)難點(diǎn)。立體匹配的目的是在兩幅圖像中找到相對應(yīng)的匹配像素點(diǎn),通過計(jì)算像素點(diǎn)位置的差值從而求取深度值。由于三維空間中的環(huán)境復(fù)雜、物體本身的幾何形狀和表面材質(zhì)特性、相機(jī)鏡頭畸變和相機(jī)的物理信息以及拍攝時(shí)產(chǎn)生的噪聲等因素,都會(huì)影響立體匹配的精度,而且單個(gè)算法也會(huì)存在較大的局限性,從而導(dǎo)致三維重建的結(jié)果不理想。
圖4 雙目視覺三維重建流程圖Fig.4 3D reconstruction flow chart of binocular vision
Scharstein等[75]對立體匹配算法進(jìn)行了總結(jié)和評價(jià),將基于兩幅視圖的立體匹配算法歸納為匹配代價(jià)計(jì)算(matching cost calculation)、匹配代價(jià)聚合(matching cost aggregation)、視差計(jì)算及優(yōu)化(disparity computation and optimization)和視差細(xì)化求精(disparity refinement)四個(gè)步驟。
經(jīng)過相機(jī)標(biāo)定、圖像校正和立體匹配之后獲得視差圖像,再根據(jù)三角測量原理和相機(jī)基線等信息計(jì)算圖像的深度信息,進(jìn)而可以求解得到目標(biāo)物體的三維信息。雙目視覺三維重建方法比較成熟,應(yīng)用廣泛,但是運(yùn)算量比較大。立體匹配的準(zhǔn)確性決定了三維重建的精度,可以通過優(yōu)化立體匹配算法來提高三維重建的效果。
丁蘇楠[76]對基于自適應(yīng)支持權(quán)重的立體匹配方法進(jìn)行了優(yōu)化,提高了遮擋區(qū)域的匹配度,并使用雙目視覺系統(tǒng)實(shí)現(xiàn)了工件的精準(zhǔn)定位,依靠視差圖恢復(fù)出工件的三維信息,實(shí)現(xiàn)了工件的準(zhǔn)確抓取功能。Huang等[77]提出了一種基于雙目視覺的輸電線路走廊自定位和故障檢測方法,針對參數(shù)間強(qiáng)耦合的問題,提出了基于重構(gòu)結(jié)果誤差的校正方法,并使用最小二乘擬合插值對基于半全局立體匹配算法獲得的視差圖進(jìn)行優(yōu)化,基于此,建立了障礙物到電纜檢測機(jī)器人的距離估計(jì)模型,該模型具有極高的距離估計(jì)精度和魯棒性。Wei等[78]將雙目三維重建遙控應(yīng)用到遙控挖掘機(jī)上,使用基于絕對差和進(jìn)行圖像匹配,根據(jù)贏家通吃策略求得視差,完成工作場景的三維重建,使得遙控挖掘機(jī)在危險(xiǎn)工況下完成工作,保障了操作人的人身安全。
多目視覺與雙目視覺三維重建的基礎(chǔ)理論基本相似,不同是多目視覺采用了三臺(tái)相機(jī)或更多相機(jī),其原理如圖5所示。多目視覺利用多臺(tái)相機(jī)從不同視角采集圖像,通過更大的視野減少測量盲區(qū),還可以降低雙目視覺中誤匹配的影響。但是由多張圖像導(dǎo)致的大數(shù)據(jù)會(huì)使計(jì)算量增大、消耗時(shí)間長,不能滿足實(shí)時(shí)性要求,而且容易受光照影響。多目視覺廣泛應(yīng)用在機(jī)器人視覺、自主駕駛等領(lǐng)域[79-80]。
Pj表示被測物體的被測點(diǎn);Pj,k-1、Pj,k、Pj,k+1表示相機(jī)1、相機(jī)2、 相機(jī)3成像平面上被測點(diǎn)形成的特征點(diǎn) 圖5 多目視覺原理圖[81]Fig.5 Schematic diagram of multi-ocular vision[81]
Xu等[82]利用工業(yè)內(nèi)窺鏡和多相機(jī)三維重建開發(fā)了一種實(shí)時(shí)三維測量系統(tǒng),首先使用工業(yè)內(nèi)窺鏡捕捉原始負(fù)荷表面的圖像,然后設(shè)計(jì)了一種多特征的深度關(guān)鍵幀分類器用于提取深度信息,最后,提出多相機(jī)陣列的爐料表面三維重建方法來實(shí)時(shí)獲取高爐爐料表面的三位形狀。錢志敏[83]將單目相機(jī)與雙目相機(jī)組合成多目相機(jī)應(yīng)用于六自由度機(jī)器人上,使用單目相機(jī)初步獲取目標(biāo)物體的空間位置,雙目相機(jī)實(shí)現(xiàn)目標(biāo)物體的精確定位,機(jī)器人收到位置信息之后驅(qū)動(dòng)機(jī)械臂進(jìn)行準(zhǔn)確抓取。Tang等[84]提出了基于四目立體視覺系統(tǒng)的再生骨料鋼管混凝土柱的表面變形跟蹤測量,采用自動(dòng)標(biāo)定和動(dòng)態(tài)表面動(dòng)態(tài)測量結(jié)合的方法,建立了四目視覺坐標(biāo)與點(diǎn)云匹配相結(jié)合的數(shù)學(xué)模型,實(shí)現(xiàn)了三維變形曲面的重建。
點(diǎn)云對齊是多目視覺三維重建的重點(diǎn)和難點(diǎn),點(diǎn)云配準(zhǔn)的作用是將不同視角下獲得的點(diǎn)云數(shù)據(jù)拼接到同一坐標(biāo)系下,從而獲得完整的三維模型。點(diǎn)云配準(zhǔn)主要分為初步配準(zhǔn)和精細(xì)配準(zhǔn)。初步配準(zhǔn)是使相同的之間更好的融合在一起,同時(shí)避免精細(xì)匹配陷入局部最優(yōu)解[85-86]。點(diǎn)云初步配準(zhǔn)是通過點(diǎn)云特征匹配來實(shí)現(xiàn),Lowe[87]利用二維尺度不變特征轉(zhuǎn)換算法實(shí)現(xiàn)了點(diǎn)云特征的提取,用于實(shí)現(xiàn)實(shí)物物體或場景的不同視圖之間的可靠匹配。Sipiran[88]基于Harris算子提出了三維目標(biāo)興趣點(diǎn)檢測方法(Harris 3D),實(shí)現(xiàn)了對目標(biāo)物體特征點(diǎn)的提取。點(diǎn)云精細(xì)配準(zhǔn)是將兩個(gè)點(diǎn)云的相對位置更加精確,使得點(diǎn)云的銜接性更好。Besl等[89]首先提出迭代最近點(diǎn)算法(iterative closest point,ICP),通過計(jì)算每個(gè)點(diǎn)的最近的點(diǎn)進(jìn)而確定他們之間的關(guān)系,不僅提高了點(diǎn)云配準(zhǔn)的精度,且為點(diǎn)云配準(zhǔn)提供了理論基礎(chǔ)。Chen等[90]提出了一種基于學(xué)習(xí)和變換不變特征(transform-invariant features-registration,TIE-Reg)的點(diǎn)云配準(zhǔn)方法,充分利用了點(diǎn)云的變換不變性,對剛性變換具有很強(qiáng)的魯棒性。Han等[91]將分層搜索方案與基于八叉樹的ICP算法結(jié)合,提出了基于粗糙初始變換誤差的大規(guī)模三維環(huán)境模型的快速精細(xì)匹配方法,對初始變換誤差不敏感,通過啟發(fā)式逃逸決策解決局部最小問題。
多目視覺三維重建從多個(gè)視角獲取目標(biāo)物體的三維信息,與單目視覺三維重建中的運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法類似,方法簡單,通過多個(gè)視角的三維信息融合在一起,重建出三維模型,重建的效果較好,但是設(shè)備結(jié)構(gòu)復(fù)雜,不適用于實(shí)時(shí)重建??梢酝ㄟ^優(yōu)化點(diǎn)云對齊算法提高三維重建的效果。
Ciresan等[92]發(fā)表了卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)在計(jì)算機(jī)視覺領(lǐng)域的研究成果,深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域開始流行起來。由于CNN[93]在圖像處理方面具有明顯的優(yōu)勢,它可以直接將圖像作為網(wǎng)絡(luò)的輸入,避免了傳統(tǒng)圖像處理算法中特征提取和數(shù)據(jù)重構(gòu)的復(fù)雜過程。相比于上述文章提到的三維重建方法,基于深度學(xué)習(xí)的三維重建方法發(fā)展較晚,但是該方法發(fā)展迅速,繼而深度學(xué)習(xí)在三維重建研究上取得了較大的進(jìn)展。深度學(xué)習(xí)是在設(shè)計(jì)好網(wǎng)絡(luò)的結(jié)構(gòu)和代價(jià)函數(shù)之后,自己根據(jù)數(shù)據(jù)集提供的輸入與結(jié)果來調(diào)整參數(shù)。根據(jù)三維重建模型的表示方式主要分為基于深度圖、點(diǎn)云、體素和網(wǎng)格四種構(gòu)建方法。
深度圖用灰度圖表示,每個(gè)像素表示相機(jī)到物體的距離,灰度越深距離越近。Eigen等[94]提出一種用單張圖像使用神經(jīng)網(wǎng)絡(luò)恢復(fù)深度圖的方法,該方法將神經(jīng)網(wǎng)絡(luò)分為全局估計(jì)和局部估計(jì),并使用一個(gè)尺度不變的損失函數(shù)進(jìn)行回歸。Nguyen等[95]提出了一種基于結(jié)構(gòu)光和深度卷積神經(jīng)網(wǎng)絡(luò)集成的三維重建技術(shù),該技術(shù)使用端到端人工神經(jīng)網(wǎng)絡(luò)將由散斑圖案組成的多個(gè)灰度圖像轉(zhuǎn)換成3D深度圖,通過多個(gè)特征映射來重建三維形狀,該方法提高了重建精度并且由較好的魯棒性。
體素的定義類似二維圖像中像素的概念,具備真實(shí)的三維數(shù)據(jù),該方法一般通過編碼器-解碼器方式進(jìn)行三維重建。Choy等[96]提出使用3D-R2N2 (3D recurrent reconstruction neural network)網(wǎng)絡(luò)結(jié)構(gòu)完成物體二維圖形到空間三維結(jié)構(gòu)的映射,建立基于體素的單視圖或多視圖三維模型。3D-R2N2網(wǎng)絡(luò)可以在紋理信息較弱的情況下完成三維重建,但是會(huì)出現(xiàn)部分模型斷裂失真現(xiàn)象。Huang等[97]提出了一種高效的基于超體素的卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)可以高效融合在線三維重建過程中多視角二維特征和投影在超體素上的三維特征,實(shí)現(xiàn)了二維-三維聯(lián)合學(xué)習(xí)和三維語義預(yù)測。
點(diǎn)云是坐標(biāo)系下一系列點(diǎn)的數(shù)據(jù)集,每個(gè)點(diǎn)都包含三維坐標(biāo)、色彩等信息。點(diǎn)云數(shù)據(jù)的特征是無序切不規(guī)則,需要對其進(jìn)行規(guī)則化處理。Fan等[98]首次提出利用深度學(xué)習(xí)方法對物體進(jìn)行基于點(diǎn)云的三維重建。Chen等[99-100]提出一種Point-MVSNet方法對物體的點(diǎn)云進(jìn)行處理,將二維紋理信息與三維深度信息融合,提高了三維重建精度;2020年又提出VA-Point-MVSNet基于點(diǎn)的多視點(diǎn)立體視覺深度框架,該方法首先生成粗糙的深度圖并將其轉(zhuǎn)換為點(diǎn)云,然后通過估計(jì)當(dāng)前迭代深度與地面真實(shí)深度之間的殘差來迭代細(xì)化點(diǎn)云。該方法準(zhǔn)確性高,計(jì)算效率高還具有較強(qiáng)的靈活性。
網(wǎng)格就是多邊形網(wǎng)格,包含了三維模型的點(diǎn)、邊和面等信息。與前三種方法相比,基于網(wǎng)格的表示方法具有形狀細(xì)節(jié)豐富的特點(diǎn),而且相鄰點(diǎn)間有連接關(guān)系。Wang等[101]首先輸入一張RGB圖像,利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,然后使用圖卷積網(wǎng)絡(luò)構(gòu)建三維網(wǎng)格結(jié)構(gòu),再對三維網(wǎng)格進(jìn)行變形,直到接近物體的三維結(jié)構(gòu)并輸出其三維模型。Kim等[102]提出了一種用于相機(jī)坐標(biāo)系的單鏡頭三維多人形狀重建的基于端到端學(xué)習(xí)的模型,該模型使用一種網(wǎng)格樣式表示,在每個(gè)網(wǎng)格單元中預(yù)測研究對象和邊界框的信息,以單次射擊的方式執(zhí)行人三維形狀的重建。Jeong等[103]提出了一個(gè)以2D人體姿態(tài)來估計(jì)3D人體網(wǎng)格的網(wǎng)絡(luò),并使用基于循環(huán)結(jié)構(gòu)的弱監(jiān)督學(xué)習(xí)方法來訓(xùn)練此網(wǎng)絡(luò),該方法降低了地面真實(shí)三維數(shù)據(jù)的獲取難度,實(shí)現(xiàn)了有效的三維人體網(wǎng)格重建性能。
基于深度學(xué)習(xí)的三維重建方法近些年發(fā)展迅速,應(yīng)用比較廣泛。但是該方法使用的數(shù)據(jù)集較少,數(shù)據(jù)集的增加會(huì)使得學(xué)習(xí)的能力更強(qiáng);點(diǎn)云和網(wǎng)格的表示形式是不規(guī)范的,不能較好地直接應(yīng)用到深度學(xué)習(xí)中。
根據(jù)三維重建的技術(shù)原理,對非接觸式三維重建技術(shù)進(jìn)行了介紹,分析了各種方法的優(yōu)缺點(diǎn)和適用范圍。
飛行時(shí)間法不對圖像進(jìn)行分析,重建速度較快,可以實(shí)現(xiàn)實(shí)時(shí)重建。但是容易受外界光照的影響。目前主要是利用TOF相機(jī)進(jìn)行三維重建,可以通過降低誤差來提高三維重建的精度。
點(diǎn)式結(jié)構(gòu)光算法簡單、重建速度快,但是該方法通過逐點(diǎn)計(jì)算目標(biāo)物體表面的深度信息,重建的效率較低,適用于小范圍三維重建。
線式結(jié)構(gòu)光使用線性光源,與點(diǎn)式結(jié)構(gòu)光相比,重建效率較高。適用于小范圍三維重建。
面式結(jié)構(gòu)光適用于小范圍三維重建,投射圖案的編碼方式是影響三維重建精度和效率的重要因素,可以通過改善編碼方式來體改重建的精度。
傅里葉變換輪廓術(shù)可以通過一副圖像獲取三維信息,重建速度快且能夠?qū)崿F(xiàn)實(shí)時(shí)重建,重建的范圍較大,但是物體表面的反射系數(shù)對其影響較大,重建精度不高。
相位測量輪廓術(shù)使用多幅圖像進(jìn)行三維重建,獲得的三維信息較為豐富,重建范圍較廣可以用于工業(yè)測量領(lǐng)域。
明暗恢復(fù)形狀法可以根據(jù)單幅圖像獲得目標(biāo)物體的三維信息,重建速度較快,但是該方法對光照較為敏感,不適用于室外環(huán)境。
光度立體視覺法使用多個(gè)光源采集多幅圖像,獲得的三維數(shù)據(jù)比較豐富,但是在現(xiàn)實(shí)中,目標(biāo)物體表面比較復(fù)雜,其重建的準(zhǔn)確性依賴于反射模型。同時(shí)對光照較為敏感,不適用于室外重建。
紋理恢復(fù)形狀法通過紋理信息來獲得目標(biāo)物體的三維信息,對外界光源和噪聲不敏感,但是對弱紋理或者無紋理的物體重建效果不好。
輪廓恢復(fù)形狀法的方法原理較為簡單,只通過圖像的輪廓獲取目標(biāo)物體的三維信息,圖像的數(shù)量與重建的精度成正比,但是會(huì)增加計(jì)算量,降低重建速度。
焦點(diǎn)恢復(fù)形狀法對外界光源不敏感,與圖像的清晰度和相機(jī)的光圈、焦距有關(guān),需要設(shè)置相機(jī)的參數(shù)使得拍攝圖像的清晰度更好。
運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)法使用單目相機(jī)從多個(gè)視角采集圖像進(jìn)行三維重建,方法簡單,獲得三維數(shù)據(jù)較多,重建結(jié)果比較精確。但是會(huì)導(dǎo)致計(jì)算量增大,三維重建速度較慢。同時(shí)點(diǎn)云配準(zhǔn)也是該方法的難點(diǎn),可以從點(diǎn)云配準(zhǔn)入手提高三維重建的準(zhǔn)確性。
雙目視覺三維重建適用范圍較廣,方法比較成熟,最關(guān)鍵的步驟是立體匹配,其結(jié)果的準(zhǔn)確性決定了三維重建的精度,通過改進(jìn)立體匹配可以提高重建的效果。
多目視覺三維重建得到目標(biāo)物體的多視角三維信息,通過點(diǎn)云對齊獲得物體的整體三維信息,方法簡單且重建的精度較高,但是多目視覺三維重建需要處理多張圖像,導(dǎo)致運(yùn)算復(fù)雜,重建速度較慢。可以通過改善點(diǎn)云對齊的方式提高兩相同點(diǎn)云的配準(zhǔn),進(jìn)而提高三維重建的精度。
上述方法可以歸結(jié)為傳統(tǒng)三維重建技術(shù),光照和噪聲均會(huì)對降低研究對象的三維重建準(zhǔn)確度,它們的重建效果在很大程度上依賴于圖像的內(nèi)容和質(zhì)量,以及精確校準(zhǔn)的相機(jī),并且有的方法需要添加先驗(yàn)條件,這也制約了三維重建技術(shù)的發(fā)展。
基于深度學(xué)習(xí)的三維重建技術(shù)的成功很大程度上取決于訓(xùn)練數(shù)據(jù)的可用性,但是圖像和三維數(shù)據(jù)公開數(shù)據(jù)集的估摸較小,并且真實(shí)場景數(shù)據(jù)集中包含的二維圖像和三維模型數(shù)量太少,難以利用深度學(xué)習(xí)的優(yōu)勢進(jìn)行訓(xùn)練。
基于深度學(xué)習(xí)的三維重建技術(shù)可以克服制約傳統(tǒng)三維重建技術(shù)發(fā)展的瓶頸,因此未來的研究方向可以通過將傳統(tǒng)三維重建和基于深度學(xué)習(xí)的三維重建融合進(jìn)行開展。目前大部分三維重建技術(shù)針對的是靜態(tài)物體或者是小規(guī)模物體,對于動(dòng)態(tài)物體和大規(guī)模場景等的重建問題無法較好地實(shí)現(xiàn),這也是未來的研究熱點(diǎn)。