袁修孝,袁 巍,2,許 殊,3,紀艷華
1. 武漢大學遙感信息工程學院,湖北 武漢 430079; 2. 東京大學空間信息科學中心,東京 柏市 277-6568; 3. 中國科學院空天信息創(chuàng)新研究院,北京 100094
航攝影像密集匹配是在獲得影像間的相對位置關(guān)系之后于重疊區(qū)域內(nèi)尋找每個像素同名像點的稠密影像匹配方法,是從二維航攝影像自動重建三維物體模型的最有效手段之一。由此生成的三維點云具有位置精準、密度甚高、紋理豐富、逼真度好、成本低廉等特點,不但可用于數(shù)字表面模型(digital surface model,DSM)、數(shù)字高程模型(digital elevation model,DEM)和數(shù)字正射影像圖(digital orthphoto map,DOM)等地理信息的自動提取,而且可為數(shù)字/智慧城市建設直接提供目標三維坐標源數(shù)據(jù)[1-2]。
航攝影像的密集匹配不同于影像量測的稀疏匹配[3],主要表現(xiàn)在:①點位不可選擇。密集影像匹配要盡可能地做到逐像素匹配,這就無法回避較大幾何畸變、弱紋理及重復紋理等特殊紋理區(qū)域。②搜索策略不一樣。密集影像匹配通常是在核線影像上設定的視差范圍內(nèi)進行一維搜索,而稀疏影像匹配往往需要在一個較大的平面區(qū)域或者核線段內(nèi)進行遍歷。③復雜度不一致。密集影像匹配的代價或流程不宜太復雜,否則會因計算機的性能限制或耗時太長而缺乏實用價值,稀疏影像匹配由于只需對特定的特征點進行識別,即使是設計出相對復雜的描述符或流程往往也是可以接受的。④匹配約束不相同。密集影像匹配由于需要對每個像素都識別同名像點,很容易施加普遍的顯式光滑約束,而稀疏影像匹配一般無須這樣處理。
縱觀現(xiàn)行的航攝影像密集匹配方法,根據(jù)所采用的圖像基元可以將其分為基于灰度的密集匹配、基于特征的密集匹配和基于相位的密集匹配3大類型?;诨叶鹊拿芗ヅ淠軌颢@得非常稠密的匹配點云,但其精度受影像幾何和輻射畸變的影響較大,像素點約束窗口的大小和形狀難以選擇;基于特征的密集匹配可以得到高精度的匹配點云,但特征提取計算代價太大,容易受到地物遮蔽、紋理重復等因素的影響,匹配效率比較低;基于相位的密集匹配一般不太適合于光學遙感影像。另一方面,根據(jù)所采用的優(yōu)化理論又可以將影像密集匹配分為局部最優(yōu)密集匹配和全局最優(yōu)密集匹配兩種。前者雖然效率高,但是誤匹配點較多,精度比較低;后者雖然能夠得到整體高精度的匹配點云,但是優(yōu)化代價太大,匹配效率不高。為此,本文擬對當前廣泛應用的密集影像匹配方法進行綜合分析和探討,以期對相關(guān)的研究起到拋磚引玉的作用。
航攝影像的密集匹配可以對單個立體影像對[4-5]、也可以對多度重疊的多視影像序列[6-7]進行。在獲得影像的內(nèi)、外方位元素或者影像的相對方位元素的前提下,實施過程大體分為核線影像生成、匹配代價計算、匹配代價聚合、視差計算與精化、三維點云生成幾個主要步驟。其一般流程可描述為圖1。
圖1 航攝影像密集匹配Fig.1 Dense image matching for aerial images
局部最優(yōu)密集匹配通過計算待匹配點與周圍局部鄰域點的匹配代價,隱式地使用光滑假設約束,采用WTA(winner-takes-all)策略選取匹配代價最小點作為同名像點[8]。由于這類方法大多采用矩形窗口進行匹配代價聚合,所以又稱為基于窗口的密集影像匹配。最具代表性的有基于絕對誤差和(sum of absolute differences,SAD)[9]、絕對平方差和(sum of squared differences,SSD)[10]測度的密集匹配和基于相關(guān)系數(shù)的密集匹配[11]等。這類方法的優(yōu)勢在于計算復雜度低,冗余計算量少[12];缺點是容易陷入局部最優(yōu),導致匹配結(jié)果與真實地形不太相符[13-15]。究其原因就在于:①假設視差在匹配窗口內(nèi)一致,與事實明顯不符,導致在影像深度不連續(xù)處(多為地物邊緣)和遮蔽區(qū)域的匹配效果不佳;②由于同譜異物現(xiàn)象,使算法出現(xiàn)病態(tài),無法正確找到同名像點,特別是在影像紋理貧乏區(qū)匹配效果較差。為此,在代價聚合方式上逐漸演化出如下3種解決方案。
2.1.1 窗口形狀改變法
這類方法通過調(diào)節(jié)匹配窗口的形狀,或者從多個窗口中選擇一個視差較為一致的窗口,來解決匹配窗口視差不一致的問題,同時也希望通過擴大窗口來最大限度地提高匹配的可靠性。早期的研究有移動窗口法[9]和形狀自適應窗口法[16]。這類方法對以目標像素為中心的匹配窗口聚合代價,前者將窗口內(nèi)的最小代價直接賦給待匹配像素,本質(zhì)上是以內(nèi)部更加一致的窗口代替了鄰近或橫跨邊緣的聚合窗口,使視差不連續(xù)處的匹配效果得以改善,以犧牲地物的邊緣信息為代價;后者是在假設匹配窗口內(nèi)視差滿足一定條件(譬如高斯分布)的前提下,通過窗口內(nèi)視差的均值和方差來獲得不確定度,依此選擇窗口變化的方向和大小。這種方法簡化了現(xiàn)實場景的復雜度,增加了不確定度的迭代計算量。此后,人們又提出了基于十字的代價聚合方法[17]。它依據(jù)顏色相近的像素很有可能具有一樣視差的假設,在某個閾值下為每個像素判斷出連續(xù)的十字范圍,通過截取目標像素水平臂上相應像素的垂直臂的并集來獲得代價聚合區(qū)域,取得了比較好的試驗結(jié)果。由于方法高度的規(guī)則性,代價聚合可以通過積分影像技術(shù)進行加速,但閾值需要根據(jù)匹配效果來人工調(diào)節(jié)。
2.1.2 窗口權(quán)重改變法
這類方法是在匹配代價聚合過程中通過改變匹配窗口內(nèi)原始代價的權(quán)值來實現(xiàn)的,分為基于濾波的和基于分割的兩種方法。
濾波的方法是依據(jù)顏色一致區(qū)域的視差非常接近、連續(xù)區(qū)域具有更加相近的視差的假設,確定匹配窗口內(nèi)每個像素的權(quán)重,以此來進行匹配代價聚合。其本質(zhì)是對不滿足窗口假設條件的代價賦予小的權(quán)值[18]。具體說來,就是用與中心像素的幾何距離以及與中心像素顏色的差異來定權(quán)。離中心像素越遠、顏色差異越大,其權(quán)值就越小。這種方法首次將局部匹配方法的正確率提升到了與全局方法相當?shù)某潭龋捎谄湫枰罅康闹貜陀嬎?,效率比較低。此外,由于地物邊緣處會出現(xiàn)顏色相近像素較少的情況,效果明顯變差。為了提高密集影像匹配的效率,人們又進行了一系列的改進[19-20],加速了匹配代價聚合的過程。文獻[18]的假設在大多數(shù)情況下都能滿足,但在復雜空間中顏色相近、視差相距甚遠的情況也時有發(fā)生。文獻[21]用測地線距離定權(quán)來解決這個問題,即當目標像素與中心像素有一條通路上的顏色沒有明顯改變時,可以獲得較大的權(quán)值,以此來附加聚合區(qū)域的聯(lián)通約束。這種改進,對區(qū)域相對簡單的場合比較有效,但對于結(jié)構(gòu)高度復雜的區(qū)域,由于定權(quán)方式所導致的聚合區(qū)域過小而變得效果不佳。沿著這種濾波思路,人們相繼又提出了旨在提高計算效率并解決邊緣支持度不足的基于引導濾波的定權(quán)方法[22-23]和利用空間通道可靠性定權(quán)的方法[24]。
分割的方法是假定分割塊的邊緣與深度不連續(xù)處保持一致,且在每個分割塊內(nèi)的視差保持一致或滿足某種關(guān)系(譬如仿射變換),并以待匹配點是否落在分割塊內(nèi)作為定權(quán)的一個重要參考依據(jù)[25]。文獻[26]使用Mean Shift方法所獲得的分割結(jié)果作為輔助,給聚合窗口內(nèi)與中心像素處于同一個分割塊的匹配代價以高權(quán)值,將位于其他分割塊內(nèi)的匹配代價視為粗差,給予其低權(quán)值直至零值。文獻[27]顧及了對稱的兩張影像的分割,以避免遮蔽等在使用一張影像時的影響。這類方法依賴于影像分割的質(zhì)量,新分割方法(如SLIC分割[28])的應用常常會促進方法的進步。盡管該類方法始于分割和局部匹配,但目前還是傾向于同時確定分割和視差、面向?qū)ο蟮钠ヅ?、語意匹配[29-33]等全局方法。
2.1.3 非前向平行窗口法
與前面兩類方法不同,這類方法采用了非前向平行的聚合窗口,在處理與影像面有較大夾角的空間結(jié)構(gòu)時,具有更好的匹配效果。其關(guān)鍵在于如何估計符合場景的斜面的方向。早期嘗試了平面聚類方法[34-35],通過估計并使用非前向平行平面進行代價聚合和視差確定。此后,基于面片匹配的方法[36-37]為每個像素隨機生成初始視差及視差空間的法向量。依據(jù)空間相鄰像素和左右影像上潛在的同名像點具有同一參數(shù)的準則,通過比較利用鄰近像素和潛在同名點參數(shù)與使用當前點參數(shù)所計算出的匹配代價,選定一組更能符合實際情況的參數(shù),并取代價小的參數(shù)作為新參數(shù)。為了進一步減小匹配代價,這類方法對選定的參數(shù)進行了精化。具體做法是在參數(shù)允許的最大變化范圍內(nèi),在原始參數(shù)上隨機地加上一個增量,觀察是否減小了代價。若減小了,則更新為新參數(shù)。否則,繼續(xù)增加,直至減小為止。在隨機初始化后,面片匹配方法希望能在具有相同或相近參數(shù)的區(qū)域中至少找到一個像素對應的參數(shù)能夠接近正確參數(shù)值。這類方法的缺點是:①因為隨機過程有可能遺漏了正確的候選視差,而根本無法獲得正確的匹配結(jié)果;②空間傳播和視傳播并非并行模式,不利于加速計算;③沒有顯式的光滑約束。針對這些問題,又衍生出了許多改進的方法。譬如,通過增加候選視差產(chǎn)生方式來避免遺漏;開始時為每一個像素準備好所有可能的參數(shù),并非通過傳播和精化手段來逐漸增加,以利于并行處理;將其運用在全局方法中以顯式地建立光滑約束。
以上3種方法中,窗口形狀改變法和窗口權(quán)重改變法是在使用前向平行窗口時,努力使聚合窗口內(nèi)的視差保持一致,而非前向平行窗口法則是使用了傾斜窗口,以便盡可能地估計出與實際情況相符的支持區(qū)域。
全局最優(yōu)密集匹配是通過構(gòu)建全局能量函數(shù)來優(yōu)化基于像素或者基于對象的匹配代價的,通過顯示式地使用光滑假設約束及相應的優(yōu)化方法來獲取視差圖,從而找到同名像點,使得最終的匹配結(jié)果達到全局最優(yōu)[38]。在全局能量函數(shù)構(gòu)建中,將像素間的光度相似性構(gòu)成了代價函數(shù)的數(shù)據(jù)項,將對相近像素視差的變化約束懲罰構(gòu)成了代價函數(shù)的光滑項。由于顧及了影像中每個像素的信息,匹配精度較高,但冗余計算較大,匹配效率比較低。目前的研究主要集中在全局能量函數(shù)的構(gòu)建和優(yōu)化求解上。在匹配代價計算上,主要采用了基于互信息的匹配代價[39]、基于梯度的匹配代價[40]、基于Census變換的匹配代價[10]和來自于深度學習的匹配代價[41-42];在優(yōu)化求解上,除了采用傳統(tǒng)的模擬退火[43]、動態(tài)規(guī)劃[44]等方法以外,圖割優(yōu)化[45-46]、置信度傳播[47-48]等一系列方法的應用,使該類方法得以長足的發(fā)展。
為了能夠充分發(fā)揮全局最優(yōu)密集匹配精度高和局部最優(yōu)密集匹配速度快的優(yōu)勢,文獻[39]最早提出了半全局密集匹配(semi-global matching,SGM)方法。其基本思想來源于線性規(guī)劃,通過多方向動態(tài)規(guī)劃提高了計算效率,但在影像匹配時并沒有考慮到全部像素,僅顧及了所有的非遮蔽點,相對于全局匹配和局部匹配方法而言,其精度和效率都有了不同程度的提高。具體表現(xiàn)為,在對相鄰像素視差依據(jù)其變化的程度差異給予不同懲罰值之后,首先對原始的全局方法分別按照8個或16個方向進行1維掃描線優(yōu)化,然后通過累加多個方向的代價而獲得整體的聚合代價,最后運用WTA方法獲得每一個像素對應的視差值,從而導出同名像點。然而,這類方法存在的主要問題是掃描線優(yōu)化時需要人為設定控制視差變化的兩個懲罰因子。懲罰過大則在視差斷裂處易出現(xiàn)過度平滑的情況,懲罰過小則在平滑區(qū)域會受噪聲影響而產(chǎn)生凹凸不平的現(xiàn)象。SGM方法曾試圖使用影像梯度來克服這個問題,即在高梯度區(qū)域使用低懲罰,在低梯度區(qū)域使用高懲罰。但是,由于影像梯度大的地方并不完全對應著深度不連續(xù)區(qū)域,因此在影像復雜紋理區(qū)域其效果并不理想。目前效果較好的遙感影像密集匹配商用軟件SURE[49]采用了Canny邊緣檢測算子來自適應地調(diào)整匹配參數(shù),在一定程度上緩解了上述矛盾,但對影像灰度噪聲仍相當敏感。文獻[2]通過分析核線影像的紋理信息,使用局部梯度、標準差計算紋理指標,在紋理缺乏區(qū)域施加較大視差連續(xù)性約束,在紋理豐富區(qū)域保留更大的匹配代價權(quán)重,以達到自適應調(diào)整參數(shù)的目的。文獻[5]充分利用稀疏匹配所獲得的較為可靠的匹配點作為約束,改善了密集匹配的效果。
為了提高航攝影像密集匹配對遮蔽和噪聲的穩(wěn)健性,多視影像的密集匹配方法成為了另一個研究主題。計算機視覺中顧及了多視影像間的幾何關(guān)系和冗余信息的基于面片的密集匹配算法被引入了攝影測量領域。通過提取到的影像中的稀疏特征點,構(gòu)建若干小的特征面片集合,經(jīng)匹配傳播達到密集匹配的效果[50-52]。文獻[7]提出的基于面片的多視影像匹配(patch-based multi-view stereo,PMVS)方法備受推崇。由于PMVS不需要先驗知識和初始化設置,并且適用于大場景影像的三維重建,被廣泛應用于無人機低空攝影測量中。Ai等將高精度的稀疏匹配點輸入PMVS作為種子點,對無人機航攝影像進行密集匹配,大大提高了PMVS的效率[53]。文獻[54]將PMVS的匹配點作為初始值構(gòu)建擴張的面片集,通過最小二乘精化和MPGC(multi-photo geometrical constrained)方法對面片中匹配點的位置進行調(diào)整,提高了匹配結(jié)果對遮蔽和噪聲的穩(wěn)健性,獲得的匹配點云更加稠密[55]。
在綜合分析SGM和PMVS算法的基礎上,文獻[56]于2016年率先將光流場引入航攝影像的密集匹配中,提出了一種基于光流場的航攝立體影像密集匹配方法(optical flow field-based dense image matching,OFFDIM)。其基本思想是以稀疏匹配所提取的高精度像片連接點作為種子點,運用基于特征金字塔L-K方法和基于三角網(wǎng)多層B樣條插值方法,快速估計出立體影像對重疊區(qū)域內(nèi)的密集光流場,得到逐像素的粗匹配點,然后結(jié)合幾何約束和影像紋理信息,采用基于Census變換的匹配代價,運用快速引導濾波優(yōu)化算法對初始視差圖進行精化,以此為基礎對粗匹配點進行逐一修正,以提取密集匹配點云。這種方法充分利用光流場信息,采用由粗到精的金字塔匹配策略,縮小了影像匹配的搜索范圍,減少了大量的冗余計算,可用于寬基線大幅面航攝影像的密集匹配。經(jīng)對普通數(shù)字航攝影像和無人機低空航攝影像的試驗,真正實現(xiàn)了逐像素的密集匹配,達到了子像素級的匹配精度,速度快,可靠性高,完全可以滿足攝影測量中的目標三維重建、DSM/DOM自動生成等的應用需求[57]。
近年來,隨著深度學習的飛速發(fā)展,眾多深度神經(jīng)網(wǎng)絡模型被運用于影像密集匹配中?;谏疃葘W習的密集匹配方法大體上可分為分布式方法和端到端方法兩類。分布式方法通常運用深度神經(jīng)網(wǎng)絡模型計算立體像對間的匹配代價[42,58],然后采用傳統(tǒng)的匹配代價聚合方法生成視差圖,從而找到同名像點。相較于傳統(tǒng)的逐像素密集匹配方法,其在常規(guī)紋理區(qū)域的匹配精度有顯著的提高。然而,在紋理貧乏、地物遮蔽和光照較強區(qū)域,其匹配效果依然不盡人意。端到端方法通過在深度神經(jīng)網(wǎng)絡模型中加入三維卷積層,達到計算匹配代價聚合的目的[59-61]。這類方法進一步提高了密集匹配的精度,但由于三維卷積計算的大量內(nèi)存消耗和高計算復雜度,通常只能處理較小的影像塊,其實用性遠不如傳統(tǒng)密集方法和分布式方法。此外,基于深度學習的密集方法對輸入的訓練標簽有著極強的依賴性。訓練數(shù)據(jù)中,每個像素都必須提供相應的深度真值或者視差真值,這類訓練數(shù)據(jù)通常由人為準備,這也使得其普適性和適用性比較差。
總體說來,局部最優(yōu)密集匹配方法比全局最優(yōu)密集匹配方法簡單快速,但正確率和精度要稍遜一籌,表1對這兩類方法作了簡要的比較。此外,大多數(shù)全局最優(yōu)密集匹配方法借鑒了局部最優(yōu)密集匹配方法的代價聚合模式,這就使得后者的很多優(yōu)點在前者中得以體現(xiàn)。實際應用中,兩種方法是存在互補的。
表1 局部最優(yōu)與全局最優(yōu)密集匹配方法的比較
Tab.1 Comparision between local matching algorithm and global matching algorithm
密集匹配方法光滑約束正確率速度計算機內(nèi)存占用關(guān)注要點約束引入局部最優(yōu)隱式較高快少代價聚合難全局最優(yōu)顯式高較快多建模優(yōu)化易
圖2為采用國際攝影測量與遙感學會(ISPRS)公開的數(shù)據(jù)集,在德國Vahingen地區(qū)利用DMC相機獲取的多光譜合成影像(相機主距120 mm,像幅7680×13 824像素,像元大小12.0 μm,航向重疊度為60%),使用SGM、PMVS和OFFDIM的匹配點云圖,從中可以清楚看出它們在匹配效果上的差異。
目前,航攝影像的密集匹配普遍采用半全局匹配方法,一批以SURE、PhotoScan、Smart3D為代表的商業(yè)軟件也相繼推向了市場,但人們對密集匹配算法的研究依然表現(xiàn)出了濃厚的興趣。如何獲得更優(yōu)的匹配代價、采用更好的匹配代價聚合方式、更合理地構(gòu)建全局能量方程及其優(yōu)化求解,依然是當前密集影像匹配的桎梏。近些年來,出現(xiàn)了大量的利用卷積神經(jīng)網(wǎng)絡獲取匹配代價、顧及影像邊緣的自適應代價聚合[63]、置信度傳播、圖割優(yōu)化等技術(shù),已成為密集影像匹配新的研究熱點。盡管如此,筆者認為以下4個方面的問題值得關(guān)注:
(1) 如何構(gòu)建更能反映像素間相似度的數(shù)據(jù)項是密集匹配的理論基礎。事實上,我們無法建立真實反映像素間相似度的數(shù)據(jù)項,原因就在于現(xiàn)實世界中異物同譜現(xiàn)象的存在以及攝影曝光和光照的不同,有些像素不再滿足光度一致性條件;而且由于航攝影像場景復雜,地物相互遮擋、地形突變致深度不連續(xù)、紋理重復等現(xiàn)象,給密集匹配帶來了極大的挑戰(zhàn)。在動態(tài)規(guī)劃的框架下,計算錯誤的數(shù)據(jù)項往往會影響鄰域點的視差估計,并將錯誤擴散。因此,構(gòu)建更能反映像素間相似度的數(shù)據(jù)項模型,對于減少誤匹配、提高密集影像匹配的精度和可靠性是至關(guān)重要的。穩(wěn)健的數(shù)據(jù)項應對航攝場景中的復雜地形變化、光照變化等噪聲不敏感,能很好地顧及重復紋理、深度不連續(xù)等的影響因素。
(2) 如何自適應設定可估計像素間視差不連續(xù)的平滑項是非局部密集匹配的技術(shù)關(guān)鍵。平滑項是對相鄰像素間的視差不連續(xù)性的懲罰因子,非局部密集匹配平滑項存在的主要問題是需要人為設定控制視差變化的兩個懲罰參數(shù)。為了保持視差的平滑,非局部密集匹配算法的平滑項采用雙參數(shù)P1和P2(P2>P1)來建立相鄰像素間視差的光滑約束,用參數(shù)表達懲罰強度。懲罰參數(shù)P1和P2的選擇對最終的匹配結(jié)果有較大的影響:參數(shù)過大則容易在深度不連續(xù)處過度平滑,導致無法保持地物邊緣等重要特征;參數(shù)過小則難以保證視差平滑,產(chǎn)生明顯的匹配噪聲,造成凹凸不平的現(xiàn)象?,F(xiàn)行方法對整個立體像對采用同一參數(shù),是難以適應不同地形條件的,往往會導致物體邊緣不銳利,前景視差延伸到地面等問題,使生成的DSM、DOM的地物邊緣帶有明顯的毛刺。
(3) 如何有效消除地物遮蔽處及特殊紋理區(qū)域的匹配空洞是密集匹配的普適性問題。密集匹配的終極目標是能夠達到影像重疊區(qū)域內(nèi)的逐像素匹配,對于紋理豐富、視差比較連續(xù)的影像區(qū)域,實現(xiàn)這一目標并非難事,但對于影像遮蔽區(qū)域,特別是在高樓林立、陰影交錯的城區(qū)以及紋理重復的森林和農(nóng)田地區(qū),公認的半全局匹配經(jīng)常會產(chǎn)生較大范圍的點云空洞?;诠饬鲌龅拿芗跋翊制ヅ淠軌蛘嬲龑崿F(xiàn)像素級的逐像素密集匹配,但為了生成子像素級的高精度DSM,精匹配算法還有待改進。無論是精化算法的本身,還是多度重疊序列影像的整體匹配策略,都值得進一步探討。
圖2 利用半全局密集影像匹配生成的點云Fig.2 Dense 3D point clouds acquired by semi-globe dense image matching for single stereo image pairs
(4) 如何通過并行計算提高影像匹配的效率是密集匹配的實用性問題。當前的密集匹配方法大多來自于計算機視覺領域,算法均是針對短基線的小幅面影像而設計,航攝影像一般是寬基線的大幅面影像序列,密集影像匹配的計算復雜度非常高、匹配結(jié)果的數(shù)據(jù)海量、誤匹配率也很高,這不但對計算機的內(nèi)外存儲器、計算性能等硬件指標提出了苛刻的要求,而且也要求在匹配和誤匹配點剔除等算法的程序?qū)崿F(xiàn)上盡可能地采用諸如影像分塊、CPU多線程并行處理、GPU加速計算等技術(shù),使1億像素幅面影像對的密集匹配時間可以控制在分鐘級的可接受范圍內(nèi)。