侯一民,尚浩天
(東北電力大學(xué)自動化工程學(xué)院,吉林吉林,132012)
立體匹配是當(dāng)前雙目視覺領(lǐng)域發(fā)展的重點(diǎn)和研究熱點(diǎn)。各國研究學(xué)者都進(jìn)行著深入的探索和研究,新的算法、模型及應(yīng)用前景等不斷涌現(xiàn)。例如,C.Tomasi提出了一種基于雙邊濾波的代價聚合方法[1],該方法改進(jìn)了圖像邊緣的匹配精度。尹傳歷團(tuán)隊(duì)首先將待匹配圖像用均值平移算法實(shí)現(xiàn)了顏色信息聚類處理后,計(jì)算初始視差,然后用圖割算法得到全局能量最小的視差作為最優(yōu)[2]。
雙目立體視覺系統(tǒng)的應(yīng)用過程中,雙目相機(jī)所在場景、位置不同,采集的圖像會受到很多因素干擾,例如光照、遮擋等,容易造成誤匹配。在實(shí)際應(yīng)用中,只能夠根據(jù)不同場景和約束條件來選擇合適的匹配算法。立體匹配也成為了當(dāng)前的研究難點(diǎn)。
立體匹配算法原理[3]即以左目圖像為參考,任取一像素點(diǎn)作待匹配像素點(diǎn)為中心取m×n的矩形窗口,再根據(jù)極線約束原理,在右目圖像上肯定存在一個像素點(diǎn)與像素點(diǎn)對應(yīng)匹配,接著從右目圖像上沿著極線方向每個視差對應(yīng)的整個窗口內(nèi)所有像素點(diǎn)的匹配代價相似性最大的點(diǎn)所對應(yīng)的視差值視為該像素的視差值。如圖1所示。

圖1 立體匹配過程圖
經(jīng)研究工作者對立體匹配算法進(jìn)行了全面的總結(jié),具體計(jì)算過程可分解為四步[4]:
第一步:代價計(jì)算。匹配代價是指對于雙目圖像匹配點(diǎn)對之間相似程度的一種數(shù)學(xué)描述。對應(yīng)點(diǎn)之間的匹配代價越小表示它們間的差異越小,相關(guān)性越高,越可能成為對應(yīng)匹配點(diǎn),這種相似性的衡量需要利用相似性度量函數(shù)來計(jì)算測量。不同的立體匹配算法所選取的相似性度量函數(shù)有所不同。
第二步:代價聚合。基于區(qū)域的匹配算法是以像素點(diǎn)的灰度值作為匹配基元,但是如果只是利用單個像素點(diǎn)的灰度值計(jì)算得到的匹配代價衡量,會有可能在多個匹配點(diǎn)上得到同樣的匹配代價,這樣很容易在后期視差選擇上造成歧義,使匹配出錯。因此,為了提升匹配準(zhǔn)確度,一般在匹配算法中加入代價聚合的匹配窗口,將匹配點(diǎn)鄰域內(nèi)的所有像素點(diǎn)的匹配代價也計(jì)算出來,然后對所選窗口內(nèi)的所有像素點(diǎn)匹配代價進(jìn)行聚合,再用聚合后的代價衡量待匹配點(diǎn)之間的相關(guān)性。
第三步:視差值選擇。在視差值選擇最優(yōu)值的方法,目前最常見的方法是采用WTA(Winner Take All)方法,選取最小代價值所對應(yīng)的視差值作最優(yōu)的視差。
第四步:視差圖優(yōu)化。經(jīng)過以上三步處理后得到的視差圖還會存在一些噪聲點(diǎn),為了使視差圖的效果看起來更好一些,還需要進(jìn)行一些濾波操作,比如最常用、有效的方法是中值濾波,其采用不同的窗口濾波的效果也有所不同。
立體匹配算法中局部匹配算法原理比較簡單,但在視差圖像的遮擋區(qū)域與視差不連續(xù)區(qū)域的處理效果比較差;全局匹配算法處理的視差圖效果較好,但是圖割匹配算法比較復(fù)雜,運(yùn)行時間過長不利于實(shí)時性。通過綜合分析來看,半全局匹配算法在各方面來看應(yīng)用效果更好,因而本文算法主要是針對半全局匹配算法進(jìn)行改進(jìn)與優(yōu)化。
在匹配代價計(jì)算上采用CEN算法[5]與SAD算法再加梯度信息相結(jié)合的方式。CEN算法首先選取一個3×3窗口,接著將窗口內(nèi)所有像素與中心像素相比較,選定大于中心像素即為0,小于則為1。然后求取它們的hamming距離進(jìn)而比較相似度。
SAD算法即先構(gòu)造一個小窗口循環(huán)覆蓋左邊圖像,直到將所有點(diǎn)遍歷一遍,右邊圖像同樣覆蓋遍歷,同時左、右邊窗口中像素點(diǎn)灰度值相減得到絕對值之和,其中最小的一個值即為顏色信息的匹配代價。
梯度信息可以有效解決視差不連續(xù)區(qū)域的誤匹配問題,提高匹配精確度。
綜上,代價計(jì)算算法具體計(jì)算方法如式(1)所示:

代價聚合本質(zhì)上是一個濾波過程,本文采用的是引導(dǎo)濾波算法。代價計(jì)算獲得的都是孤立像素區(qū)域的視差值并且?guī)в写罅吭肼暎鷥r聚合便能有效地解決問題,提高精度。本文在算法上將雙目圖像分解到多個尺度上,接著單獨(dú)進(jìn)行代價計(jì)算、代價聚合,然后融合代價聚合的結(jié)果,最終獲得視差圖。得到的不同尺度下的初級匹配效果如圖2所示。

圖2 金字塔處理效果圖
從圖中可以看出如同人眼中的不同觀測范圍,距離越遠(yuǎn)視差圖越小,把握了主體的輪廓信息,距離越近,視差圖的細(xì)節(jié)效果越明顯。
為了融合多個尺度的信息,這里引入一致性約束規(guī)則進(jìn)行約束。經(jīng)正則化后各尺度下的代價聚合結(jié)果如式(2)所示:

其中,λ為正則化因子為尺度參數(shù);Zi為歸一化常數(shù);Ni代表中心點(diǎn)像素為i的局部支持窗口;z為所期望優(yōu)化的目標(biāo)輸出值;為經(jīng)正則化后各尺度下的代價聚合結(jié)果。
視差優(yōu)化:一般通過以上方法計(jì)算后獲取的視差圖會包含一些缺點(diǎn),如遮擋區(qū)域的視差不準(zhǔn)確、噪聲點(diǎn)、誤匹配點(diǎn)仍然存在,因此還需進(jìn)一步優(yōu)化視差圖。本文采用的是加權(quán)中值濾波和左右一致檢測結(jié)合的方法。
左右一致檢測方法:在立體匹配過程中由于遮擋區(qū)域和誤匹配兩種干擾因素導(dǎo)致了視差圖中產(chǎn)生了奇異點(diǎn)。因?yàn)槠娈慄c(diǎn)區(qū)域的原因是視差圖效果不是很好,因此需要左右一致檢測將奇異點(diǎn)區(qū)域檢測并標(biāo)記出來,然后針對不同的情況進(jìn)行合理插值。奇異點(diǎn)判別定義如式(3)所示:

其中w表示圖像像素列數(shù),disparity表示視差圖中的視差值,DL(p)表示左圖像素點(diǎn)p的視差值,DR(p?DL(p))表示右圖像素點(diǎn)p?(DL(p),0)處的視差值,dispTolerance表示可容許范圍內(nèi)視差誤差閾值。
然后通過公式判斷誤匹配點(diǎn)與遮擋點(diǎn),如式(4)所示:

其中disp表示有效視差值,DL(p)為左圖中p點(diǎn)視差值,DR(p?DL(p))表示右圖像素點(diǎn)p?(DL(p),0)處視差值。若視差圖中奇異點(diǎn)是遮擋點(diǎn)常用鄰域較小值代替,遮擋區(qū)域的產(chǎn)生大多因?yàn)楸尘暗挠绊?,誤匹配區(qū)填充多因匹配代價與像素值的差異的影響,一般找相似區(qū)域的值代替。
中值濾波:一般以上操作完成之后,會再進(jìn)行一步中值濾波加以消除可能存在的噪聲點(diǎn)。具體過程如下:
首先遍歷得到視差中的點(diǎn),假設(shè)遍歷到一點(diǎn)p,且已知其像素值為d,其左右鄰域像素中點(diǎn)的匹配代價分別為c(p,d?)和c(p,d+),p點(diǎn)對應(yīng)的匹配代價為c(p,d),然后通過公式(5)所示,計(jì)算第三項(xiàng)的值,若在范圍內(nèi)則將p點(diǎn)像素值用d+代替,否則保持原值。

經(jīng)以上算法運(yùn)算后得到最終視差圖如圖3所示。

圖3 本文算法匹配效果圖
對視差圖進(jìn)行一系列處理之后,若單純只憑感官是不能客觀的對視差圖作出有效的判斷。為此本文引入了一種評估方法,分別計(jì)算視差圖的所有區(qū)域、視差不連續(xù)區(qū)域以及非遮擋區(qū)域的誤匹配百分比。通過運(yùn)算得到的數(shù)據(jù)可以清晰的看出各個方面的不足,以便能夠有針對性的對其進(jìn)行優(yōu)化改進(jìn)。本文對算法的評估所用的測試照片來自于Middlebury數(shù)據(jù)平臺,算法運(yùn)行環(huán)境為VS2013+Opencv2.4.13。圖4是本文算法生成視差圖的錯誤點(diǎn)圖。

圖4 本文算法評估
為了給出更加準(zhǔn)確的比較結(jié)果,又將本文算法得到的視差圖在all, disc, non三部分分別與SGBM、BM、GC、自適應(yīng)窗口等算法生成的視差圖進(jìn)行對比,其中all, disc,non分別代表所有區(qū)域、非連續(xù)區(qū)域和非遮擋區(qū)域。測試結(jié)果如表1所示。
從表1中可以看出,本文算法在局部匹配算法的范圍內(nèi),匹配精度有了很大的提高,但是相比于GC算法,在匹配精度的比較上還有一些差距,為我們提供了改進(jìn)的方向。

表1 誤像素匹配百分比
本文首先闡述了立體匹配算法的原理,接著針對半全局匹配算法進(jìn)行改進(jìn)和優(yōu)化,詳細(xì)介紹了本文算法的原理,并且通過在Middlebury數(shù)據(jù)測試平臺上進(jìn)行對比分析表明了本文算法的優(yōu)越性。本文所研究的算法在匹配精度方面有了一些提高,但是在執(zhí)行速度上有所下降,因?yàn)樗惴ǖ膹?fù)雜度有所提高,所以增加了一定的運(yùn)算時間,而且在算法精度上依然有上升的空間,有些算法步驟還可以進(jìn)行更加細(xì)致的研究,在應(yīng)用于真實(shí)場景中的視差圖效果依然需要改進(jìn),下一步便是針對這些問題進(jìn)行研究。