本發(fā)明屬于計(jì)算機(jī)立體視覺(jué)領(lǐng)域的立體匹配部分,涉及到一種基于水平樹結(jié)構(gòu)的可變權(quán)重代價(jià)聚合立體匹配算法,可應(yīng)用于虛擬現(xiàn)實(shí)、機(jī)器人導(dǎo)航、3d場(chǎng)景繪制與重建等領(lǐng)域。
背景技術(shù):
立體匹配是根據(jù)同一場(chǎng)景內(nèi)不同視角下的兩幅圖像,通過(guò)尋找像素之間的對(duì)應(yīng)關(guān)系來(lái)獲得3d場(chǎng)景中物體的深度信息的過(guò)程。它是計(jì)算機(jī)視覺(jué)領(lǐng)域中最悠久且尚未解決的問(wèn)題之一。
根據(jù)約束條件的不同,立體匹配算法可分為全局立體匹配和局部立體匹配兩類。現(xiàn)行的全局匹配算法通??紤]局部的顏色信息和結(jié)構(gòu)信息,并為圖像建立全局的能量函數(shù),通過(guò)一些優(yōu)化方法,如置信度傳播、動(dòng)態(tài)規(guī)劃、圖割等來(lái)為每個(gè)像素點(diǎn)分配視差值。雖然全局立體匹配算法有較高的匹配精度,但是其復(fù)雜度和運(yùn)算量過(guò)大,往往需要分布式系統(tǒng)和專用計(jì)算設(shè)備的支持,難以滿足實(shí)時(shí)性要求。局部立體匹配由于每個(gè)像素點(diǎn)只依靠相鄰像素的支持,而這些提供支持的鄰域像素,必須具備深度相似性。而支持窗口的的大小、形狀在沒(méi)有圖像的先驗(yàn)信息的情況下很難確定。若采用固定的小窗口可以很好的估計(jì)豐富紋理區(qū)域和邊緣區(qū)域的視差值,但是導(dǎo)致弱紋理區(qū)域的誤匹配,并且易受噪聲影響。而較大的窗口對(duì)弱紋理區(qū)域匹配較好,但是會(huì)導(dǎo)致深度不連續(xù)區(qū)域過(guò)于平滑,即前景膨脹現(xiàn)象。
yang于2015年提出了一種新穎的代價(jià)量正則化(costvolumeregularization)和水平樹權(quán)值傳播相結(jié)合的非局部立體匹配算法。其中水平樹權(quán)值傳播方法利用圖論中的概念,把參照?qǐng)D像視為一個(gè)4連通無(wú)向圖結(jié)構(gòu)。其將圖像中每個(gè)像素點(diǎn)作為一個(gè)節(jié)點(diǎn),像素點(diǎn)與相鄰像素之間的距離作為權(quán)重支持,所有像素沿著水平樹和垂直樹結(jié)構(gòu)通過(guò)權(quán)值傳播對(duì)目標(biāo)像素提供支持。針對(duì)大多數(shù)局部立體匹配都基于一基本假設(shè)-局部支持區(qū)域視差相同。其得到的視差圖出現(xiàn)視差分層現(xiàn)象且對(duì)于傾斜平面視差估計(jì)很差。因此yang在代價(jià)聚合階段引入全局匹配中的平滑項(xiàng)(smoothnessterms)的思想,大大增加了傾斜平面的視差精度。但是該算法在代價(jià)聚合階段只使用顏色信息計(jì)算四鄰域邊的權(quán)值,忽視了真實(shí)場(chǎng)景中顏色相同區(qū)域可能深度不同,不同顏色區(qū)域可能深度相同現(xiàn)象。這導(dǎo)致圖像背景區(qū)域和相同顏色邊界區(qū)域視差估計(jì)不準(zhǔn)確。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是,針對(duì)前述現(xiàn)有技術(shù)的缺陷,提出一種基于水平樹結(jié)構(gòu)的可變權(quán)重代價(jià)聚合立體匹配算法,提高匹配精度。
本發(fā)明通過(guò)下述技術(shù)方案解決前述技術(shù)問(wèn)題:
一種基于水平樹結(jié)構(gòu)的可變權(quán)重代價(jià)聚合立體匹配算法,包括如下步驟:
(1)計(jì)算匹配代價(jià):分別選取左、右圖像為參考圖,利用圖像的亮度信息、水平梯度信息計(jì)算匹配代價(jià);
(2)計(jì)算引導(dǎo)圖像:對(duì)左右參考圖像進(jìn)行窗口大小為3*3的中值濾波獲得引導(dǎo)圖像,減小圖像噪聲對(duì)代價(jià)聚合階段中的權(quán)值計(jì)算的影響;
(3)構(gòu)建水平權(quán)值樹與垂直權(quán)值樹:根據(jù)四鄰域像素之間的顏色差異構(gòu)建水平權(quán)值樹與垂直權(quán)值樹;
(4)計(jì)算代價(jià)聚合值:把圖像中的每個(gè)像素當(dāng)做一個(gè)節(jié)點(diǎn),根據(jù)步驟(3)得到的權(quán)值和yang提出的代價(jià)量正則化對(duì)步驟(1)獲得的每個(gè)像素點(diǎn)的匹配代價(jià)值進(jìn)行代價(jià)聚合;
(5)計(jì)算初始視差圖:利用“勝者為王”算法(英文名稱為:winnertakeall,簡(jiǎn)稱為wta算法)獲得初始視差圖,這個(gè)算法是在視差范圍內(nèi)通過(guò)選擇每個(gè)像素聚合后的匹配代價(jià)中最小值所對(duì)應(yīng)的視差值作為最終視差值,獲得初始視差圖d;
(6)更新水平權(quán)值樹與垂直權(quán)值樹:根據(jù)步驟(5)得到的初始視差圖,將像素視差信息與顏色信息相結(jié)合重新計(jì)算相鄰像素之間的權(quán)值;
(7)重新計(jì)算代價(jià)聚合值:把圖像中的每個(gè)像素當(dāng)做一個(gè)節(jié)點(diǎn),根據(jù)步驟(6)獲得的權(quán)值和代價(jià)正則化匹配聚合算法對(duì)步驟(1)獲得的每個(gè)像素點(diǎn)的匹配代價(jià)值進(jìn)行代價(jià)聚合;
(8)計(jì)算視差圖:同步驟(5)利用“勝者為王”算法獲得視差圖d1;
(9)視差優(yōu)化:采用左右一致性檢測(cè)方法檢測(cè)步驟(8)獲得的視差圖d1,將滿足左右一致性像素點(diǎn)歸類為可靠像素點(diǎn),不滿足的歸類為不可靠像素點(diǎn),對(duì)像素點(diǎn)代價(jià)量根據(jù)下式
做更新,獲得新的代價(jià)量。其中dp為像素點(diǎn)p的視差值,β∈[0,1]。根據(jù)步驟(8)獲得的視差圖d1與像素之間的顏色信息依據(jù)步驟(6)重新計(jì)算相鄰像素之間的權(quán)值,通過(guò)步驟(7)水平樹權(quán)值傳播與代價(jià)正則化對(duì)新獲得的代價(jià)量cnew進(jìn)行聚合,然后采用勝者為王算法獲得最終的視差圖。
本發(fā)明的有益效果:
本發(fā)明針對(duì)非局部聚合中只采用顏色信息計(jì)算相鄰像素之間的權(quán)值,其對(duì)真實(shí)場(chǎng)景中相同顏色但深度不同或顏色不同但深度相同等情況不能進(jìn)行有效的表述,因此在這些區(qū)域視差估計(jì)精度不高,基于實(shí)際場(chǎng)景中視差值應(yīng)滿足平滑性約束,本發(fā)明在獲取初始視差值后,對(duì)四鄰域圖邊的權(quán)值進(jìn)行相應(yīng)的調(diào)整,將平滑性約束和權(quán)值調(diào)整結(jié)合起來(lái),通過(guò)對(duì)四鄰域圖邊的權(quán)值更新,構(gòu)建新的水平權(quán)值樹和垂直權(quán)值樹,采用yang提出的代價(jià)正則化聚合方法,聚合結(jié)果表明相比yang能有效提高背景區(qū)域和邊緣匹配精度。
附圖說(shuō)明
圖1是本發(fā)明整體流程。
圖2是水平權(quán)值樹與垂直權(quán)值樹權(quán)值計(jì)算圖。
圖3是聚合階段權(quán)值傳播方向圖。
圖4是誤差圖。
具體實(shí)施方式
下面結(jié)合實(shí)例和附圖對(duì)本發(fā)明內(nèi)容作進(jìn)一步的說(shuō)明,但不是對(duì)本發(fā)明的限定。
如圖1所示,一種基于水平樹結(jié)構(gòu)的可變權(quán)重代價(jià)聚合立體匹配算法,包含以下幾個(gè)步驟:
(1)計(jì)算匹配代價(jià):
依次選取左、右圖為參考圖,用圖像的顏色信息和水平梯度信息相結(jié)合計(jì)算匹配代價(jià)
c(x,y,d)=α*cc(x,y,d)+(1-α)*cg(x,y,d)
其中,k代表圖像r,g,b三個(gè)通道,
(2)計(jì)算引導(dǎo)圖像:
對(duì)左、右圖像進(jìn)行窗口大小為3*3的中值濾波
i(x,y)=median(ih(x,y))
獲得引導(dǎo)圖像i(x,y),其中,ih(x,y)為左右圖像中以像素點(diǎn)(x,y)為中心,窗口大小為3*3內(nèi)的像素灰度值,median(ih(x,y))為序列ih(x,y)的中值。
(3)構(gòu)建水平權(quán)值樹與垂直權(quán)值樹:
首先將引導(dǎo)圖像中的每個(gè)像素當(dāng)做一個(gè)節(jié)點(diǎn),當(dāng)考慮水平方向上相鄰像素之間的權(quán)重關(guān)系時(shí)構(gòu)建如圖2中左圖的水平樹結(jié)構(gòu),同理當(dāng)考慮垂直方向相鄰像素權(quán)重關(guān)系時(shí)構(gòu)建圖2右圖垂直樹結(jié)構(gòu)。以圖2左圖中節(jié)點(diǎn)a、b和右圖中節(jié)點(diǎn)1、2為例,用如下公式計(jì)算它們之間的權(quán)重:
其中,ta,b(i)表示在水平樹中,節(jié)點(diǎn)a、b之間的權(quán)重,t1,2(i)表示在垂直樹中節(jié)點(diǎn)1、2之間的權(quán)重,r,g,b表示圖像三個(gè)通道,wa,b表示節(jié)點(diǎn)a、b之間的顏色距離,w1,2表示節(jié)點(diǎn)1、2之間的顏色距離,σ為平滑因子,一般取值為255*0.08。
(4)計(jì)算代價(jià)聚合值:
如圖3所示,對(duì)于圖像中的每個(gè)像素點(diǎn)p,圖像其余像素點(diǎn)對(duì)該點(diǎn)的聚合路徑為沿著水平方向向像素點(diǎn)p匯合,當(dāng)?shù)竭_(dá)像素點(diǎn)p所在的垂直方向時(shí),沿著垂直方向向p聚合。用如下公式計(jì)算點(diǎn)p初次聚合之后在深度d處的匹配代價(jià)cp(dp):
其中,ti,j(i)為已獲得的水平權(quán)值樹和垂直權(quán)值樹中像素點(diǎn)i,j之間的權(quán)值,q為圖像內(nèi)所有像素點(diǎn),lp,q為像素點(diǎn)q到目標(biāo)像素點(diǎn)p的聚合路徑,wp,q(i)為沿著聚合路徑權(quán)值乘積,亦是像素q對(duì)p的權(quán)值,mp(dp)為未進(jìn)行代價(jià)聚合前在視差d下的匹配代價(jià),v(p)為圖像內(nèi)所有像素點(diǎn),d為像素視差搜索范圍,s(dp,dq)為平滑懲戒因子,實(shí)驗(yàn)驗(yàn)證選取psmooth=2、dstep=1。
(5)計(jì)算初始視差圖:
在對(duì)匹配代價(jià)進(jìn)行聚合之后,采用勝者為王算法,獲取初始視差圖。過(guò)程如下:匹配代價(jià)聚合后,獲得每個(gè)像素點(diǎn)在不同視差值假設(shè)下的匹配代價(jià),利用勝者為王算法選出這些匹配代價(jià)當(dāng)中的最小值,而這個(gè)最小值所對(duì)應(yīng)的視差值就是該點(diǎn)的視差值。因此,可求得圖像中每個(gè)像素點(diǎn)的視差值。
(6)更新水平權(quán)值樹和垂直權(quán)值樹:
利用初始視差圖更新水平權(quán)值樹和垂直權(quán)值樹,更新方法為:對(duì)于水平樹和垂直樹中任兩個(gè)相鄰像素s、r,令d(s)和d(r)分別表示兩個(gè)像素點(diǎn)的初始視差值,更新后的權(quán)重
tupdate=exp(-w′s,r)
其中,r,g,b為三彩色通道,ws,r為像素s、r之間的顏色距離,w′s,r為深度信息與顏色信息相結(jié)合對(duì)像素距離更新,μ∈[0,1];優(yōu)選μ=0.5,β為視差因子,取值為255*0.08,σ為平滑因子,取值為255*0.08,當(dāng)s、r為水平方向相鄰時(shí),遍歷圖像所有像素點(diǎn)更新水平權(quán)值樹,當(dāng)s、r為垂直方向相鄰時(shí),遍歷圖像所有像素點(diǎn)更新垂直權(quán)值樹。
(7)重新計(jì)算代價(jià)聚合值:
在新的水平權(quán)值樹和垂直權(quán)值樹的基礎(chǔ)上,依據(jù)步驟(4)的方法進(jìn)行新的匹配代價(jià)聚合。
(8)計(jì)算視差圖:
在獲得新的匹配代價(jià)聚合的基礎(chǔ)上,利用步驟(5)的方法計(jì)算獲得視差圖。
(9)視差優(yōu)化:
根據(jù)前述的方法,我們可分別求得左視圖和右視圖的視差圖。獲得左右視差圖后,通過(guò)左右一致性檢測(cè)將像素點(diǎn)分為可靠像素點(diǎn)和不可靠像素點(diǎn),對(duì)像素點(diǎn)代價(jià)量根據(jù)下式做更新,獲得新的代價(jià)量。
其中dp為像素點(diǎn)p的視差值,β∈[0,1],優(yōu)選β=0.1。再次使用步驟(6)獲得的水平權(quán)值樹和垂直權(quán)值樹以及步驟(4)的方法對(duì)新的代價(jià)量進(jìn)行聚合,然后采用勝者為王算法獲得最終的視差圖。
為了驗(yàn)證算法的有效性,選用middlebury測(cè)試平臺(tái)提供的圖像進(jìn)行測(cè)試。如圖4所示,其中(a)為teddy,baby1,dolls,reindeer四組左視圖圖像,(b)為真實(shí)的視差圖,(c)為步驟(8)的初始視差圖,(d)為步驟(9)得到的最終視差圖。從圖中可以看出本發(fā)明算法在傾斜平面和無(wú)紋理區(qū)域能得到很好的效果。