王小明
(江西省地質礦產勘查開發(fā)局九一二大隊 江西鷹潭 335000)
隨著社會對智慧城市建設需求的不斷增強,基于雙目視覺的城市三維重建越來越引發(fā)專家和學者的關注。立體匹配作為三維重建的關鍵性步驟,其匹配精度很大程度上決定了三維重建的精度。立體匹配過程可分為四個階段:代價計算、代價聚合、視差計算和視差優(yōu)化[1]。目前,立體匹配算法大致可分為兩類:基于局部的立體匹配算法和基于全局的立體匹配算法[2]。Census變換[3]作為局部匹配算法的一種,以其對光照強度不敏感且算法復雜度較低等優(yōu)勢,在一種代價計算方法中脫穎而出。近年來,許多專家和學者致力于對常規(guī)Census變換算法的改進,大致可分為兩類[4]:利用自身窗口不同特性改變計算方式或賦予一定權值[5-7];結合其他具有互補特性的代價計算方式[8-9]。這些改進均從不同程度提升了匹配精度,但存在一個共同弊端;即在采用規(guī)則矩形窗口計算匹配代價,使得在圖像不同區(qū)域適應性不強,從而導致易產生誤匹配。且雖然匹配精度有所提高,但算法復雜度亦有不同程度的提升,一定程度上阻礙了算法的推廣使用。
為解決以上問題,提出一種基于區(qū)域增長自適應窗口的Census變換立體匹配算法。該算法能在保持傳統(tǒng)Census變換匹配速率的基礎上,提升匹配精度。該算法針對傳統(tǒng)Census變換算法采用矩形窗口計算匹配代價,使得在圖像不同的紋理區(qū)域難以獲取合適的窗口,且窗口易包含視差不連續(xù)區(qū)域,使得誤匹配率增高的弊端,提出以待匹配點為種子點,利用一定規(guī)則的區(qū)域增長算法自適應地獲取不同形狀和大小的匹配窗口。且傳統(tǒng)Census變換在代價聚合階段采用垂直交叉自適應窗口,存在漏檢區(qū)域,因此,在代價聚合階段采用與代價計算階段相同策略的區(qū)域增長算法獲取聚合窗口。實驗表明,基于區(qū)域增長自適應窗口的Census變換立體匹配算法匹配速率與傳統(tǒng)Census變換算法相當,但匹配精度更優(yōu)。
立體匹配實質上是尋找同名點的過程,其精度很大程度上取決于代價計算和代價聚合策略的優(yōu)劣。本文欲結合基于區(qū)域增長的自適應窗口策略和傳統(tǒng)Census變換的代價計算方法,提出一種既能保持傳統(tǒng)Census變換算法對光照和各種幅度失真魯棒性強的優(yōu)勢,又能一定程度彌補其誤匹配率較高的劣勢的算法。該算法從優(yōu)化代價計算和代價聚合的窗口入手,結合文獻[3]及文獻[10]的方法,本文采用的基于區(qū)域增長的自適應窗口策略如式1所示。
以待匹配點p為種子點,分別沿其x軸正方向和負方向增長窗口。當滿足以下條件時將新增點p1納入窗口,否則停止該方向的增長:
①待匹配點p與新增點p1的灰度值之差小于閾值,且新增點p1與該方向下一點的灰度值之差也小于。
②新增點p1與待匹配點p之間的距離稱為臂長Ds(p1,p),臂長Ds(p1,p)小于于閾值L1。
③當臂長小于閾值L1,但大于另一特定值L2,且待匹配點與新增點p1的灰度差小于另一更小的閾值τ2。
其中,條件①不僅限制了待匹配點p與新增點p1之間的差異,也限制了新增點p1與該方向下一點的的差異。如此,不僅能將相近的像素納入窗口,也能避免出口跨越圖像內的邊界。條件②和③使得窗口能獲取合適大小和形狀的窗口。條件②使得窗口能夠納入足夠多的像素,但當臂長大于另一個更小的閾值L2時,此時對新增像素的要求更嚴格,需滿足其與待匹配點p的灰度差異小于一個更小的閾值,確保了納入窗口的像素都是與待匹配點相近的像素。
然后,以同樣的策略對水平臂上的像素沿y軸正方向和負方向增長窗口。窗口增長流程圖見圖1。
圖1 基于區(qū)域增長的窗口增長示意圖
相較于傳統(tǒng)Census變換算法采用的9 x7的矩形窗口,該窗口增長策略,不僅能在圖像不同區(qū)域自適應地獲取不同大小和形狀的窗口,而且窗口內不易包含深度不連續(xù)區(qū)域,有利于提升匹配精度。
確定匹配窗口后,進一步則需確定代價函數的選擇。本文選擇采用與傳統(tǒng)Census變換一致的代價計算方法,該方法以對光照不敏感且對圖像的各種幅度失真有較強的穩(wěn)健性著稱。該方法將匹配窗口內的其它像素點與待匹配像素點進行比較,若某像素灰度值大于待匹配像素點灰度值,則將該像素對應位置設為1,否則設為0。待整個窗口內像素都比較完成之后,得到一個只含0和1的比特串,然后用該比特串代替待匹配點的灰度值,計算公式如式2所示。
其中,p為待匹配點,q為匹配窗口內除待匹配點以外的點,I(p)為待匹配點的灰度值,I(q)為窗口內其他像素的灰度值,T(p)為經過比較之后獲得的比特串。如此,獲取左圖和右圖每個像素的比特串。
最后利用Hamming距離計算匹配代價,計算方法如圖2所示。
圖2 代價計算示意圖
如圖,獲取左圖和右圖各像素點的比特串后,將左圖上的待匹配點比特串與右圖視差范圍內的像素點的比特串進行比較,統(tǒng)計對應位不同的數量作為匹配代價。如圖2中,左圖和右圖有兩個對應位的比特數不同,則此時的匹配代價為2。
采用如上代價計算方法,考慮的僅僅是待匹配點與窗口內其它像素點間灰度值的相對大小關系,因此,當左圖和右圖亮度不一致時,也能獲得較好的視差圖。這也是Census變換算法對光照不敏感的原因。
傳統(tǒng)Census變換在代價聚合階段采用的是垂直交叉自適應窗口,具有較好的適應性,但該窗口存在漏檢區(qū)域,不利于獲得最優(yōu)的聚合代價。因此,本文采用與代價計算階段相同,適應性較垂直交叉自適應窗口更強的的區(qū)域增長策略獲取代價聚合窗口。將待匹配點x軸和y軸方向的像素視為水平臂和垂直臂。先將聚合窗口內的像素沿待匹配點p的垂直臂上聚合,然后再將p的垂直臂沿待匹配點p上聚合,獲得該點的聚合代價值。其原理如圖3所示。
圖3 代價聚合示意圖
與代價計算階段不同的是,在代價聚合階段采用2次迭代的方式,第一次迭代先沿水平方向增長再沿垂直方向增長窗口,第二次迭代先沿垂直方向增長,再沿水平方向增長,取二者中較小的作為代價聚合值。如此,能有效降低視差不連續(xù)區(qū)域的誤匹配率。
視差計算采用“勝者為王(Winner Takes All,WTA)”策略,取聚合代價值最小的窗口對應的像素點為最佳匹配點,其對應的視差為最終視差。
為驗證算法的性能,利用Middleburry網站提供的標準測試圖像對:bull、cones、teddy和venus進行實驗。實驗共分為兩部分:第一部分將傳統(tǒng)Census變換與本文基于區(qū)域增長自適應窗口的Census變換立體匹配方法獲取的視差圖進行對比;實驗第二部分,為定量分析本文算法的性能,將傳統(tǒng)Census變換與本文算法對以上四個標準測試圖像對的匹配精度及算法運行時間進行對比分析。
經實驗對比分析,算法中涉及的參數L1、L2、、分別取34、17、20和6。為測試本文基于區(qū)域增長自適應窗口的Census變換立體匹配方法的優(yōu)勢,實驗第一部分分別獲取了本文算法及傳統(tǒng)Census變換的視差圖,以直觀分析兩種算法獲取的視差圖的質量,對比圖如圖4所示。
圖4 實驗圖集
由圖可知,本文基于區(qū)域增長自適應窗口的Census變換立體匹配方法獲取的視差圖較傳統(tǒng)Census變換更優(yōu),特別是在邊界區(qū)域(如圖中圈內區(qū)域)。這是由于傳統(tǒng)Census變換在計算匹配代價時采用規(guī)則的矩形窗口,在圖像不同區(qū)域無法獲取最適合的匹配窗口,且易包含圖像邊界,導致在圖像邊界區(qū)域誤匹配率較高。而本文基于區(qū)域增長自適應窗口的Census變換立體匹配方法在圖像不同區(qū)域能自適應地獲取合適大小和形狀的匹配窗口,且在圖像邊界區(qū)域能自動退回至邊界內,使得圖像邊界能得到較好的保持。
實驗第二部分,為定量衡量本文基于區(qū)域增長自適應窗口的Census變換立體匹配方法的優(yōu)勢,將其匹配精度與算法運行時間與傳統(tǒng)Census變換進行對比,結果見表1。
表1 算法性能對比
由實驗結果可知,基于區(qū)域增長自適應窗口的Census變換立體匹配方法相較于傳統(tǒng)Census變換,算法運行時間略長。這是由于算法較傳統(tǒng)Census變換,增加了自適應獲取匹配窗口的過程。但算法匹配精度更高,這是由于基于區(qū)域增長自適應窗口的策略能針對圖像的不同區(qū)域自適應地獲取合適的窗口用于匹配,有利于提高匹配精度。
針對傳統(tǒng)Census變換在計算匹配代價時采用相同大小的規(guī)則矩形窗口完成整張圖的匹配工作,缺乏良好的適應性,且在代價聚合階段采用垂直交叉自適應窗口,存在漏檢區(qū)域等缺陷,提出一種基于區(qū)域增長自適應窗口的Census變換立體匹配方法,在代價計算及代價聚合階段,采用區(qū)域增長策略自適應獲取合適大小和形狀的窗口。實驗結果表明,基于區(qū)域增長自適應窗口的Census變換立體匹配方法相較于傳統(tǒng)Census變換算法運行時間略長,但匹配精度更高,綜合比較,還是該算法更優(yōu)。