楊阿華, 楊阿鋒, 張強, 常鑫
(1.北京跟蹤與通信技術研究所, 北京 100094; 2.杭州電子科技大學通信工程學院, 杭州 310018)
當前,三維物體、場景重建主要有主動和被動兩種方式[1-2]。其中,主動方式采用主動傳感器設備(如激光雷達)感知物體表面的三維信息,由獲取的三維數據經過一系列數據后處理操作,達到重建場景三維結構的目的。此種方式精度高,效率較高,但需要較為昂貴的測量設備,數據獲取過程較為繁瑣,若想獲得具有照片真實感的虛擬三維模型,則需要在采集三維信息的同時采集圖像信息,在數據后處理時則涉及點云與圖像的配準問題[3-4]。被動方式采用圖像傳感器獲取物體表面的圖像信息,根據雙目立體視覺原理,由具有一定視差的二維圖像對恢復出物體表面的三維(深度)信息。此種方式僅需廉價的普通相機,對目標的形狀、尺寸沒有特殊要求,數據獲取簡單、易行,可以生成具有照片真實感的三維模型和場景。但其精度一般較前者要低,且數據后處理過程較為復雜、耗時,對于紋理單一或無紋理的圖像區域,則無法獲取準確的三維信息。
雖然主動三維掃描在很多應用領域已經成為獲取三維信息的重要手段,但基于圖像的三維建模仍然是最經濟、靈活、易行和廣泛使用的方法。
基于圖像重建三維物體、場景和地表的關鍵是同名點稠密匹配,精確、稠密的同名點是獲取高精度三維信息的基礎。稠密匹配廣泛應用于物體精細重建、真實感場景重建和數字表面模型(digital surface model,DSM)及真數字正射影像(true digital ortho map,TDOM)的生成。由于圖像色彩偏差、圖像形變、圖像遮擋、無紋理或弱紋理、重復紋理等問題,導致圖像稠密匹配成為一項有挑戰的任務。若能實現同名點的準確、稠密和高效匹配,則解決了基于圖像的三維重建中精度、效率較低的問題。
傳統的圖像匹配方法分為基于特征的方法和基于影像相關的方法[5]?;谔卣鞯姆椒ň群蜏蚀_率高,但只針對圖像中的角點、線、邊緣等特征顯著區域,因此僅能獲取稀疏的匹配點集,且單點計算開銷較影像相關方法高很多,一般用來為稠密匹配提供種子點或約束條件[6];基于影像相關的方法由于計算量較大,效率較低,且在紋理單一區域具有自相似性,容易產生誤匹配,從而限制了其使用。此外,傳統稠密匹配方法或者要求待匹配影像對的基線較短,或者需要多視圖約束[7],以提高匹配的可靠性,一定程度限制了其使用。
文獻[8]提出了一種基于區域生長的稠密匹配方法,該方法以圖像特征點匹配作為初始種子,以零均值歸一化互相關系數和雙視幾何約束作為生長過程中圖像對應點的匹配標準,在整幅圖像上進行匹配生長,采取視差梯度約束和置信度約束進行匹配優化,獲得稠密匹配點。文獻[9]將特征匹配結果作為匹配基元,構建 Delaunay 三角網,利用 Delaunay 三角網間的同名三角單元的單應矩陣關系對已有匹配結果進行加密,最后利用最小二乘匹配提高匹配精度,但未達到逐像素的匹配密度。文獻[10]同樣采用稀疏同名點建立三角網,以描述符與馬氏距離作為兩種影響因素,通過計算目標點與候選點的匹配得分來確定匹配點,較好地解決了傳統算法對于明暗變換和幾何變形影像適應性較差的問題,但該方法僅能獲取稀疏匹配點凸殼所圍區域內的同名點,且匹配效率較低。文獻[11]提出了一種結合密度聚類平滑約束與三角網等比例剖分的像對稠密匹配方法,該方法首先基于稀疏同名點構建局部內點集,基于內點集構建三角網,再利用三角網提純內點集,最后用提純后的內點集計算稠密匹配點位置,該方法能避免由于局部外點造成仿射變換矩陣估計不準確進而影響稠密匹配準確率的情況,但匹配的精度較低,且對于遮擋引起的誤匹配無法消除。文獻[12]提出了一種基于局部光照一致性約束的準稠密匹配方法,該方法將已知匹配點作為種子點,根據種子點及其鄰域提供的影像約束進行匹配擴散,從而得到種子點鄰域內的匹配點,進而實現圖像之間的準稠密匹配。文獻[13]比較了基于深度學習的影像匹配和傳統影像匹配方法,結果表明采用深度學習方法訓練的匹配模型泛化遷移能力較差,需要針對特定數據集訓練特定模型,對訓練數據要求高,且時間開銷較大,推廣應用優勢不明顯。因此,傳統的影像匹配方法仍然是基于影像的三維重建的主要實現途徑。
現提出一種基于傾斜校正和視差估計的遙感影像同名點稠密匹配方法,該方法基于核線影像進行視差估計和搜索匹配,同時充分利用已有信息來優化搜索過程,達到減少計算量、增加匹配約束的效果,最終實現提高匹配效率和降低誤匹配的目的。
遙感相機獲取的原始影像不可避免地存在旋轉、縮放及透視變形,所以在以匹配點對為中心的左、右影像窗口內,各對應位置的像素并不是完全對準,而是有一定的相對變形,對于近景、寬基線及視角變化較大的攝影情況,變形更為明顯,這種變形可以用仿射變換來近似[14]。理想的解決方案是首先求解兩個影像窗口的仿射變換參數,再根據該變換參數重采樣目標影像塊,從而生成相對原始影像塊無變形的目標影像塊,最后再求原始與無變形影像塊間的相關系數,以確定最佳的匹配點。然而上述過程存在2個問題:一是原始與目標影像塊間的仿射變換參數難于獲取;二是針對每個目標影像窗口的重采樣開銷巨大,將極大地降低匹配效率。因此這種理想方案不具可操作性。
針對上述2個問題,本文方法通過傾斜校正處理,一次性生成幾乎無仿射變形的核線影像對,然后在核線影像上進行稠密匹配,既基本消除了仿射變形,又無需在每次相關匹配時對影像窗口反復進行重采樣,避免了重復計算,極大降低了計算量。
本文方法包括5個步驟,分別是:特征匹配、相對定向、核線影像生成、一維灰度相關匹配、最小二乘影像匹配,下面對各步驟所采用的方法進行介紹,其中重點介紹核線影像生成和一維灰度相關匹配。
Mikolajczyk等[15]對多種特征描述子的性能進行了評價,結果表明尺度不變特征變換(scale invariant feature transform,SIFT)[16]特征描述子具有最強的穩健性,因此,首先采用SIFT特征描述子提取左右圖像的特征點,然后進行特征匹配;采用隨機抽樣一致算法(random sample consensus,RANSAC)[17]算法,根據特征匹配點求解兩幅圖像的仿射變換關系,并剔除少量誤匹配點,最終獲得一定數量分布于整個重疊區的可靠同名像點,由左右影像構成一個立體模型。
基于左右影像間的同名點及相機內參數,通過相對定向直接解法[18],再結合光束法平差[19]優化,可以獲得立體模型的精確相對定向元素,即確定構成立體模型的兩個相機的相對位姿關系,亦即確定右相機坐標系相對于左相機坐標系的旋轉矩陣R和平移向量t。
為了生成核線影像,首先構造水平核線坐標系(下文簡稱核線坐標系),然后將左右傾斜影像校正為核線影像。
1.3.1 核線坐標系構建


最后,左核線坐標系的Z軸在左傾斜坐標系下的坐標為:Z=XY。
至此,左核線坐標系的三軸向量在左傾斜坐標系下的坐標已經求得,上述過程構造的是一個右手三維直角坐標系。
根據左核線坐標系,構造一個虛擬的左核線相機,該相機的像平面與左核線坐標系的XY平面平行,主光軸與左核線坐標系的Z軸平行,X、Y、Z三軸與左核線坐標系三軸平行。
構造了左核線坐標系后,將任一向量從左傾斜坐標系變換到左核線坐標系的旋轉變換矩陣為
(1)
右核線坐標系的三軸與左核線坐標系三軸平行,原點與右傾斜坐標系原點重合,類似的可以構造虛擬右核線相機。將任一向量從右傾斜坐標系變換到右核線坐標系的旋轉變換矩陣為
(2)
1.3.2 影像校正
以左相機對應的左影像為例,介紹將傾斜影像校正為核線影像的過程。

(3)

(4)
根據式(3)和式(4),可將左原始影像中任一像素映射到左核線影像,通過求逆亦可將左核線影像中任一像素映射到左原始影像;類似的,通過將式(4)中的Ml替換為Mr,可得右原始影像與右核線影像的映射關系。
具體校正過程為:首先將c′x、c′y設為0,采用式(3)與式(4)計算原始影像矩形4個頂點像素在核線影像中的坐標,從而得到覆蓋核線影像的最小矩形包圍盒;將c′x、c′y的值設置為包圍盒左下角的x、y坐標(即包圍盒的最小x、y坐標),從而使包圍盒的左下角與核線影像的左下角重合,同時將核線影像的寬高設置為包圍盒的寬高。根據式(3)和式(4),可得核線影像任一像素點在原始影像上的對應點坐標(該坐標為小數值),進而通過灰度重采樣從原始影像得到核線影像點的色彩值;遍歷核線影像全部像素點,最終生成經過校正的核線影像。圖1是位于相鄰航線的兩幅重疊影像經傾斜校正后的結果。

圖1 相鄰航線重疊影像傾斜校正結果Fig.1 Tilt correction results of overlapping images of adjacent airlines
灰度相關匹配基于校正后的核線影像,以保證左、右影像窗口間僅有x方向的較小透視變形。首先以三角形為單元估計左右影像的初始視差;對于左影像的任一待匹配點,根據視差值估計初始匹配點;然后在初始匹配點的鄰域內,通過灰度相關匹配搜索最佳匹配點。
1.4.1 視差估計
為了估計核線影像對的初始視差,首先采用式(4),將所有稀疏同名點的原始影像坐標轉為核線影像坐標;然后由稀疏點三角構網[20],根據每個三角形3個頂點在x和y方向的核線影像視差,在三角形內插值出核線影像每個像素的x和y視差。如圖2所示,p1(x1,y1)、p2(x2,y2)、p3(x3,y3)為三角形的3個頂點,對應的x視差分別為dx1、dx2、dx3,p(x,y)為三角形內一點,p12(x12,y)、p13(x13,y)為第y像素行與三角形兩邊P1P2、P1P3的交點。首先通過在y方向上線性插值求得點p12、p13的x視差dx12、dx13,即

圖2 三角形插值示意圖Fig.2 Sketch map of triangle interpolation
(5)
通過將式(5)中的視差換成對應點的x坐標,可求得點p12、p13的x坐標x12、x13。然后由點p12、p13的坐標在x方向上線性插值,即可求得p點的x視差dx,為
(6)
同理可求p點的y視差dy。
值得注意的是,理論上核線影像對中任意位置的y視差是固定的(理論值隨校正時采用的像主點列坐標c′y的不同而不同),但實際處理中發現,由于相機畸變系數的誤差及畸變的復雜性,生成的核線影像在y方向的視差并不固定,而是在理論值附近的若干個像素范圍內波動(此波動范圍隨畸變大小不同而變化)。因此,此處對y視差也進行插值,使視差的估算精度大大提高,進而提高了匹配的正確率。
1.4.2 相關匹配
采用規范化互相關(normalized cross correlation, NCC)[13]系數來度量兩個影像塊的相似程度,NCC系數對影像塊間的線性亮度變化魯棒。對于左右影像的兩個影像塊,其NCC系數ENCC的計算公式為
ENCC=
(7)

值得注意的是,對于彩色影像,應該分別計算各通道的灰度均值,并聯立全部顏色通道來計算互相關系數,對應的計算公式為
ENCC=
(8)

將匹配間隔設為m×n,即每隔m行、n列匹配一個同名點,間隔越小,密度越大,重建的精細程度越高,此值可根據實際場景的復雜程度來設置。對于左核線影像上任一待匹配點p1(x,y),根據該點處的視差估算其在右影像中的粗略匹配點為p2(x+dx,y+dy),并以該點為中心,在右影像第y+dy掃描行的[x+dx-r,x+dx+r]像素范圍內進行一維搜索匹配。需要說明的是,雖然1.4.1節提到y視差并不固定,但在搜索區域的小范圍內,y視差波動很小,故搜索時假設dy固定不變。由于粗匹配點p2的估算精度較高,因此搜索半徑r不必很大,這一方面減小了搜索范圍,提高了匹配效率,另一方面降低了誤匹配的概率,提高了匹配正確率。
對于每個候選匹配點,根據式(8)計算以該點為中心的目標影像塊(大小一般取11×11)與以p1為中心的源影像塊間的歸一化相關系數;從所有候選點中取相關系數最大的點,若該點的相關系數不小于t(t一般取0.7,避免遮擋導致的無對應點的情況,保證匹配的正確性),且該相關系數與次大相關系數之差大于某一間隔e(e一般取0.01,保證同名點具有一定的顯著性,提高置信度),則認為是最佳匹配點;否則剔除該點。
在搜索最佳點時,采用如下2個策略來提高匹配效率。
(1)一維搜索時,將搜索步長設為2,即不是遍歷[x+dx-r,x+dx+r]范圍內的每一個像素,而是每間隔一個求一次相關系數,從而使搜索量減半,進而達到提高匹配效率的目的。這樣做的合理性在于:由于搜索到的最佳匹配點都會采用最小二乘匹配進行微調,而最小二乘匹配的校正范圍可以達到2個像素[21],所以即使實際最佳匹配點為未被掃描的間隔像素,而搜索到的最佳位置為其鄰近像素,亦可通過最小二乘匹配來校正到實際的最佳位置,故無需逐點匹配。

此外,沿掃描線對匹配點加入了順序一致性約束,即對于左圖某一核線上的兩點p1、p2,對應的匹配點分別為p′1、p′2,由于p2位于p1的右邊,則p′2必位于p′1的右邊(從左向右掃描)。這樣的處理進一步增強了匹配的可靠性。
由于逐點搜索匹配僅能達到1個像素的匹配精度,所以最后采用最小二乘影像匹配[21]對搜索到的初始匹配點進行微調,使同名點達到亞像素級的匹配精度,以改善重建場景的視覺效果。由于最小二乘匹配能校正同名影像窗口的仿射變形,所以最終的相關系數應大于某一較大門檻(一般取0.9),才認為是正確的匹配點。
實驗所用機器的軟硬件配置如下:操作系統為64位windows10,處理器為AMD Ryzen 7 4800H,主頻2.9 GHz,內存8 G。
利用小型無人駕駛飛機對某一村莊進行俯視航拍,航高約為300 m,所用相機為佳能5DⅡ,圖像大小為5 616像素×3 744像素,全航區共拍攝了78(13幅×6航線)幅影像。
從上述數據中取一個立體像對,從左影像中均勻選取20個樣本點,確保樣本點覆蓋各類典型地物、且紋理較為豐富;人工拾取各樣本點在右影像的對應匹配點,拾取過程將影像放大8倍刺點,確保人工同名點達到較高精度。
對上述左影像樣本點分別采用累積絕對差方法(sum of absolute differences, SAD)[22-23],和本文方法自動匹配右影像同名點,比較自動同名點與人工同名點(真值)的位置誤差,結果如下。從表1可以看出,本文方法的各同名點位置誤差均小于SAD方法,平均位置誤差亦顯著小于SAD方法,表明本文方法的匹配精度要明顯優于SAD方法。

表1 使用SAD方法和本文方法的同名點位置誤差比較Table 1 Comparison of the position errors of corresponding points using SAD method and proposed method
分別采用SAD方法和本文方法對該像對執行稠密匹配,匹配間隔設為5×5。圖3是本文方法的匹配結果示意。表2是匹配耗時、最終點數、匹配點平均相關系數3項指標的統計結果,從表2中可以看出,本文方法的同名點數量較SAD方法要少,其原因是為了保證匹配的正確性,本文方法對部分不可靠的匹配點進行了剔除;本文方法的匹配耗時少于SAD方法,可見匹配效率得到了一定提高;本文

表2 使用SAD方法和本文方法的匹配統計結果比較Table 2 Comparison of matching statistical results using SAD method and proposed method

圖3 稠密匹配結果Fig.3 Dense matching results
方法的全部同名點歸一化相關系數均方值較傳統方法顯著提高,表明匹配準確性和精度明顯優于SAD方法。
取其中10個像對,分別用SAD和本文方法進行稠密匹配,圖4和圖5分別是各像對的匹配耗時、平均相關系數兩個指標的直方圖統計結果。從圖4和圖5可以看出,每個像對采用本文方法的匹配耗時和平均相關系數均優于SAD方法,進一步證明了本文方法在匹配效率和精度方面的優勢,同時也證明了本文方法的穩定性。

圖4 10個像對匹配耗時比較Fig.4 Comparison of matching time of 10 image pairs

圖5 10個像對平均相關系數比較Fig.5 Comparison of average correlation coefficients of 10 image pairs
由航區的全部影像通過特征匹配、相對定向共建立了64個立體像對模型,對這些立體像對進行稠密匹配,匹配間隔為4×4,每個像對提取的同名點數量為20多萬至70多萬個(根據場景的不同,匹配點數量有差異,因為對于紋理單一區域,很多點因可靠性低而被剔除),耗時約3.48 h。
通過三角測量[13]解算稠密點的空間坐標,得到稠密空間點云,圖6是某個像對模型對應的空間點云,對每個空間點進行了紋理映射;圖7是由稠密點云構網生成的三角網場景;圖8是在三角網地形上貼紋理后生成的真實感場景;圖9是拼接好的全景地形的正射視圖,與傳統的基于二維變換的航片拼接方法不同,此處的正射影像是根據精細三維模型通過正射校正生成,因此是真正射影像;圖10是用偽彩色表示的全景稠密深度圖(從紅色到藍色深度逐漸增加),從圖10可清晰地看到,與圖9影像相對應的地物(房屋等)輪廓,表明稠密深度圖達到了較高的精細程度。

圖6 空間點云Fig.6 Spatial point cloud

圖7 網格場景Fig.7 Mesh scene

圖8 紋理貼圖三維場景Fig.8 Texture map 3D scene

圖9 全景正射圖Fig.9 Panoramic DOM

圖10 全景偽彩色深度圖Fig.10 Panoramic pseudocolor depth map
提出了一種用于三維場景重建的航空遙感影像同名點稠密匹配方法。該方法以特征匹配同名點為基礎,首先生成核線影像,并估算核線影像對的初始視差;然后在核線影像上進行基于核線約束的一維灰度相關搜索匹配;最后對灰度相關匹配結果做最小二乘匹配,從而使同名點達到亞像素級匹配精度。實驗結果表明,本文方法可逐像素提取同名點,匹配的效率、精度和正確率均優于傳統方法,且具有很好的匹配穩定性。