?

基于動態自適應加權Census變換的立體匹配算法

2023-07-21 01:15武凱峰王曉飛
黑龍江大學自然科學學報 2023年3期
關鍵詞:視差代價鄰域

武凱峰, 王曉飛

(黑龍江大學 電子工程學院, 哈爾濱 150080)

0 引 言

雙目立體視覺是計算機視覺研究中的熱點問題之一,為機器視覺中的重要分支[1],利用視差原理可以在矯正后的雙目圖像中估計3D場景中的深度信息。雙目立體視覺在機器人視覺[2]、醫學成像、航空測繪、3D重建[3]、自動駕駛[4]、深度測距[5]和工業檢測上具有極其廣泛的應用[6]。雙目立體視覺最為關鍵的立體匹配算法研究面臨巨大挑戰[7],如受弱紋理區域影響,匹配過程中通常會出現匹配錯誤,無法找到同名點對等問題,加劇了匹配過程中的難度,對匹配結果產生不利的影響[8]。Census變換具有局部窗口運算的特性,每個像素進行獨立運算,該特性可以設計多線程并行計算模型,為算法效率提供保障[9]。Census變換對光照的變化具有出色的抗干擾性[10],在實際情境中適用性很強。

2005年,Hirschmüller提出了半全局立體匹配算法(Semi-global matching, SGM),該算法結合了局部算法的高效率與全局算法匹配效果出眾的優點,同時,避免了局部算法在窗口視差相同的假設不成立時而導致的匹配效果較差速度慢等問題[2]。同樣優秀的算法還有PatchMatchStereo 算法和AD-Census算法[11]。PatchMatchStereo算法是Bleyer發表的雙目立體匹配算法,打破了傳統固定窗口匹配的桎梏[12],該方法使用傾斜支持窗的搜索模式,具有出色的數據泛化能力。2011年,AD-Census算法是Mei等提出的,算法從效率和效果上表現出色,其改進的十字交叉域代價聚合方式,針對弱紋理區域的處理令人滿意[13]。這些方法通常不能適應低紋理和光照差異大的環境。取得突破的是利用學習的方法,通過神經網絡,深度學習代替傳統的方法計算匹配代價, 在代價聚合和視差細化等過程中利用學習的方法也取得了顯著成果。Zbontar等利用卷積神經網絡通過小圖像塊學習相似性度量,開創性地將深度學習技術引入到立體匹配之中,首次成功地利用卷積神經網絡(Convolutional neural network, CNN)計算匹配代價成本,代替了傳統方法中人工設計的代價計算指標[14]。Seki等提出的SGM-Net,該網絡是基于代價聚合的非端到端網絡,解決了代價聚合過程需要針對不同平滑項人工設計懲罰參數的問題[15]。Mayer等首次提出的端到端回歸網絡Disp-Net,采用編碼器-譯碼器結構利用CNN回歸得到視差圖[16]。Zhou等提出GC-Net構建4D cost volume融合上下文信息,得到了很好的結果[17]。受到GC-Net網絡的影響,Chang等在網絡學習中加入了更多的信息以追求精度的提高,由此提出金字塔立體匹配網絡PSMNet[18],Godard等在不使用真實深度的情況下,利用極線幾何約束重建圖像,通過訓練網絡生成視差圖,同時構建新的損失函數反向傳播進一步訓練網絡提高魯棒性[19]。Zhou等以迭代的方式更新網絡參數,將一個隨機網絡逐漸收斂到穩定狀態[20]。Wen等提出端到端的實時立體匹配網絡,此網絡具有優秀的殘差優化模塊,可以準確地估計出圖像高頻區域的視差信息。但基于學習的方法需要大量實況數據以及訓練和計算的硬件資源,并且在不同環境下適應性較差,所以傳統匹配方法仍然具有重要研究價值[21]。Lu等提出基于Census 變換的Graph cut改進立體匹配算法,該算法對傳統的GC方法的能量函數中的數據項進行優化[22],降低像素點本身對灰度值的依賴性。Yuan等采用灰度描述算子,在原始圖像上進行Census變換將目標像素與鄰域像素的距離加入考慮,得到在變換窗口內像素灰度和梯度的描述關系[23]。Ambrosh等提出融合基于梯度的Census變換和絕對差值之和的算法[24],通過使用 Altera Stratix FPGA 構建原型,在750×400立體圖像分辨率下處理效果更好。Hou等使用圓形變換模板代替Census傳統的方形變換模板,經過Census變換對所得的序列進行等長高斯權重序列加權,相比于傳統Census,更好地處理了噪聲[25]。高斯權重序列的加入雖然在一定程度上取得了較好的效果,但是不能滿足匹配中鄰域像素與中心像素在不同窗口下的動態關系[26]。受此啟發,本文提出自適應權重分配的Census算法,在不同的搜索窗口下,為各鄰域像素分配與中心像素相關聯的動態自適應權重值,提高了匹配的準確率。

1 算 法

1.1 Census變換

傳統Census變換算法應用在極線矯正后的左、右圖像對上,選取左圖像上的像素點作為目標像素,以該目標像素為中心構建m×n的鄰域窗口(n和m都為奇數),將窗口內的鄰域像素與中心像素灰度值進行比較,若鄰域像素大于中心像素,則標記為1,若鄰域像素小于目標像素,則標記為0,全部比較結束后,結果以比特串形式體現,最后將比特串作為中心時像素的Census變換值Cs進行計算,公式為:

(1)

式中:p為中心目標像素點;q為所在窗口鄰域像素點;⊕是比特位的逐位連接運算;ξ為定義的運算符號將鄰域灰度值與中心灰度值進行比較,計算公式為:

(2)

計算左圖像目標點p(x,y)的Census值后,在右圖像上以同樣方法計算視差范圍內(x-d,y)位置像素的Census值,將兩點Census值進行異或運算,漢明距離公式為:

C(x,y,d)=Hamming(Csl(x,y),Csr(x-d,y))

(3)

Hamming距離是兩個比特串進行異或運算之后,對應位置不相同的數量,選用5×5搜索窗口,漢明距離的計算如圖1所示。圖中5×5方格內代表尺寸為5×5的搜索窗口在左圖(x,y)為中心像素下的灰度值,與在極線約束下對應右圖(x-d,y)處的同尺寸窗口灰度值,左右窗口鄰域灰度值通過與中心像素比較生成各自對應比特串即窗口內中心像素所對應的Census值,通過異或運算得出左右比特串對應位置不同的個數為3,由此得到Hamming距離。

圖1 漢明距離的計算

將計算所得的漢明距離作為視差d下的匹配代價存入三維代價空間。Census變換計算匹配代價的整體流程以極線校正后的左右圖像作為輸入,確定窗口大小比較窗口內中心像素與鄰域像素計算Census值,通過Census值計算Hamming距離,將其作為匹配代價存入代價空間C,如圖2所示。

圖2 利用Census變換計算匹配代價

1.2 自適應加權Census

傳統Census通過將目標像素與中心像素進行比較,大于目標像素灰度的點編碼為1,小于編碼為0,對所得二進制碼串進行異或運算計算漢明距離。此過程中,Census變換默認窗口內的鄰域像素對中心像素具有相同影響,然而實際上沿著極線搜索時,在不同視差下的搜索窗口內其鄰域像素對中心像素的影響會隨著搜索窗口的不同而改變,在搜索窗口變更的過程中各鄰域像素對中心像素具有不同貢獻,同時當中心像素與其鄰域像素接近時,即中心像素值與鄰域像素值相差1或相等的情況下易導致錯誤編碼現象,基于這一角度,提出了動態自適應權重分配方法,在不同搜索窗口下根據中心像素的差異確定不同動態下的權重矩陣,對鄰域像素自適應分配與其中心像素相關聯的動態權重值。并且將加權重點應用于視差為d時,窗口內對中心像素具有明顯影響的像素點上,具有明顯影響的像素點即特異點是指左右圖像代表中心像素的二進制碼串異或運算得到的差異位所對應的鄰域像素。在匹配代價計算過程中,依據Census變換方法,采取異或運算后,不再使用Hamming距離作為代價計算結果,如圖3所示,通過將左右圖像作為輸入,分別計算Census值,與原有方法不同的是在圖像輸入階段計算以(x,y)為中心像素窗口的鄰域權重矩陣,并逐步將權重與異或運算得到的特異點加權求和,將求和后結果作為中心目標點(x,y)視差d下的匹配代價存入代價空間。

圖3 自適應權重分配Census變換

利用鄰域像素與中心像素灰度的差值構建鄰域像素與中心像素的關聯關系,當窗口內鄰域像素與中心像素灰度值相差較大時,此時處理的像素點通常為圖像的邊緣像素點,應降低邊緣像素點對中心像素的影響,因此為邊緣像素分配較小的權重值。當窗口內鄰域像素點與中心像素相接近時,搜索窗口通常在弱紋理區域,應放大搜索窗口內鄰域像素對中心像素的影響,為其分配較大的權重值。依據該權重分配策略,在不同的搜索窗口自適應的為鄰域像素分配權重,權重值的計算公式:

(4)

式中:Ip為中心像素灰度值;Iq為鄰域像素灰度值;ρ為可調節參數,經過實驗驗證ρ的取值,經過實驗本文取值0.9<ρ<1.0。

權重參數分配與匹配代價計算過程如圖4所示。通過式(4)計算得到以灰度值18為中心像素窗口的權重矩陣,圖中Census值通過比特串異或運算得出特異點,其權重分別對應權重矩陣中Weight[2]、Weight[13]、Weight[23],由此通過加權求和得出以(x,y)為中心像素視差d下新的匹配代價值C(x,y,d)。

圖4 Census加權

1.3 聚合過程

經過自適應權重分配后Census變換,得到中心目標像素窗口內鄰域像素點的權重值,并且經過左、右圖像Census值異或運算得到窗口內兩幅圖像中對中心目標像素具有明顯差異的像素點,經過加權運算再求和獲得像素點視差d下匹配代價C(x,y,d), 計算每個像素點視差范圍內的代價,將得到的代價存入三維代價空間,立體匹配算法在視差計算過程中通常采用贏家通吃(WTA,Winner-take-all)算法。把像素點視差范圍內匹配代價最小的視差值直接作為該像素點(x,y)的視差。如果直接將未聚合后的視差值采用WTA算法,得到的視差圖如圖5所示,通常伴隨模糊和大量的噪點視差圖效果較差的問題。

(a) 經典Census (b) 自適應加權Census

為了達到更好的效果,采用4路徑掃描線聚合方式,實現代價聚合,其能量函數為:

(5)

式中:第一項為數據項,即像素點p在視差d下所有匹配代價累加結果;第二項與第三項為平滑項,表示p的鄰域內q點對中心目標像素p點的影響,P1為懲罰系數,對當鄰域像素視差變化很小時做出懲罰,表示在該情況下的懲罰力度很小,由于視差與3D空間中對應點的深度成反比,每當視差增加1時所產生的變化并不會等量增加,而會以遞增狀態出現,因此P1對鄰域像素視差為1時做出懲罰,而第三項為視差大于1時所做懲罰,P2的懲罰力度較大,小的懲罰力度可以應對視差變化小的區域,較大的懲罰力度可以解決當前景像素與背景交界時的非連續情況,P2往往會根據相鄰的灰度值做出調整,當出現相鄰視差大于1的情況時,如果像素點處在非連續區域,那么在區域內相應的懲罰力度減少,如果不在非連續區域,仍然視差大于1,那么判定為無效視差點,所以懲罰要加大,最直接的方法是比較相鄰像素的灰度值,在連續區域相鄰像素灰度值相差小,而非連續區域的灰度值差值變大。

根據灰度差調整公式為:

(6)

采用路徑代價聚合的方式計算匹配代價值,對像素所在視差下的匹配代價在路徑上與前一個像素的視差構建聯系,依次迭代直到路徑結束,以各個路徑下的路徑代價值相加作為最終的匹配代價。像素p沿某條路徑的代價計算公式為:

(7)

式中:Lr(p-r,d)表示為在此路徑下前一個像素p在視差d下的聚合代價值,第三項是為了保證路徑代價值不超過一定上限。本文采取4路徑聚合方式如圖6所示。

圖6 聚合路徑Fig.6 Aggregation path

經過代價聚合后計算聚合代價獲得比較理想的視差圖,但是距離最終結果還需要經過視差細化,即對所得視差圖進行子像素擬合、一致性檢查、視差填充和加權中值濾波等過程:

(1) 子像素擬合思路基于其最終所得的視差值為整數在實際應用中無法滿足對精度的要求,所以采用二次曲線擬合的方法得到新的視差值;

(2) 一致性檢查通過對比左右視差圖對應位置的視差值,剔除無效視差,并將像素分為非遮擋區域像素與遮擋區域像素;

(3) 視差填充對加權Census處理后的視差圖在遮擋區域與非遮擋區域,按照不同的填充方式對無效值進行有效賦值,填補視差圖空洞;

(4) 中值濾波對最終所得視差圖進一步平滑與噪聲剔除,由于傳統的中值濾波在視差圖處理中對邊緣的維持效果較差,采用根據顏色信息加權中值濾波的方法對視差圖進行處理,選用3×3濾波窗口,根據原圖像彩色信息與窗口中心像素運算為窗口內每一個單元賦值,將權重值進行排列篩選出中間權值,將權值對應窗口的視差值作為濾波的結果,計算公式為:

(8)

2 實驗分析

2.1 實驗數據與環境

對自適應權重分配后的Census值計算初始匹配代價進行了驗證,在Inter(R) Core(TM)i7-7700HQ CPU @2.80GHz的Windows10系統下的Anaconda平臺Python 3環境對Middlebury 2014 數據集中Training dense幅度為四分之一的Adirondack、Motorcycle、Piano、Pipes和Teddy進行實驗驗證算法效果,獲取經算法運行后的視差圖。在Linux系統下使用Middlebury官網提供的SDK工具與Cvkit工具包將實驗所得視差圖與真實視差圖進行對比。在Middlebury中用于確定方法整體排名的默認指標[27]是全尺寸 Bad2.0,即視差誤差 >2.0 像素的壞像素的百分比。這對應于四分之一分辨率下0.5倍像素的誤差閾值。所以以Bad0.5作為定量分析標準,對應官網下的全幅圖像Bad2的壞點率,收集終端下的實驗數據,在Middlebury官網下與其他優秀算法進行對比驗證自適應權值分配變換方法的可行性。

2.2 實驗結果

實驗視差圖與真實視差圖對比數據如圖7所示,圖7(a)為左輸入圖像,圖7 (b)為右輸入圖像,圖7 (c)為實驗所得視差圖,圖7(d)為左圖像真實視差圖。對視差圖在遮擋區域與非遮擋區域,按照不同的填充方式對無效值進行有效賦值。經過加權后的Census變換在整體視差效果中,產生的噪點更少,視差圖在弱紋理區域更加平滑,邊緣清晰,驗證了自適應加權Census變換算法的可行性。

選用Bad 0.5為閾值進行分析,該算法與其他立體匹配算法結果進行比較,其視差圖對比如圖8所示,從圖中可以看出對比匹配方法的實驗結果,其所得視差圖帶有大量的連通區域,伴有邊緣模糊現象,并且在一些區域前景與背景的交界處出現過度平滑。

圖8 實驗視差圖與其他算法視差圖對比

評估算法性能如表1與表2所示,其中B為Bad0.5下的誤匹率,N為Nonocc誤匹率表示比較的匹配算法測量的區域為兩個視圖可見的非遮擋像素。A為All誤匹率,表示全局誤匹率,即比較的匹配算法測量的區域為全局,包含兩個視圖中遮擋與缺失的部分。AE為Avgerr平均絕對誤差,Q指實驗所用圖像尺寸為四分之一圖像,官方提供三種規格尺寸圖像F、H和Q分別對應全尺寸、二分之一尺寸和四分之一尺寸。處理全尺寸畫幅與二分之一畫幅圖像計算時間長,占用內存大需要配置較好的計算資源進行處理,而四分之一尺寸圖像在滿足實驗要求的同時可以充分驗證實驗效果。因此,在硬件條件有限的情況下,實驗選用四分之一尺寸圖像進行實驗。由表中數據可以看出,所提出的算法對比于其他匹配算法在遮擋區域與全局對比中誤匹率更低,表明該算法達成了預期效果。

表1 非遮擋區域對比

表2 全局對比

3 結 論

提出了一種自適應加權的Census變換算法,解決了搜索窗口內中心像素與鄰域像素接近的弱紋理區域所引起的不匹配或誤匹配問題,通過在不同匹配窗口內計算鄰域像素與中心像素的灰度差值,獲得不同搜索窗口下鄰域像素自適應的權重數組,并將權重數組與左右窗口異或運算所得特異點加權求和計算初始的匹配代價,經過一致性檢查和子像素擬合等優化步驟后得到視差圖。通過實驗對比驗證自適應加權Census變換算法的有效性。動態自適應加權Census變換與其他優秀匹配算法對比,通過構建動態權重矩陣,擴大弱紋理區域像素匹配代價值差異,由此所得視差圖整體效果更加平滑且邊緣清晰,在病態弱紋理區域適應能力更強,可以有效降低視差圖中的誤匹率,提高匹配的準確率。

猜你喜歡
視差代價鄰域
基于自適應窗的立體相機視差圖優化方法研究
稀疏圖平方圖的染色數上界
基于鄰域競賽的多目標優化算法
基于梯度域引導濾波的視差精煉迭代算法
愛的代價
代價
關于-型鄰域空間
基于分割樹的視差圖修復算法研究
立體視差對瞳孔直徑影響的研究
成熟的代價
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合