劉 洋,王 立,華寶成,李 濤
為了提高深空探測器在危險區(qū)域的安全著陸能力,未來的著陸器勢必要求具有一定的障礙規(guī)避能力.要達到障礙規(guī)避的效果,首先要對著陸區(qū)的障礙進行檢測.相機相對于激光雷達有重量輕、成本低、成熟度高的優(yōu)勢,利用雙目相機拍攝的圖片采用匹配算法進行匹配,之后用三角測量原理得到稠密的數(shù)字高程圖.根據(jù)高程圖識別障礙找到最優(yōu)著陸區(qū)可有效地降低著陸風(fēng)險[1-2].
著陸過程中利用相機獲得高程的方式主要有3種[3]:雙目視覺法(stereo vision,SV)、基于運動的結(jié)構(gòu)重建(structure from motion,SFM)和基于陰影的形貌重建(shape from shading,SFS).SV算法中2個相機以已知的基線長度安裝在著陸器上,獲得左右圖后直接進行匹配;SFM算法與SV類似,但兩幅輸入圖像不是在同一時間被兩個不同的相機拍下,而是由一個相機在兩個不同的時間拍下;SFS算法輸入單幅圖像,利用物體成像表面亮度的變化,參照表面反射特性或形狀的附加約束,解析出物理表面矢量信息,轉(zhuǎn)化得到表面深度信息[4].后續(xù)的研究表明SV算法更易于使用[3-5].美國噴氣推進實驗室對立體圖像應(yīng)用立體視覺算法,用SAD5(基于一個像素取5個重疊匹配窗口)作為代價函數(shù)來匹配計算得到高程圖,從而進行斜坡估計和巖石探測[6];WOICKE等[5]也利用立體視覺的方式通過雙目匹配得到高程圖,進行著陸過程中的斜坡估計和粗糙度分析.雙目立體匹配作為使用被動敏感器(即相機)進行著陸避障的重要步驟,對建立精準的稠密高程圖有著重要作用.基于單目圖像的避障已經(jīng)在“嫦娥三號”任務(wù)中成功實施,我國火星探測任務(wù)也將考慮使用立體視覺等方式來獲得著陸區(qū)域信息進行避障,針對地外天體著陸場景的特殊性,北京控制工程研究所正在積極研究適應(yīng)于地外星體著陸任務(wù)要求的匹配方法.
雙目匹配的方法可簡要分為局部立體匹配和全局立體匹配.基于局部的立體匹配算法采用局部優(yōu)化的理論方法進行視差估計,是在最大視差的范圍內(nèi)找出匹配代價最小的像素點作為目標匹配像素,利用局部信息求出匹配代價最小的像素點從而計算出視差.常見的算法有基于窗口灰度和非參數(shù)變換的立體匹配算法.基于全局的立體匹配算法使用全局約束來解決匹配問題,通常被描述為能量最小化問題,在其建立的能量函數(shù)中,除了數(shù)據(jù)項之外,還有平滑項.數(shù)據(jù)項主要是測量像素之間的相似性問題,而平滑項是平滑像素之間的視差關(guān)系,保證相鄰像素之間視差的平滑性.全局立體匹配算法有:置信度傳播算法、基于動態(tài)規(guī)劃的全局立體匹配算法、基于圖割的全局立體匹配算法等.在航天任務(wù)中由于硬件平臺和處理時間的約束,匹配算法必須在保證實時性的基礎(chǔ)上達到一定的精度.全局算法資源占用多且計算量大.從實時性的角度,本文選取幾種局部立體匹配方法進行仿真和分析.
(1) 在極線對正的情況下,基于區(qū)域的代價計算是利用窗口內(nèi)像素的灰度信息來進行代價計算,常見的代價計算方法有絕對誤差之和(SAD)和差的平方和(SSD):
SAD:
(1)
SSD:
(2)
式中c(x,y,d)表示右圖中(x,y)點在視差d下的匹配代價,W為像素點所在的窗口,I為像素灰度值.SAD比SSD計算復(fù)雜度低,使用較為廣泛.為了解決遮擋、深度不連續(xù)、重復(fù)紋理等問題,除了固定窗口之外,還提出了可移動窗口法,多窗口法,變化窗口法等.在得到左右圖對應(yīng)像素所在窗口的所有代價值后,采用WTA(winner-take-all)的方法,在視差范圍內(nèi)選取匹配代價最優(yōu)的點(如SAD為最小)作為對應(yīng)的匹配點,得到對應(yīng)的視差值.
(2) 但SAD僅應(yīng)用像素灰度的方式容易受到左右相機拍到的圖像光照條件不一致的影響,而這種情況在實際場景中經(jīng)常發(fā)生.為了解決這個問題,對每個代價計算窗口減去窗口灰度均值
(3)
式中WR和WL分別表示右窗口和左窗口區(qū)域,AWR和AWL分別表示右窗口和左窗口中像素灰度的均值,I表示像素灰度.通過減去窗口像素灰度均值的方式可以讓計算中的左右兩個窗口處于同一灰度水平,一定程度上改善了算法的匹配效果.
(3) 對圖像進行LOG濾波后,再用SAD的方式計算窗口的代價值.LOG算子源于D. Marr計算視覺理論中提出的邊緣提取思想[7],即首先對原始圖像進行最佳平滑處理,最大程度地抑制噪聲,再對平滑后的圖像求取邊緣.對圖像進行LOG濾波意在突出紋理信息,改善匹配效果.
目前局部匹配的方法有很多,基本都集中于圖像預(yù)處理、像素間相似性的評價以及最優(yōu)匹配的選擇.另外也提出一些后處理的方法來優(yōu)化或改進結(jié)果.大部分的局部方法都著眼于通過不同的相似性評價方法來提高相對精度.在這些方法中,Census立體方法可以給出相對精確的結(jié)果,并且具有較好的魯棒性能.同時,由于該算法大量應(yīng)用按位計算的方法,所以也非常適用于在FPGA上實現(xiàn)[8-10].
Census立體方法首先對左右圖像進行Census變換.為了定義Census變換,首先定義一個函數(shù)ξ,它代表了中心像素P和它周圍的像素P′之間的關(guān)系,I代表給定像素的灰度值
(4)
通過比較像素P和它周圍方形窗口內(nèi)灰度值的大小來計算得到,這些比較的結(jié)果組成一個簡單的Census比特向量.對輸入圖像進行變換之后,對相關(guān)窗口計算Hamming距離之和.Hamming距離是兩個向量間不同的比特個數(shù),即對兩個向量求異或,這種量化準則簡單地評價了兩個Census變換像素間的差異性.因此,所有Census方法的像素間差異表示為:
∑P′∈W(P)Hamming(C1(P′),C2(P′+d))
(5)
這里C1和C2表示兩個Census變換的輸入圖像;d是水平向量,表示視差.Census變換和Hamming距離的求解如圖1所示.
圖1 Census變換和Hamming距離的求解Fig.1 Explanation of census transform andhamming distance
由于Census變換僅僅依賴于窗口內(nèi)像素的相對強度,這種變換利用了強度的相對排序,一定程度上避免了輻射變形(radiometric distortion),由兩個相機輕微的位置差異、漸暈(vegnetting)、輻射強度差異、圖像噪聲等,同時對立體圖像對中的深度不連續(xù)處有較強的容忍能力.
一般來說選擇的區(qū)域窗口越大,Census變換得到的向量越長,包含的信息量越大,需要更多的存儲空間,例如窗口邊長為T=5時,每個像素換算為一個24比特的向量,而邊長為T=7時,每個像素的信息則需要48比特來存儲.窗口大到一定程度會出現(xiàn)只增加計算量和資源占用量卻沒有大幅度改善匹配精度的情況,同時發(fā)現(xiàn)同等窗口大小時并不一定需要窗口內(nèi)每個像素的比較結(jié)果.為了節(jié)省資源,提出了稀疏Census變換(sparse Census transform).
思路與全Census變換相似.在該方法下只選擇窗口內(nèi)的一些點和中心像素進行比較.用來比較的點太少會影響匹配的效果,但根據(jù)文獻[8],對于圖2所示的變換方式,在代價聚合窗口為13*13時,圖2的(a)(b)(c)能得到與全變換相當、甚至高于全變換的匹配精度.
圖2 稀疏Census模板Fig.2 Sparse census transform examples
針對SAD經(jīng)過LOG濾波的SAD、灰度規(guī)范化的SAD、全Census變換以及8-point Sparse Census變換這五種匹配算法,利用Middlebury提供的數(shù)據(jù)庫中的圖像(圖3)測試和對左右圖光照強度不一致的情況(圖4)也進行了仿真,對應(yīng)數(shù)據(jù)庫中圖像摩托車E.
將匹配得到的視差圖和視差真實值進行比較,針對單個像素點,若當前點計算得到的視差與視差真實值中該點的視差的差值大于等于1,則該點記為誤匹配點,統(tǒng)計誤匹配點占總像素數(shù)的比例,從而得到各種算法對應(yīng)的誤匹配率.匹配錯誤率及計算用時如表1和表2及圖5所示.運行平臺為Inter(R) core(TM) i5-3470 CPU @3.20GHz, 3.47 GB的內(nèi)存物理地址擴展.
表1 數(shù)據(jù)庫圖像匹配錯誤率Tab.1 Error rate of five algorithms in Middlebury College pictures test
表2 數(shù)據(jù)庫圖像匹配用時Tab.2 Time of five algorithms in Middlebury College pictures test/s
由上述匹配結(jié)果看出,SAD相比其他算法性能較差,在左右相機光照條件不一致的情況下幾乎不能得到匹配正確的點;加了LOG濾波以及灰度規(guī)范化后的SAD算法的準確性得到提高,特別是改善了光照不一致時的匹配效果,如圖摩托車E,匹配精度也能達到正常水平.Census算法的匹配準確性比SAD高出很多,由于算法本身的特性,其抗圖像輻射不一致效果極佳;稀疏化后的Census變換也沒有降低匹配精度,甚至在一些弱紋理場景(如:Recycle)下精度還會有小幅度的提升.從計算時間來看,LOG濾波后的SAD算法極大地縮減了計算時間,用時最少,實時性極佳.灰度規(guī)范化的SAD、sparse Census,這兩種方法計算用時大致相當,全Census變換比前述方法用時多出一倍以上.
圖3 數(shù)據(jù)庫圖像Fig.3 Middlebury college pictures
圖4 摩托車EFig.4 Motorcycle E
圖5 五種算法錯誤率及計算用時比較Fig.5 Error rate and time of five algorithms
地外星體著陸避障任務(wù)中由于場景單一,圖像紋理較弱,針對這種特殊應(yīng)用場景,利用模擬沙盤圖像對上述4種方法進行仿真,效果圖如圖6~11所示.
圖6 沙盤拍圖(原圖)Fig.6 Sand table picture
圖7 SAD匹配結(jié)果Fig.7 Disparity mapwith SAD
圖8 LOG SAD匹配結(jié)果Fig.8 Disparity map with LOG SAD
圖9 灰度規(guī)范化的SAD匹配結(jié)果Fig.9 Disparity map of Improved SAD (illumination normalization)
圖10 全Census變換匹配結(jié)果Fig.10 Disparity map of Census transform
圖11 8-points sparse Census變換匹配結(jié)果Fig.11 Disparity map of 8-points sparse Census transform
由于沙盤圖像沒有確切的視差真實值,所以上述匹配結(jié)果經(jīng)過左右一致性比較來評價算法的性能,即左右圖同名點的視差值不一致則該點視差值置零(即圖中的黑色部分).簡單認為視差不一致的點即為匹配錯誤點.統(tǒng)計上述放在在沙盤測試中的計算用時和誤匹配率,如表3所示。
表3 沙盤測試中算法計算用時及誤匹配率Tab.3 Error rates and time of five algorithms in sand table pictures test
本文針對航天應(yīng)用場景橫向比較了SAD和Census變換這兩種匹配算法. SAD算法實時性很好,但匹配精度較低,且在左右圖輻射情況不一致時匹配結(jié)果幾乎全軍覆沒,故而提出窗口灰度規(guī)范化的改進SAD算法以及LOG濾波后的SAD,這兩種方法一定程度上提高了算法的精度,而且加入LOG濾波后可相應(yīng)縮短計算時間.但無論面對數(shù)據(jù)庫中的場景還是地形模擬沙盤,基于SAD值的匹配算法精度還是顯著低于Census變換加Hamming距離的匹配方式.Sparse Census變換和全Census變換精度相當,在適當?shù)馗淖冏儞Q窗口后采用Sparse Census變換甚至?xí)懈玫钠ヅ湫Ч瑫r相比全Census變換,稀疏Census變換也很好地縮短了計算用時.綜合算法精度和實時性要求,稀疏Census變換算法在行星著陸避障中有較好的適用性.