張釋如,魏曉艷
(西安科技大學 通信與信息工程學院,陜西 西安 710054)
雙目立體視覺是計算機視覺領域的研究熱點之一,被廣泛應用于三維重建、無人駕駛、機器人導航等領域[1]。立體匹配算法是雙目立體視覺的難點與重點,旨在通過尋找左右視圖中的匹配像素點對以獲得視差圖。全局立體匹配算法[2]采用全局的優化理論方法估計視差值,該類方法匹配精度高,但效率低;局部立體匹配算法[3]利用像素點的局部信息計算視差,該類算法計算量小,但匹配精度較低,使得大量國內外學者對其研究以提高算法精度。
Scharstein D等人[4]將立體匹配算法描述為代價計算、代價聚合、視差計算、視差優化4個階段。常用代價計算方法有灰度差的絕對值之和[5]、零均值歸一化互相關[6]、Census變換[7]等。其中,Census 變換計算簡單,且對光照變化不敏感,但該方法過度依賴變換窗口中心像素,易受外界干擾,匹配精度不高。針對此問題,孫延坤等人[8]提出一種將灰度差的絕對值之和與Census變化相結合的方法;Lv C等人[9]將彩色圖像轉換到HSV(hue,saturation,value)空間,建立色調絕對差代價計算函數,并融合Census 代價值;蔣文萍等人[10]引入Tanimoto系數與漢明(Hamming)距離相結合,并融合圖像亮度差用于匹配代價計算;Hou H 等人[11]使用加權Census 變換圓形模板進行匹配代價計算,考慮了鄰域像素與目標像素的距離對計算的影響,擴大目標像素的感知范圍。
雖然上述改進方法一定程度上提高了立體匹配算法精度,但依然存在視差圖像邊緣模糊、復雜紋理上匹配精度不高問題。因此,本文提出一種改進Census變換與特征融合的立體匹配算法。
本文算法實現原理框圖如圖1所示。

圖1 立體匹配算法實現原理框圖
首先,在匹配代價計算部分,使用變換窗口的鄰域像素信息代替中心像素,解決傳統Census變換過度依賴變換窗口中心像素的問題,再結合圖像的顏色信息與梯度信息,構建新的融合匹配代價計算函數來衡量2個特征點的相似程度;其次,在代價聚合部分引入單向動態規劃理論,利用四路徑代價聚合方式建立中心像素與鄰域像素的聯系;再次,采取贏家通吃(Winner-Take-All,WTA)策略獲取初始視差圖;最后,采用視差細化、誤匹配點檢測、視差填充等策略對視差圖進行優化。
針對傳統Census變換依賴窗口中心像素,抗干擾能力差,易造成誤匹配現象。本文使用變換窗口的鄰域像素信息代替中心像素,以提高Census變換的魯棒性。首先對窗口內的灰度值進行排序,去掉最大值和最小值,再求其平均值,將此值作為中心像素值,同時將窗口內的鄰域像素值與中心值進行比較,得到窗口中心像素點的對應變換結果。以3×3窗口為例,改進Census變換過程如圖2所示。

圖2 改進Census變換
利用上述改進Census 變換遍歷待匹配的左右兩幅圖像,將兩像素點間的漢明距離作為改進Census變換的匹配代價值。計算過程表達式為
式中 ?為按位連接;Np為像素p的鄰域;p,q分別為窗口中心像素點和其鄰域像素點;Tp,Tp-d分別為左右圖像對應窗口鄰域的比特串;CCensus(p,d)為匹配代價值。
為進一步提升立體匹配算法的抗噪性能以及在復雜圖像上的匹配精度,本文在改進Census 變換的基礎上,引入圖像的顏色信息及梯度信息,構建新的匹配代價計算函數來衡量兩像素點的相似程度。顏色信息代價值使用圖像強度值之差進行計算,計算表達式為
梯度信息描述了圖像中像素值的變化情況,使用Sobel算子求解圖像像素點的梯度值,匹配代價計算表達式為
式中 I(p)為像素點p的梯度信息;Il和Ir分別為左圖像和右圖像。
將上述改進Census 變換、顏色信息代價、梯度代價進行融合,構建新的匹配代價計算函數,表達式為
式中 C(p,d)為改進的匹配代價計算函數;φ(c,λ)為歸一化函數;λc,λa,λg分別為3種對應方法代價值的歸一化控制參數。
匹配代價計算部分只考慮單個像素的局部信息,而忽略了相鄰像素代價值間的聯系。因此,本文在代價聚合部分引入單向動態規劃思想,采用四路徑代價聚合策略對上述的初始代價進行聚合,四路徑代價聚合方向為像素的上、下、左、右4個方向。針對單個路徑而言,將像素點p 沿該路徑上所有視差范圍內的代價值進行一維聚合,求得該路徑下的代價值,其計算表達式為
式中 Lr(p,d)為像素點p 沿路徑r 在視差為d 時的代價值;第一項C(p,d)為由代價融合計算得到的初始匹配代價;第二項為在路徑為r方向的上一個匹配像素點p-r的最小代價值;第三項為在所有視差下像素p-r 的最小代價值。
利用式(5)分別求得像素p在四路徑聚合方向上的代價值,將其累加得到像素點p 的最終代價聚合值S(p,d),其表達式為
代價值越小表示兩像素點越相似,利用WTA策略選取各像素匹配最小代價值對應的視差值,獲得初始視差圖,計算表達式為
式中 dp為p點的視差值,dmin和dmax為視差搜索范圍邊界值。
針對初始視差圖的整像素精度問題,采用二次曲線子像素擬合方法將整像素精度提高到子像素精度;針對誤匹配問題,采用左右一致性檢測方法剔除錯誤匹配對。剔除錯誤匹配后,被剔除的像素造成視差圖出現空洞,為避免傳統空洞填充方法需要選擇窗口大小問題,提出一種基于八方向的視差空洞填充方法。該方法以空洞像素點為中心,等角度向外發射8 條射線,存儲每條射線接觸到的首個有效像素,如圖3所示。針對遮擋區域的空洞像素,使用次最小視差值進行填充;針對誤匹配區域的空洞像素,使用中值進行填充。最后對填充的視差圖進行中值濾波,以減小噪聲的影響。

圖3 空洞填充示意
為驗證和評價本文所提算法性能,采用Middlebury 測試平臺提供的Cones、Teddy、Venus 圖像進行實驗。使用Python語言進行編程,操作系統為Windows10,處理器為AMD Ryzen 7 5800H,內存為32 GB。
為驗證本文改進代價計算方法的有效性,將傳統Census變換、改進Census 變換及融合匹配代價計算方法進行對比分析。圖4為在不經過代價聚合以及視差優化的情況下,上述3種方法得到的視差圖。由圖4 可以看出,改進Census變換有良好的抗干擾性能,視差圖中的噪聲點明顯減少,但依然存在物體輪廓模糊與誤匹配現象;在改進Census變換基礎上,引入圖像的顏色信息及梯度信息,改善誤匹配問題,并使得視差圖中的物體輪廓更清晰。

圖4 不同方法下的視差圖
為進一步定量分析本文改進代價計算方法的性能,使用圖像誤匹配率作為評價指標,如表1 所示。對比傳統Census變換,改進Census 變換的平均誤匹配率降低了8.78%;在此基礎上,提出的融合代價計算方法的平均誤匹配率再次降低了4.28%,進一步證明所提改進代價計算方法的有效性。

表1 不同方法下的圖像誤匹配率對比 %
為進一步提高立體匹配算法精度,加入代價聚合及視差優化模塊,將傳統Census變換與本文算法得到的視差圖進行比較,如圖5所示。傳統Census變換得到的視差圖中包含較多錯誤點以及空洞,匹配效果較差;而本文算法融合圖像的多特征信息提高初始匹配代價可靠性,基于八方向空洞填充策略能很好地解決視差圖空洞問題,使得到視差圖的誤匹配點與空洞區域較少,提高了視差圖的質量。

圖5 匹配結果
為客觀評價本文所提算法的整體匹配性能,將其分別與傳統Census算法以及目前改進Census 表現效果較好的文獻[12]、文獻[13]提出的算法進行對比,以圖像的非遮擋區域(Nonocc)以及全部區域(All)的誤匹配率作為評價指標,如表2所示。

表2 各算法圖像誤匹配率對比 %
由表2可知,在處理具有重復紋理且環境復雜的Teddy和Cones 圖像時,本文算法在圖像非遮擋區域和全部區域的誤匹配率最低;在處理簡單場景下的Venus圖像時,誤匹配率與文獻[12]提出的算法相近,都具有較低的誤匹配率。綜合而言,本文所提算法的平均誤匹配率為3.77%,低于其他算法,表明在進行立體匹配時具有更高的匹配精度,且在處理復雜環境圖像時更具魯棒性。
實驗結果表明:改進的匹配代價計算函數提高了初始匹配代價的可靠性,有效改善圖像邊緣模糊問題;四路徑的代價聚合策略加強了鄰域像素間的聯系,提出的基于八方向空洞填充策略能很好地解決視差圖空洞問題。本文算法在Middlebury數據集上的平均誤匹配率為3.77%,具有較高匹配精度,優于其他改進Census變換方法。