馬濱濱,肖玲
(中車南京浦鎮(zhèn)車輛有限公司,江蘇南京,210031)
作為雙目立體視覺(jué)的關(guān)鍵步驟之一,立體匹配的主要任務(wù)是確定雙目圖像中對(duì)應(yīng)像素點(diǎn)之間的視差,并由此獲得空間點(diǎn)的深度信息[1]。盡管其已經(jīng)經(jīng)過(guò)四十多年發(fā)展,但由于噪聲、圖像亮度區(qū)別、遮擋、反光區(qū)域、透明物體等諸多因素的影響[2],至今研究者們也沒(méi)有找到出一種兼顧匹配精度和算法實(shí)時(shí)性的有效解決方法,因而至今依然是學(xué)術(shù)界研究的難點(diǎn)和熱點(diǎn)。2002年,Scharstcin和Szeliski等人發(fā)表了一篇具有里程碑意義的綜述性文章[3]。在文中,通過(guò)對(duì)當(dāng)時(shí)立體匹配算法的相關(guān)研究進(jìn)行梳理與總結(jié),認(rèn)為立體匹配的一般程序主要包括匹配代價(jià)計(jì)算(matching cost computation)、代價(jià)聚合(cost aggregation)、視差計(jì)算 / 優(yōu)化(disparity computation/optimization)、 視差改進(jìn)(disparity refinement)。并根據(jù)采用最優(yōu)化理論方法的不同將立體匹配分為基于局部對(duì)比優(yōu)化的局部立體匹配算法和基于全局優(yōu)化的全局立體匹配算法。除此之外,為了對(duì)立體匹配算法的性能有一個(gè)統(tǒng)一的評(píng)比標(biāo)準(zhǔn),創(chuàng)建了Middleburry立體視覺(jué)網(wǎng)站[4]。近年來(lái),隨著立體匹配研究及學(xué)科交叉的深入發(fā)展,特別是新的數(shù)學(xué)方法的引入,涌現(xiàn)出很多新的立體匹配算法[5]。例如,基于深度學(xué)習(xí)的立體匹配方法突破了局部和全局的界線,極大地豐富了立體匹配算法的理論,顯著提升了立體匹配的精度和速度[6]。
SAD匹配算法在灰度信息及紋理豐富的圖像邊緣區(qū)域匹配速度快、實(shí)時(shí)性強(qiáng),但對(duì)光照強(qiáng)度的均勻性和噪聲較敏感,魯棒性較差[7];改進(jìn)的Census匹配算法具有更高的魯棒性和匹配精度,但在視差不連續(xù)區(qū)域容易出現(xiàn)誤匹配,所以僅僅使用其中一種匹配算法很難在實(shí)際場(chǎng)景中得到具有較高精度的視差圖[8]。因此,本文將SAD匹配算法和改進(jìn)后的Census匹配算法進(jìn)行融合計(jì)算匹配代價(jià),充分利用兩算法之間可以優(yōu)勢(shì)互補(bǔ)的特點(diǎn),使匹配算法的具有更高的實(shí)時(shí)性、匹配精度和魯棒性。
采用文獻(xiàn)[9]自適應(yīng)權(quán)重的設(shè)置的方式將SAD匹配算法、改進(jìn)Census匹配算法進(jìn)行歸一化融合,讓算法在紋理豐富的圖像邊緣區(qū)域賦予SAD算法更高的權(quán)重,在圖像平滑、紋理重復(fù)區(qū)域賦予Census算法更高的權(quán)重。融合后得到的新的匹配代價(jià)計(jì)算公式如式(1)所示。
式中,C(x,y,z)是最終的匹配代價(jià);β、1-β分別是控制SAD匹配算法、Census匹配算法參與匹配代價(jià)計(jì)算的權(quán)重;λSAD、λCen為常數(shù),分別是SAD匹配算法和改進(jìn)后的Census匹配算法的代價(jià)權(quán)值;ρ(C,λ)是歸一化函數(shù),用于控制SAD匹配算法、Census匹配算法計(jì)算的匹配代價(jià)值的取值范圍在[0,1]。
十字交叉區(qū)域的構(gòu)造示意圖如圖1所示。首先,根據(jù)色彩相似性和空間距離關(guān)系設(shè)定一個(gè)色彩閾值τ與一個(gè)空間距離閾值L ,然后在水平方向和垂直方向構(gòu)造待匹配像素點(diǎn)p的十字交叉區(qū)域,作為初始支持骨架,其中水平方向?yàn)镠(p),垂直方向?yàn)閂(p),則兩個(gè)正交的交叉斷H(p)和V(p)可用公式(2)表示[10]。
圖1 十字交叉區(qū)域構(gòu)造示意圖
每個(gè)臂長(zhǎng)的調(diào)整準(zhǔn)則如公式(3)所示。
式中,Ds(pi, p)是像素點(diǎn)pi和p 的空間距離差,Dc(pi, p)是像素pi和p 的色彩差。當(dāng)pi達(dá)到閾值條件時(shí),臂長(zhǎng)不再發(fā)生變化,此時(shí)將搜索待匹配像素p的領(lǐng)域內(nèi)與其色彩相似的所有像素。最后,在垂直方向V( p )中的每一個(gè)像素點(diǎn)q重復(fù)上述過(guò)程,即可求得q 的水平方向支持區(qū)域H( q )。聯(lián)合所有的H( q)即可完成待匹配像素p的自適應(yīng)窗口的構(gòu)造。最終的十字交叉窗口區(qū)域如公式(4)所示。
式中,i 代價(jià)聚合的迭代次數(shù),通常取i=2~4,這樣既能保證代價(jià)聚合后視差圖的精度,還可以使得算法具有較高的效率。
王云峰[11]在研究十字代價(jià)聚合區(qū)域中像素點(diǎn)臂長(zhǎng)的調(diào)整規(guī)則時(shí)發(fā)現(xiàn),臂長(zhǎng)大小能夠反映該像素點(diǎn)處于圖像中的哪個(gè)位置。例如當(dāng)像素點(diǎn)上下左右四個(gè)臂長(zhǎng)值都很大時(shí),那么該像素就位于平滑區(qū)域;反之則靠近圖像邊緣區(qū)域。根據(jù)這規(guī)律,本文設(shè)計(jì)了一個(gè)權(quán)重β能夠充分融合SAD算法和改進(jìn)后的Census算法,如公式(6)所示。
式中,hmin是像素點(diǎn)在上下左右四個(gè)方向延伸的最小臂長(zhǎng),τ是顏色閾值,L 是空間閾值。通過(guò)公式(6)可以發(fā)現(xiàn),當(dāng)hmin越小,即像素點(diǎn)越靠近圖像邊緣,β越大,則融合后的算法中SAD立體匹配算法占支配地位,可以更好地處理圖像邊緣地區(qū);反之,則在圖像平緩區(qū)域具有更高匹配精度的改進(jìn)的Census占主導(dǎo)地位。綜上所述,采用自適應(yīng)權(quán)重β能夠在圖像不同區(qū)域均得到最好的匹配準(zhǔn)確度。
在視差選擇階段,通常采用勝者為王WTA(Winner-Take-All)策略[12]對(duì)聚合后的代價(jià)CCBCA(p,d)進(jìn)行視差計(jì)算,再選擇計(jì)算中的最小視差作為最優(yōu)的視差值。每個(gè)像素點(diǎn)的最優(yōu)視差獲取如公式(7):
式中,ds表示當(dāng)取最小匹配代價(jià)時(shí),當(dāng)前像素點(diǎn)p的最優(yōu)視差值;dmax表示視差最大搜索范圍。
經(jīng)過(guò)視差選擇處理后將得到一幅初始視差圖,但是由于遮擋或深度不連續(xù)會(huì)造成很多誤匹配,導(dǎo)致初始視差圖出現(xiàn)孔洞現(xiàn)象。因此,需要對(duì)初始視差圖進(jìn)行優(yōu)化處理。
初始視差圖的優(yōu)化主要采用左右一致性檢測(cè)方法檢測(cè)出異常匹配點(diǎn),然后對(duì)異常點(diǎn)進(jìn)行修正。首先,通過(guò)以上步驟得到左右兩幅圖像的初始視差圖,選取左初始視差圖中任一像素點(diǎn)p 對(duì)應(yīng)的最優(yōu)視差值ds1,那么像素點(diǎn)p在右初始視差圖中對(duì)應(yīng)的像素點(diǎn)p-ds1的最優(yōu)視差值為ds2。若像素點(diǎn)p 不滿足公式(7),則像素點(diǎn)p為異常匹配點(diǎn)。根據(jù)對(duì)極幾何原理可以將異常匹配點(diǎn)p分為遮擋點(diǎn)和錯(cuò)誤匹配點(diǎn)[13]。
一些禮儀習(xí)俗會(huì)導(dǎo)致交流障礙。比如,澳大利亞男性土著人忌諱說(shuō)姐妹的名字,所以當(dāng)律師問(wèn)到其姐妹的名字時(shí),他可能回答“不知道”。如果譯員只是直譯,顯然不能促進(jìn)各方的交流。
式中,Th表示視差閾值,通常取值為1。
最后,對(duì)異常點(diǎn)進(jìn)行修正。具體過(guò)程如下:假設(shè)像素點(diǎn)p為異常點(diǎn),分別在像素點(diǎn)p的左、右方向?qū)ふ业谝粋€(gè)非異常點(diǎn),對(duì)應(yīng)的最優(yōu)視差值分別為d(pl)、d(pr)。則異常點(diǎn)p修正后的視差值為:
經(jīng)上述處理后便可以得到更加準(zhǔn)確的視差圖。綜上所述,基于自適應(yīng)權(quán)重的SAD-Census立體匹配算法的流程圖如圖2所示。
圖2 本文立體匹配算法流程圖
為了正確評(píng)估改進(jìn)后算法的性能,算法在windows10操作系統(tǒng),Intel Core i5-8300 CPU,2.30GHz計(jì)算機(jī)上實(shí)現(xiàn),并通過(guò)PyCharm2019編譯器和opencv2.4.9作為軟件平臺(tái),python語(yǔ)言作為編輯語(yǔ)言進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)所需數(shù)據(jù)集來(lái)源于Middlebury立體匹配算法評(píng)測(cè)平臺(tái)[7],選取該測(cè)試平臺(tái)提供的經(jīng)立體校正后的四套標(biāo)準(zhǔn)彩色立體圖像對(duì)和對(duì)應(yīng)的真實(shí)視差圖。如圖 3 所示,圖中(a)、(b)、(c)、(d)分別是 Cones、Teddy、Tsukuba、Venus四套圖像對(duì),圖中第一排、第二排分別表示左右攝像機(jī)拍攝的左右視圖,第三排是左視圖對(duì)應(yīng)的真實(shí)視差圖,用于作為評(píng)價(jià)立體匹配算法質(zhì)量的標(biāo)準(zhǔn)。四套圖像對(duì)的基本屬性和特征如表1所示。
圖3 Middlebury立體匹配算法測(cè)試平臺(tái)標(biāo)準(zhǔn)圖像
表1 Middlebury立體匹配算法測(cè)試平臺(tái)標(biāo)準(zhǔn)圖像基本屬性
Middlebury測(cè)試平臺(tái)為評(píng)估立體匹配算法提供了兩個(gè)度量指標(biāo):均方根誤差(RMS,Root-Mean-Squared)和誤匹配率(POBMP,Percentage of bad matching pixels)。均方根誤差用來(lái)計(jì)算算法得到的視差圖和真實(shí)視差圖內(nèi)所有對(duì)應(yīng)像素點(diǎn)的視差均方根,公式如(10)所示;誤匹配率相對(duì)來(lái)說(shuō)更加簡(jiǎn)單和直觀,用來(lái)計(jì)算誤匹配像素點(diǎn)與圖像總像素點(diǎn)數(shù)的比值,如公式(11)所示。
式中:N是視差圖中像素點(diǎn)的總數(shù);dC(x,y)、dT(x,y)分別是坐標(biāo)(x,y)在所計(jì)算的視差圖和真實(shí)視差圖中的視差值;δd是視差誤差容許度,通常取值為1,即算法得到的視差值和真實(shí)視差值相減的差的絕對(duì)值大于1,則認(rèn)為該像素點(diǎn)是誤匹配點(diǎn),否則為正確匹配點(diǎn)。誤匹配率計(jì)算的區(qū)域通常分為所有區(qū)域(All)、非遮擋區(qū)域(Nocc)和視差不連續(xù)區(qū)域(Disc),其中,所有區(qū)域和非遮擋區(qū)域的誤匹配率是評(píng)估立體匹配算法性能的最重要指標(biāo),因此,本次實(shí)驗(yàn)只計(jì)算在這兩個(gè)區(qū)域的誤匹配率作為改進(jìn)的立體匹配算法性能的評(píng)價(jià)標(biāo)準(zhǔn)。
為了能夠更直觀和客觀的表現(xiàn)改進(jìn)的Census立體匹配算法的性能,這部分實(shí)驗(yàn)只進(jìn)行匹配代價(jià)的計(jì)算得到初始視差圖,計(jì)算其均方根誤差,分析改進(jìn)的Census立體匹配算法在準(zhǔn)確度和魯棒性方面的性能。傳統(tǒng)Census立體匹配算法和改進(jìn)的Census立體算法計(jì)算標(biāo)準(zhǔn)圖像對(duì)得到的初始視差圖分別如圖4(a)、(b)所示,均方根誤差如圖5所示。匹配代價(jià)窗口均為5*5。
圖4 對(duì)比算法計(jì)算的初始視差圖
圖5 對(duì)比算法的均方根誤差
從圖5中可以發(fā)現(xiàn)改進(jìn)后的Census立體匹配算法得到的視差圖比傳統(tǒng)Census算法得到的視差圖在重復(fù)紋理區(qū)域的誤匹配更少,匹配精度更高。
為了測(cè)試改進(jìn)后Census立體匹配算法的魯棒性,分別給四套標(biāo)準(zhǔn)圖像對(duì)中的右視圖增加到原亮度的150%,左視圖保持不變,如圖6(a)所示。將調(diào)整之后的左右標(biāo)準(zhǔn)圖像分別用SAD立體匹配算法、傳統(tǒng)Census立體匹配算法和改進(jìn)后的Census立體匹配算法進(jìn)行匹配,得到的視差圖如圖6(c)、(d)、(e)所示。
圖6 光照變化后的匹配代價(jià)計(jì)算算法對(duì)比
從圖6可以看出,當(dāng)待匹配圖像亮度發(fā)生突然變化時(shí),SAD立體匹配計(jì)算出的視差圖已經(jīng)完全無(wú)法還原場(chǎng)景的深度信息,傳統(tǒng)Census算法雖基本能還原場(chǎng)景深度信息,但準(zhǔn)確率明顯下降,而改進(jìn)的Census立體匹配算法則有較強(qiáng)的魯棒性,獲得的視差圖與亮度未發(fā)生突變時(shí)基本保持一致。
為了進(jìn)一步驗(yàn)證本文所改進(jìn)算法的整體性能,根據(jù)圖2所示的步驟分別采用本文方法、SAD立體匹配算法、Census立體匹配算法計(jì)算出標(biāo)準(zhǔn)圖像對(duì)的最終視差圖,即三種算法采用相同的代價(jià)聚合、視差選擇、視差優(yōu)化方法,可以得到如圖7實(shí)驗(yàn)結(jié)果。
圖7 中(a)、(b)、(c)分別是傳統(tǒng) Census 算法結(jié)果、SAD算法結(jié)果以及本文算法結(jié)果。通過(guò)最終對(duì)比3種算法,結(jié)果表明,本文提出的基于自適應(yīng)權(quán)重的SAD-Census立體匹配算法要比單獨(dú)適應(yīng)SAD立體匹配算法和Census立體匹配算法匹配準(zhǔn)確性高。對(duì)上述視差圖的所有區(qū)域和未遮擋區(qū)域進(jìn)行誤匹配率計(jì)算,結(jié)果如表所示。
圖7 實(shí)驗(yàn)算法最終視差圖對(duì)比
從圖7和表2中可以看出,在進(jìn)行匹配精度的中實(shí)驗(yàn)本文提出的基于自適應(yīng)權(quán)重的SAD-Census立體匹配算法在評(píng)測(cè)標(biāo)準(zhǔn)圖像所有區(qū)域、未遮擋區(qū)域的誤匹配率、四對(duì)標(biāo)準(zhǔn)圖像的平均誤匹配率均是三種立體匹配算法中最小值,即本算法具有最好的匹配準(zhǔn)確性,尤其對(duì)于大部分是傾斜區(qū)域和弱紋理區(qū)域的Venus標(biāo)準(zhǔn)圖像,本文匹配算法的匹配準(zhǔn)確率可高于到另外兩種算法近4倍。
表2 對(duì)比算法誤匹配率
針對(duì)Census立體匹配算法過(guò)于依賴中心像素灰度值致使魯棒性不高的問(wèn)題提出了一種解決方法,為獲得更佳的匹配精度,提出了一種基于自適應(yīng)權(quán)重的SAD-Census立體匹配方法,該方法可實(shí)現(xiàn)在圖像邊緣區(qū)域和平坦區(qū)域給予SAD匹配算法和改進(jìn)后Census匹配算法不同的權(quán)重以獲得最佳的匹配效果,通過(guò)實(shí)驗(yàn)驗(yàn)證了改進(jìn)后Census匹配算法具有更好的魯棒性,基于自適應(yīng)權(quán)證的SAD-Census立體匹配方法的匹配準(zhǔn)確性優(yōu)于原算法。