馬東嶺石壯吳鼎輝毛力波
(山東建筑大學 測繪地理信息學院,山東 濟南250101)
實景三維模型可以細致地還原城市面貌,在城市數(shù)字化、智能化發(fā)展方面具有不可替代的作用,伴隨著我國城市智慧化建設的推進,已經(jīng)成為了智慧城市空間數(shù)據(jù)體系的重要組成部分[1]。 借助于無人機平臺,傾斜攝影測量技術可以快速采集影像數(shù)據(jù),實現(xiàn)全自動的實景三維建模,降低了三維建模的經(jīng)濟成本和技術要求[2-4]。 從無人機傾斜影像到三維模型的技術流程大致分為多視影像匹配、多視影像定向、密集匹配、點云構(gòu)網(wǎng)和紋理映射[5]。 其中,密集匹配是一種在具有重疊度的二維影像中逐像素地匹配,并盡量尋找最多同名像點的技術[6],是二維影像生成三維點云的關鍵技術之一,其效率和精度直接影響三維重建的效率和三維模型的精度。
根據(jù)求解視差所采取匹配策略的不同,影像密集匹配方法可以分為全局匹配和局部匹配方法,然而這兩種方法一般難以兼顧精度和速度。HIRSCHMULLER[7]提出的半全局匹配(Semi-Global Matching,SGM)算法是一種介于局部匹配和全局匹配之間的密集匹配算法,僅在像素點8 個方向做匹配代價計算,進行能量聚集,而且在每個方向上能量聚集時,均是通過動態(tài)規(guī)劃的方式完成,因此能同時兼顧計算效率和匹配精度,成為目前密集匹配的首選算法。 然而,無人機傾斜攝影一般從正下方垂直角度、前后左右4 個傾斜角度搭載5 臺傳感器[8],采集的影像數(shù)據(jù)具有基數(shù)多、視角變化大、傾斜遮擋較多等特點[9]。 在使用傳統(tǒng)半全局密集匹配算法進行密集匹配時,由于其動態(tài)規(guī)劃路徑是一維的,像素在一維的路徑上進行代價累積計算時,只與在選定方向上的像素有關聯(lián),因此在視角變化比較大、地物被遮擋、視角單一及重復紋理處容易產(chǎn)生錯誤的匹配。 另外,隨著能量聚集范圍的擴大,伴隨著錯誤匹配的累積,密集匹配的計算效率也會不如剛開始時的效率高[10]。 因此,直接應用傳統(tǒng)的半全局算法進行傾斜攝影三維重建存在一定的困難。
針對該問題,諸多學者提出了相關改進方法。陳智君等[11]提出區(qū)域生長的SGM 算法,通過視差控制點修正動態(tài)規(guī)劃路徑,減少了誤匹配,但是較依賴區(qū)域生長匹配的范圍和精度。 李珊等[12]提出將絕對差和Census 算法融合替代單一匹配代價來改進SGM 算法,但是融合的算法會增加計算的復雜度。 吳軍等[13]提出融合尺度不變特征轉(zhuǎn)換(Scaleinvariant feature transform,SIFT)和SGM 的匹配方法,使用SIFT 優(yōu)化路徑減少誤匹配,但是機載傾斜影像所固有的多視圖約束尚未得到充分利用。ROTHERMEL 等[14]提出tSGM 算法,采用由粗到精的金字塔逐層優(yōu)化匹配策略,利用上層匹配結(jié)果動態(tài)地尋找每個像素的視差搜索范圍,減少了密集匹配的時間,同時提高了匹配的準確度。 還有學者在地形高差較大的城區(qū)使用tSGM 算法獲取高精度的數(shù)字表面模型(Digital Surface Model,DSM),在計算效率和內(nèi)存開銷方面也具有較好的平衡[15-16]。
文章針對無人機傾斜影像在角度變化大、遮擋處容易產(chǎn)生誤匹配以及計算效率大幅度降低的問題,在無人機傾斜影像多視密集匹配階段采用多級分層匹配思想,使用低分辨率影像的匹配結(jié)果,動態(tài)限定高分辨率影像上待匹配像素的視差搜索范圍,即對SGM 的動態(tài)規(guī)劃路徑進行像素約束,通過增加有效匹配點的密度和減少匹配過程中的內(nèi)存開銷與計算時間,進一步提高傾斜影像三維重建的精度和效率。
在獲取傾斜影像數(shù)據(jù)后,通常進行空中加密、密集匹配、表面模型構(gòu)網(wǎng)和紋理映射等過程,最終得到實景三維重建模型。 為解決傳統(tǒng)SGM 算法在密集匹配階段存在的問題,文章在密集匹配階段采用逐層優(yōu)化SGM 策略,通過低分辨率影像對的匹配結(jié)果限制高分辨率影像匹配視差的搜索界限,在動態(tài)限定的搜索范圍內(nèi)尋找有效視差并自適應計算匹配代價。 其基本的流程如圖1 所示。
圖1 基于逐層優(yōu)化SGM 的傾斜影像三維重建流程圖
無人機傾斜攝影測量的相機安置方式通常采用十字形,即由一個垂直安置的相機和4 個45°傾斜安置的相機構(gòu)成。 在5 個角度一次曝光從而獲得具有一定重疊度的5 張照片,如圖2 所示。
圖2 無人機傾斜影像獲取方式圖
在獲取傾斜影像數(shù)據(jù)后,先要進行空三加密??杖用苁歉鶕?jù)無人機傾斜影像的機載定位定向系統(tǒng)(Position and Orientation System,POS)數(shù)據(jù)解算傾斜影像的外方位元素的過程。 通過特征點提取、核線約束等特征點穩(wěn)健匹配等關鍵算法,得到同名點匹配結(jié)果,同時構(gòu)建連接點、連接線、POS 數(shù)據(jù)的區(qū)域網(wǎng)平差誤差方程,從而解算全部傾斜影像的空中姿態(tài)和拍攝位置,進而求得影像同名點的地面測量坐標。
密集匹配是在多視影像定向的基礎上求解地表上地物密集同名像點位置的過程。 在傾斜攝影中,通過對相鄰影像進行密集匹配可以獲得視差圖,利用視差圖可以計算像點的深度,進而獲得地物的三維點云。 由于SGM 能得到與全局匹配算法相媲美的結(jié)果,并且在匹配時間上優(yōu)于全局算法,以及匹配精度優(yōu)于局部匹配算法,成為目前密集匹配的首選。
1.2.1 傳統(tǒng)半全局密集匹配
傳統(tǒng)的半全局密集匹配算法的思想是:(1) 建立全局能量函數(shù);(2) 最小化該能量函數(shù);(3) 在能量函數(shù)達到極小值時獲取最優(yōu)視差。 全局能量函數(shù)E(D)可以看做由所有像素的匹配代價和視差優(yōu)化平滑項組成[7],由式(1)表示為
式中等號右側(cè)首項為所有像素點的匹配代價之和,C(p,Dp) 為左影像上像素點p視差為Dp時與右影像點的匹配代價。 其余兩項是視差優(yōu)化平滑項,其中T[] 表示一個判斷函數(shù),在像點p臨近視差差值等于1 的像素點q增加懲罰數(shù)P1,在臨近視差差值>1 的像素點q給予懲罰數(shù)P2。
匹配代價由代價矩陣組成,代價矩陣維度為r ×c ×(dmax- dmin),其中r為影像行數(shù)、c為影像列數(shù)、dmax和dmin分別為視差搜索的上、下界。 代價矩陣計算后,對代價矩陣上的每個點從8 個方向進行代價積聚,如圖3 所示。
圖3 視差空間匹配代價聚合過程圖
像素點p在匹配移動方向為r時的積聚函數(shù)由式(2)表示為
式中等號右側(cè)的第1 項為像素點p視差為d時的當前代價;第2 項為從{}中的候選值中選取在r方向上的前一個像素代價最小值;第3 項為防止數(shù)字過大設置的懲罰系數(shù)。 將所有方向上的代價積聚值進行求和后的代價積聚求和公式由式(3)表示為
完成代價矩陣的積聚后,在視差搜索范圍內(nèi)利用贏家通吃(Winner Take All,WTA)算法,每個像素選擇最小聚合代價值所對應的視差值作為最優(yōu)視差,也是最終視差。
1.2.2 逐層優(yōu)化半全局匹配
逐層優(yōu)化SGM 將整個場景進行分層降采樣,低分辨率影像上的匹配結(jié)果不僅用于初始化和改善互信息匹配成本,而且還用于限制下一層影像上的視差搜索界限,并逐步優(yōu)化到原始層。 通過動態(tài)限定匹配通道上的視差搜索范圍的方式,確定高分辨率影像等級的互信息匹配成本,進而實現(xiàn)由粗到精的匹配。
在計算視差搜索范圍時,在待計算像素X1周圍窗口中搜索視差最大值dmax、最小值dmin,判斷最大、最小值差值是否超過最大預設范圍。 如果在最大預設范圍內(nèi),上邊界范圍設置為dmax-X1+2,下邊界范圍設置為X1-dmin+2。 如果超出了預設范圍,上邊界范圍設置為R[(dmax- X1)/(dmax- dmin)] ,下邊界范圍設置為R[(X1- dmin)/(dmax- dmin)] 。 在tSGM 算法中[14],代價聚集需要從代價矩陣上每個點周圍8 個方向進行代價聚集,顧及視差變化、重復紋理及計算效率,將搜索窗口的大小預設為7 pixel×7 pixel。 如果匹配成功,得到最小和最大的視差;如果未成功,搜素窗口變大到31 pixel×31 pixel,并繼續(xù)搜尋有效視差和最大、最小視差。 此外,使用搜索窗口包含的視差的平均值對當前金字塔級別的視差進行更新,并將有效像素和無效像素的最大視差搜索范圍分別限于16 pixel 和32 pixel。 使用上面得到的最大值和最小值定義下一個金字塔圖像的視差搜尋范圍,在32 個像素內(nèi)確定有效值,因此把搜索范圍設置為[2×(X1+d - dmin),2×(X1+d +dmax)] 。 在計算視差范圍時,匹配代價矩陣用l × w×(dmax-dmin)表示,其中l(wèi)為圖像行數(shù)、w為圖像的列數(shù)。 視差搜尋范圍的減少簡化了匹配代價結(jié)構(gòu),使用傳統(tǒng)的SGM 和逐層優(yōu)化SGM 的代價結(jié)構(gòu)對比示意圖如圖4 所示。
圖4 傳統(tǒng)SGM 和逐層優(yōu)化SGM 的代價結(jié)構(gòu)對比圖
當處理最高的金字塔等級時,由于沒有比這更高的圖層,因此沒有初始視差估計值可用。 在這種情況下,把沿水平核線匹配圖像中的所有像素作為潛在的對像,通過視差搜索范圍的自適應計算匹配代價。 在針對不能匹配的金字塔等級的圖像時,交換基本圖像和匹配圖像的位置,對估計的差異值進行一致化性檢查。 另外,通過分布式算法過濾斑點,在視差圖的邊緣處預設最大值。 如果檢測到邊緣,使用低通平滑;如果未檢測到邊緣,則需要強制增強平滑。 在影像重疊區(qū)域內(nèi)執(zhí)行匹配時,像素從左右圖像邊界逐列傳遞到圖像中心,直到檢測到第一個成功匹配的像素。
在獲取測區(qū)地物的密集點云后,三維模型重建最后進行的是表面模型構(gòu)網(wǎng)和紋理映射。 構(gòu)網(wǎng)是將密集匹配生成帶有法向量的點云進行空間劃分、過濾,將離散的點構(gòu)建成為不規(guī)則三角網(wǎng),完成從點到面、從離散的點云到三角網(wǎng)模型的轉(zhuǎn)變,此時模型沒有色彩,稱為白膜。 通過紋理映射建立彩色紋理圖像與三角網(wǎng)結(jié)構(gòu)的對應關系,為模型貼上紋理,完成三維模型重建。
為驗證逐層優(yōu)化SGM 在密集匹配和傾斜影像三維重建中的有效性,選取傾斜影像像對和傾斜影像數(shù)據(jù)集進行實驗與分析。 第一組實驗使用大疆精靈4P 無人機,鏡頭傾斜角度為45°,在距地面70 m 處采集山東建筑大學校門傾斜影像像對,分別使用傳統(tǒng)SGM 和逐層優(yōu)化SGM 進行密集匹配。 第二組數(shù)據(jù)使用山東建筑大學逸夫樓和濟南市某山村的傾斜影像數(shù)據(jù)集,在兩種匹配方法的結(jié)果上分別進行三維重建,對比分析重建出的建筑物、草地、林地區(qū)域。
使用大疆精靈4P 無人機采集山東建筑大學逸夫樓傾斜影像數(shù)據(jù),如圖5 所示,影像數(shù)量為247 張。 無人機的云臺角度為45°,分別從前后左右等方向進行拍照,航帶高度為70 m,單幅影像的像幅大小為5 472 pixel×3 648 pixel。 第二組數(shù)據(jù)采集方式不變,無人機為大疆精靈4RTK,區(qū)域內(nèi)共布設6 個控制點,組內(nèi)影像數(shù)量為470 張,航帶高度為120 m,單幅影像的像幅大小為4 864 pixel×3 648 pixel。 第二組數(shù)據(jù)的三維重建流程為:(1) 獲取無人機傾斜影像后,空三加密;(2) 在密集匹配階段,使用軟件SURE 提供的逐層優(yōu)化SGM 策略,完成影像金字塔的構(gòu)建、動態(tài)限定搜索范圍、有效視差尋找及匹配代價的自適應計算,進而完成無人機傾斜影像的密集匹配,基于密集匹配成果,繼續(xù)使用該軟件對無人機傾斜影像的三維點云進行構(gòu)網(wǎng)和紋理映射;(3) 得到實景三維模型。
實驗使用的硬件平臺為臺式機,系統(tǒng)為視窗Windows 10 64 位操作系統(tǒng),中央處理器為英特爾Intel i7-7700k、主頻為3.6 GHz、內(nèi)存為16 G、顯卡為英特爾Nvidia Quadro P600。 對兩組實驗數(shù)據(jù)結(jié)果均進行定性分析,分別針對第一組數(shù)據(jù)的點云質(zhì)量和第二組數(shù)據(jù)的模型精度進行定量分析。
使用逐層優(yōu)化SGM 對山東建筑大學校門的傾斜影像像對進行密集匹配實驗,結(jié)果如圖6 所示。由于使用了逐層優(yōu)化策略,尋找到了更多的有效視差,因此在生成的密集匹配深度圖中包含了更多的地物和地貌信息,細節(jié)部分如圖6(c)和(d)中的1 處所示。 在視差圖轉(zhuǎn)換物方點云的過程中,更多的有效視差信息可以交會出更多的有效點云,進而可以提高物方點云的有效密度。 而由于錯誤的匹配視差會生成錯誤物方點云,如果沒有及時處理,則會影響后續(xù)三維重建的精細化程度,因此僅有較高的有效點云密度是不夠的,還要提高有效匹配點云的準確度。 逐層優(yōu)化SGM 在有效的搜索范圍內(nèi)進行匹配代價的計算,可使匹配結(jié)果在錯誤匹配的地方得到改善,如圖6(c)和(d)中的2 處所示。 除此之外,此方法在縮小初始視差搜索范圍的同時,在代價矩陣和路徑積聚時的計算時間也會相應減少(見表1),相較于傳統(tǒng)SGM 時間的12.8 s,改進后的逐層優(yōu)化SGM 的最終匹配時間是8.64 s,匹配效率提高了30%。
圖6 無人機傾斜影像像對SGM 結(jié)果圖
表1 計算時間對比表
2.2.1 匹配點云實驗及分析
采用傳統(tǒng)的和逐層優(yōu)化SGM 對逸夫樓數(shù)據(jù)進行密集匹配,兩種方法生成的點云效果如圖7 所示,匹配點云數(shù)量和匹配時間見表2。 由于在金字塔影像間動態(tài)限定搜尋范圍尋找有效誤差,因此減少了由傾斜影像視角變化較大而產(chǎn)生的錯誤點。 由表2可以看出,在相同的空三結(jié)果下,由于逐層優(yōu)化SGM 比傳統(tǒng)SGM 匹配出的點云數(shù)量有所減少,因此在總體匹配時間上降低了22%,而且由圖7 可以看出,重點建筑上并沒有出現(xiàn)點云缺失,點云的總體質(zhì)量并未下降。
圖7 無人機傾斜影像像組數(shù)據(jù)匹配點云效果對比圖
表2 點云匹配數(shù)量和時間對比表
為驗證逐層優(yōu)化SGM 的密集點云精度,采用均方根誤差(Root Mean Square Error,RMSE)作為評價指標。 在點云精度的對比實驗中,使用最可依賴值替代真值,通過計算匹配出點的位置與最可依賴值的位置間的偏差,對比匹配出的點云的離散程度。RMSE 值越小點云離散程度越小,精度越高。 選取相同區(qū)域相對平整的正射地面和豎立墻面進行精度對比實驗,無人機傾斜影像匹配點云部分對比如圖8 所示。 基于逐層優(yōu)化SGM,高頻信息并不會傳遞到較低一級的金字塔影像上,對于重復紋理、弱紋理及紋理突變區(qū)域具有更好的穩(wěn)定性。 因此,由圖8(b)可以看到,相較于傳統(tǒng)SGM,基于逐層優(yōu)化的SGM 在地面區(qū)域以及紋理比較單一的墻面區(qū)域均產(chǎn)生了相對較多的平整點云。
圖8 無人機傾斜影像匹配地面點云部分對比圖
選取投影坐標系下地面點z值和墻面點y值的平均值作為最可依賴值,地面和墻面點的兩種算法的RMSE 結(jié)果見表3,點云數(shù)量和RMSE 的變化趨勢如圖9 所示。 可以看出,在地面上基于逐層優(yōu)化的SGM不僅比傳統(tǒng)SGM 的數(shù)量多,而且RMSE 值更小,精度更好。 而在墻面上,雖然取得了一樣的RMSE 值,但是基于逐層優(yōu)化SGM 的點云數(shù)量要高于傳統(tǒng)SGM。在點云穩(wěn)健的前提下匹配出了更多的可靠點,而更多的可靠點將會在點云融合構(gòu)網(wǎng)過程中增強網(wǎng)的密度,提高網(wǎng)格面模型(Mesh)的精細化程度。 因此,逐層優(yōu)化SGM 在匹配精度上優(yōu)于傳統(tǒng)SGM。
表3 相同區(qū)域內(nèi)的地面和墻面的RMSE 表
圖9 不同匹配算法的點云精度對比圖
2.2.2 無人機傾斜影像三維模型實驗及分析
基于傳統(tǒng)SGM 和逐層優(yōu)化SGM 生成的點云構(gòu)建的三維模型整體及細節(jié)如圖10 所示。 雖然整體差異不大,然而在細節(jié)處,由于逐層優(yōu)化SGM 動態(tài)地限定了搜索范圍,自適應地計算了匹配代價,對于重復紋理匹配效果較好。 因此,較傳統(tǒng)SGM,其生成的建筑三維模型在建筑表面能夠更加清晰的顯示棱角和邊線,如圖10(c)和(d)所示。 由于匹配出了更多的可靠點參與點云構(gòu)網(wǎng),所以構(gòu)網(wǎng)后的Mesh在一些細節(jié)處表現(xiàn)更好,如墻角線的結(jié)構(gòu)更加豎直,如圖10(d)中的1 處所示。 構(gòu)網(wǎng)緊密的話,紋理映射的效果也會得到增強,如圖10(d)中的2 處所示,在墻角線處,基于逐層優(yōu)化SGM 重建出的Mesh 比基于傳統(tǒng)SGM 重建出的更加筆直,重建效果更好。對擁有較多建筑物的城區(qū)進行區(qū)域三維重建時,使用逐層優(yōu)化SGM 匹配傾斜影像,不僅能在更短的時間內(nèi)匹配出更多的可靠點,加快三維重建的速度,而且更多的可靠點能夠構(gòu)建出更密的網(wǎng)格,進而提高建筑物平面及立面的精細化程度。 此外,在后續(xù)應用三維模型進行三維測圖時,還能夠提高人工目視采集房屋要素的準確程度。
圖10 逸夫樓三維重建模型對比圖
2.3.1 匹配點云實驗及分析
采用傳統(tǒng)的和逐層優(yōu)化的SGM 對第二組數(shù)據(jù)進行密集匹配,生成的點云效果對比圖如圖11 所示。 由于在金字塔影像間動態(tài)限定搜尋范圍尋找有效誤差,當處理最高的金字塔等級時,沒有初始視差估計值可用,因此在邊界處的點云處理不及傳統(tǒng)半全局匹配點云。 點云匹配數(shù)量和時間對比見表4,可以看到,逐層優(yōu)化SGM 的匹配時間降低了33%。雖然匹配時間受到一些邊界點云影像的影響,但從整體上匹配效率得到了提高,而且在三維重建項目需要的核心區(qū)域,點云的質(zhì)量并沒有降低。 對于較大區(qū)域的三維重建項目,由于密集匹配時間得到縮短,整個三維重建的時間相應也會得到縮短,因此相同的集群配置可以在相同的時間進行更多的三維重建項目,進而降低了單個三維重建項目的成本。
圖11 無人機傾斜影像像組數(shù)據(jù)匹配的山村特點效果對比圖
表4 點云匹配數(shù)量和時間對比表
2.3.2 三維模型實驗及分析
兩種匹配策略生成的點云構(gòu)建的三維模型整體及細節(jié)如圖12 所示。 雖然直觀的觀看圖12(a)和(b),二者差異并不大,但是通過將模型放大查看建筑物的內(nèi)部和平面細節(jié)可以看出, 由于傳統(tǒng)SGM存在誤匹配,構(gòu)建的三維模型會出現(xiàn)紋理映射錯誤,如圖12(c)所示。 而基于逐層優(yōu)化的SGM,由于匹配出了更多的可靠點參與點云構(gòu)網(wǎng),因而構(gòu)建的Mesh 在一些細節(jié)處表現(xiàn)更好,如圖12(d)所示。 此外,在遮擋物較少的道路、裸露巖地和草地等區(qū)域,由于逐層優(yōu)化SGM 是通過動態(tài)限定搜索范圍尋找有效視差,能夠減少錯誤匹配點,因此構(gòu)網(wǎng)后的Mesh 擁有更高的精細化程度,從而使得根據(jù)三維模型糾正正射影像得到的真正射影像精度變得更高。然而,相較于建筑物與地面區(qū)域,對林木區(qū)域進行三維重建時,由于逐層優(yōu)化匹配策略匹配出的有效點云較少,因此構(gòu)建的Mesh 的精細化程度相應有所降低。
圖12 山村三維重建模型對比圖
為進一步定量地評價密集匹配策略重建出的三維模型的精度,依據(jù)CH/T 9015—2012《三維地理信息模型數(shù)據(jù)產(chǎn)品規(guī)范》[17],在航測區(qū)域內(nèi)均勻布設10 個特征點作為檢查點,將全球定位系統(tǒng)—實時動態(tài)(Global Positioning System-Real Time Kinematic,GPS-RTK)測量出的坐標作為真實值,以三維模型上采集的坐標作為計算值。 高程檢查點精度分析結(jié)果見表5。 三維模型的平面中誤差為0.077 m,高程中誤差為0.137 m。 在三維模型重建密集匹配效率提高了33%的前提下,基于逐層優(yōu)化SGM 策略依舊滿足1∶500(外業(yè)調(diào)繪)平面精度0.3 m 和高程精度0.5 m 的要求。
表5 三維模型檢查點精度統(tǒng)計表 單位:m
文章在無人機傾斜攝影三維重建密集匹配階段采用逐層優(yōu)化SGM,使用低分辨率影像的匹配結(jié)果動態(tài)限定了高分辨率影像上待匹配像素的視差搜索范圍,并像素約束了傳統(tǒng)SGM 的動態(tài)規(guī)劃路徑,自適應的計算匹配代價,并根據(jù)密集匹配成果視差圖進行三維重建。 主要結(jié)論如下:
(1) 相較于傳統(tǒng)的SGM,采用逐層優(yōu)化SGM 進行像對匹配時,在減少無人機傾斜影像中地物遮擋、視差變化較大處的錯誤匹配的同時,密集匹配效率提高了30%。
(2) 基于逐層優(yōu)化的SGM 在地面區(qū)域以及紋理比較單一的區(qū)域能夠產(chǎn)生相對較多的平整點云,在三維重建過程中能夠構(gòu)建出更密集的Mesh 模型,提高三維模型重建的精細化程度。
(3) 基于逐層優(yōu)化SGM 進行三維重建項目時,密集匹配效率能夠提高22%~33%,繼而能夠提高三維重建的效率,降低三維重建的成本;同時,在建筑物和相對平坦的道路、草地等區(qū)域擁有更好的三維重建效果,而在林木及測區(qū)邊緣區(qū)域的三維重建效果相對有所降低。