敖小樂,賀繼林,鄧 宇,2, 李成雷
(1.中南大學(xué) 機(jī)電工程學(xué)院,湖南 長沙 410083;2.湖南山河科技股份有限公司, 湖南 株洲 412002)
立體匹配是機(jī)器視覺領(lǐng)域中的一個(gè)基礎(chǔ)問題,其核心是通過查找雙目或多目圖像的對(duì)應(yīng)像素點(diǎn)來計(jì)算視差,進(jìn)而獲得所拍攝場景的深度信息。目前在自動(dòng)駕駛、虛擬現(xiàn)實(shí)、機(jī)器人導(dǎo)航等領(lǐng)域均有廣泛應(yīng)用[1]。Scharstein D等人[2]對(duì)典型的立體匹配算法進(jìn)行了深入研究,將立體匹配分為代價(jià)計(jì)算、代價(jià)聚合、視差選擇/優(yōu)化、視差修正四個(gè)過程。根據(jù)視差優(yōu)化方法的不同,立體匹配可分為全局算法和局部算法兩類。全局算法通過構(gòu)造能量最小化函數(shù)求取視差,算法精度高,但計(jì)算量大、實(shí)時(shí)性差。局部算法利用窗口內(nèi)鄰域信息來計(jì)算單像素視差,相比全局算法,具有計(jì)算復(fù)雜度低、效率高等優(yōu)點(diǎn),但存在窗口選擇難題,且其計(jì)算復(fù)雜度與所選窗口相關(guān)。
代價(jià)計(jì)算用來度量左右圖像對(duì)應(yīng)像素的相似性,常見的有絕對(duì)亮度差(absolute brightness difference,AD)、梯度、Census變換等代價(jià),Hirschmuller H等人[3,4]對(duì)這些匹配代價(jià)進(jìn)行了詳細(xì)的評(píng)述。目前,多數(shù)立體匹配算法選擇融合多種匹配代價(jià),Mei X等人[5]對(duì)AD和Census代價(jià)進(jìn)行線性融合;Fan H R等人[6]對(duì)Census和梯度代價(jià)進(jìn)行融合。結(jié)果表明對(duì)多種代價(jià)進(jìn)行融合能夠兼顧不同匹配代價(jià)的優(yōu)點(diǎn),可以取得更高的精度以及更強(qiáng)的魯棒性。
為提高信噪比,局部算法假定同一窗口內(nèi)像素具有相似的視差,用窗口內(nèi)像素代替單個(gè)像素代價(jià),也即代價(jià)聚合。常用方法有引導(dǎo)圖濾波[7]、十字交叉窗口聚合[8]等,但這些方法仍然受到支持窗口的限制,使得精度難以提升。Yang Q[9]提出非局部算法,通過構(gòu)造圖像的最小生成樹(minimum spanning tree,MST),在圖像全局范圍內(nèi)進(jìn)行像素代價(jià)聚合,在時(shí)效性以及精確性上都取得了較好的結(jié)果。基于此,Mei等人[10]提出分割樹(segment tree,ST)算法,Yao P等人[11]提出MST-CD算法均表明,基于最小生成樹的代價(jià)聚合方法要優(yōu)于其他局部算法。
本文提出一種融合多種代價(jià)的改進(jìn)非局部立體匹配算法;增強(qiáng)了算法在低紋理區(qū)域表現(xiàn),提高了視差精度。
傳統(tǒng)的非局部算法對(duì)RGB顏色代價(jià)和水平方向梯度代價(jià)進(jìn)行線性融合
(1)
由于該匹配代價(jià)只利用了水平方向梯度,忽略了垂直方向梯度包含的豐富信息;此外由于兩截?cái)嚅撝郸覣D,τGRDX不一致,該融合代價(jià)無法直觀體現(xiàn)兩代價(jià)實(shí)際所占比重。針對(duì)這些問題,本文先融入垂直方向梯度,并對(duì)各代價(jià)做歸一化處理,再進(jìn)行線性融合
C′(p,p′)=α·ρ[CAD(p,p′),τAD]+β·ρ[CGRDX(p,p′),τGRDX]+(1-α-β)·ρ[CGRDY(p,p′),τGRDY]
(2)
式中α,β∈(0,1)用來平衡各代價(jià)比重;CGRDY(p,p′)為垂直方向梯度代價(jià);各匹配代價(jià)歸一化計(jì)算公式為
ρ(C,τ)=1-e(-C/τ)
(3)
經(jīng)過以上歸一化處理并線性融合后,匹配代價(jià)被映射到(0,1)區(qū)間。為進(jìn)一步增強(qiáng)算法在低紋理區(qū)域表現(xiàn),對(duì)融合后代價(jià)進(jìn)行對(duì)數(shù)變換
C(p,p′)=ln(1+eC′(p,p′))
(4)
C(p,p′)即為最終匹配代價(jià)。上式中,當(dāng)代價(jià)趨于0時(shí),該變換函數(shù)能夠?qū)⒅禐榱愕拇鷥r(jià)轉(zhuǎn)換為非零代價(jià)ln 2,從而提高低紋理區(qū)域像素對(duì)代價(jià)聚合的貢獻(xiàn);而當(dāng)代價(jià)逐漸增大時(shí),該函數(shù)則愈趨近于C′(p,p′),這樣便能保持高紋理區(qū)域代價(jià)的區(qū)分性。
文獻(xiàn)[9]中,圖像被看作是一幅四連通或八連通的無向圖G=(V,E),V為無向圖頂點(diǎn),為圖像像素點(diǎn)集合;E為無向圖的邊,連接四鄰域或八鄰域像素對(duì)。根據(jù)該無向圖便可構(gòu)建一顆最小生成樹,其中邊權(quán)為相鄰像素顏色(R,G,B)的最大絕對(duì)差
(5)
式中Ij(p)為像素p在j通道的值。然后采用kruskal算法構(gòu)建最小生成樹。
對(duì)于該最小生成樹中任意兩點(diǎn)p,q,其路徑是唯一的,因此,該路徑長度也必然唯一,記為D(p,q),其值為路徑上各邊權(quán)重之和?;诖?可定義圖像中任意兩像素p和q的相似性
S(p,q)=S(q,p)=e-D(p,q)/σ
(6)
式中σ為參數(shù)用來調(diào)節(jié)該相似性。最終聚合代價(jià)為
(7)
根據(jù)1.2節(jié)描述,非局部算法采用式(6)描述相鄰兩像素相似度,通過調(diào)節(jié)參數(shù)σ來權(quán)衡鄰近像素對(duì)聚合代價(jià)的貢獻(xiàn)大?。害以酱?S(p,q)則越小,聚合代價(jià)主要由最小生成樹上鄰近像素貢獻(xiàn),即聚合代價(jià)由少部分像素主導(dǎo),導(dǎo)致算法在低紋理區(qū)域易出現(xiàn)錯(cuò)誤匹配;反之,σ越小,將有更多的像素貢獻(xiàn)代價(jià),導(dǎo)致在高紋理區(qū)域誤匹配率較高。
可以看出,σ的選擇對(duì)最終視差精度會(huì)產(chǎn)生較大影響,目前的非局部立體匹配算法[10~12]多著重于最小生成樹的構(gòu)造,以期得到最符合圖像結(jié)構(gòu)的最小生成樹,而對(duì)于σ多采用經(jīng)驗(yàn)值。本文算法對(duì)參考圖進(jìn)行分析,自適應(yīng)的選擇合適的σ值。
首先將圖像轉(zhuǎn)至HSV顏色空間。在HSV空間中,像素的色度和亮度被分開,計(jì)算相鄰像素的色度差為
(8)
式中h(p),s(p)分別為像素p的色相值及飽和度值,其中,色相和飽和度都經(jīng)過了歸一化處理。統(tǒng)計(jì)所有相鄰像素色度差,便可求得圖像平均色度差η
(9)
式中E為連接任意兩相鄰像素的邊集。
根據(jù)平均色度差定義可知:η越大,圖像顏色紋理則越豐富,為了降低誤匹配率,在代價(jià)聚合時(shí),鄰近像素應(yīng)做主要貢獻(xiàn),即σ越大;反之,圖像紋理越單一,則需要更多像素參與主要貢獻(xiàn)??山ⅵ桥cσ關(guān)系
σ=kη
(10)
式中k為比例系數(shù)。依據(jù)原圖平均色度差η為不同紋理圖像自適應(yīng)地選擇合適的σ。
視差選擇采用WTA(Winner-Takes-ALL)策略
(11)
(12)
重新計(jì)算匹配代價(jià)
(13)
本文算法使用Middlebury2.0立體匹配評(píng)測平臺(tái)提供的31組圖像對(duì)進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)環(huán)境為:Visual Studio 2013下C/C++編譯環(huán)境,Win10 x64系統(tǒng),Intel Core i7—6700 CPU—3.4G Hz,16 G內(nèi)存。
為驗(yàn)證算法實(shí)際性能,除非特別說明,否則本文中涉及到的視差圖都未經(jīng)過任何視差修正或后處理操作;實(shí)驗(yàn)中誤差限為1像素。
為驗(yàn)證改進(jìn)后代價(jià)的有效性,對(duì)代價(jià)改進(jìn)前后非局部算法得到的視差圖進(jìn)行對(duì)比。圖1(a)和(e)為原圖;(b)和(f)改進(jìn)前;(c)和(g)經(jīng)過代價(jià)融合后;(d)和(h)經(jīng)過對(duì)數(shù)變換后,改進(jìn)后視差圖中誤匹配標(biāo)記點(diǎn)明顯少于改進(jìn)前,尤其是低紋理區(qū)域。對(duì)比圖(b),(c)以及圖(f),(g)可看出,融入垂直方向梯度代價(jià)后,算法在低紋理區(qū)域表現(xiàn)得到很大提升;對(duì)比(c),(d)以及(g),(h)發(fā)現(xiàn),通過對(duì)融合代價(jià)作對(duì)數(shù)變換,能夠進(jìn)一步增強(qiáng)算法在低紋理區(qū)域表現(xiàn)。
圖1 代價(jià)改進(jìn)前后非局部算法對(duì)Wood1和對(duì)Rocks1圖像處理獲得的視差
如圖2,通過比較代價(jià)改進(jìn)前后非局部算法在Middlebury平臺(tái)上31組圖像對(duì)的平均誤匹配率可知,融入垂直方向梯度代價(jià)后,算法的誤匹配率大幅降低,再對(duì)融合代價(jià)作對(duì)數(shù)變換,可進(jìn)一步降低算法誤匹配率。
圖2 代價(jià)改進(jìn)前后非局部算法在非遮擋區(qū)域誤匹配率
為驗(yàn)證平均色度差η與參數(shù)σ之間比例關(guān)系,分別計(jì)算不同紋理圖像平均色度差,并運(yùn)行改進(jìn)代價(jià)后的非局部算法,得到各圖像最佳σ值。
如圖3所示,不同參考圖具有不同的最佳σ值,且其變化趨勢與平均色度差的變化基本一致;對(duì)比圖3(a)和圖3(b)可知,低紋理圖像具有更小的η以及σ,這是因?yàn)樵谝允?5)為邊權(quán)建立的最小生成樹上,相鄰像素點(diǎn)此時(shí)具有相似的視差值,較小的σ能夠促使更多的像素參與聚合,提高匹配精度??梢钥闯?平均色度差確實(shí)能夠反映圖像紋理信息。
圖3 不同參考圖的平均色度差η及最佳σ值
通過改變k,可以改變?chǔ)呛挺业谋壤P(guān)系:
如圖4所示,隨著k值的增加,所提算法在非遮擋區(qū)域?qū)iddlebury測試平臺(tái)31組圖像對(duì)的誤匹配率有一先減再增的過程,并在k為1.0時(shí)取得最小值。
圖4 不同k取值下的誤匹配率
為測試所提算法的總體性能,本文選取MST[9],ST[10],CS-GF[13]作為對(duì)照算法。實(shí)驗(yàn)中,涉及到的參數(shù)設(shè)置:α為0.15,β為0.48,τAD為9,τGRDX為0.5,τGRDY為0.5,k為1.0。
所提算法在Middlebury上31組立體圖像對(duì)性能評(píng)估(無視差修正,誤差限為1像素)的平均誤匹配率最低,僅為7.86 %,精度最高;平均排名為1.61,其中在18組圖像對(duì)中取得最好結(jié)果,在10組圖像對(duì)中取得第二好結(jié)果,表明所提算法具有更好的泛化能力;本文算法運(yùn)行時(shí)間為1.2 s,這是因?yàn)橐肓舜怪狈较蛱荻纫约皩?duì)數(shù)變換,增加了計(jì)算量,導(dǎo)致處理時(shí)間增加。然而所提算法在小幅增加運(yùn)行時(shí)間基礎(chǔ)上,在精度及泛化性上有很大的提升。
表1為經(jīng)過視差修正后,4種算法在本文實(shí)驗(yàn)環(huán)境中對(duì)Middlebury 2.0上31組立體圖像對(duì)的評(píng)測結(jié)果。可以看出,經(jīng)視差修正處理,所有算法精度均有不同幅度提升,同時(shí)運(yùn)行時(shí)間也相應(yīng)增加;而本文所提算法無論在非遮擋區(qū)域誤差還是全像素誤差方面仍舊取得最好的結(jié)果。
表1 不同立體匹配算法在Middlebury上31組立體圖像對(duì)性能評(píng)估(經(jīng)視差修正,誤差限為1像素)
圖5為各算法對(duì)Tsukuba,Teddy,Flowerpots,Monopoly圖像對(duì)處理后得到視差。
圖5 不同立體匹配算法在Tsukuba、Teddy、Flowerpots和Monopoly圖像對(duì)上的測試結(jié)果
實(shí)驗(yàn)結(jié)果表明,所提算法在Middlebury測試平臺(tái)上平均誤匹配率為7.86 %,經(jīng)視差修正后平均誤匹配率為6.62%,匹配精度優(yōu)于當(dāng)前優(yōu)秀的局部和非局部算法。