本發(fā)明屬于雙目立體視覺(jué)技術(shù)領(lǐng)域,涉及一種基于多編碼的Census自適應(yīng)變換算法。
背景技術(shù):
立體匹配一直是雙目立體視覺(jué)中的重要技術(shù)環(huán)節(jié),立體匹配是尋找兩幅圖像中的共軛點(diǎn),也就是空間同一點(diǎn)投影在左右兩幅圖像中的不同像素點(diǎn)的位置,最終產(chǎn)生視差圖。但是立體匹配一直存在著精度與效率的問(wèn)題。由于近些年計(jì)算機(jī)的并行能力越來(lái)越高,因此科研人員一直致力于尋找一種可并行高精度的立體匹配方法。
通常立體匹配過(guò)程可分為四個(gè)部分:匹配代價(jià)計(jì)算、匹配代價(jià)聚合、初始視差計(jì)算、視差優(yōu)化?,F(xiàn)在對(duì)于立體匹配的研究也一直圍繞著這四個(gè)步驟進(jìn)行,Census變換是立體匹配過(guò)程中匹配代價(jià)計(jì)算步驟常用的一種操作。
Census變換充分考慮了中心像素在支持窗口內(nèi)的局部信息并且減弱圖像亮度信息。具有算法簡(jiǎn)單、可并行、魯棒性高與效果好等特點(diǎn)。Census變換的具體操作如下所述:
對(duì)于一個(gè)大小為wp(m×n)的窗口,中心像素為p,Census變換可以將窗口內(nèi)圖像的亮度值相關(guān)性映射到一個(gè)長(zhǎng)度為m×n-1長(zhǎng)度的二進(jìn)制串中。假設(shè)q為窗口內(nèi)的非中心點(diǎn)的像素。那么對(duì)于q點(diǎn)位置的變換為:
其中i(x)為像素點(diǎn)x的灰度。對(duì)于p點(diǎn)最終的特征二進(jìn)制串:
表示按位連接。使用這種計(jì)算方式的窗口遍歷圖像中的每一個(gè)像素點(diǎn)。這樣一來(lái)就減弱了圖像亮度信息,單保留了窗口內(nèi)的局部信息。最后對(duì)于原始圖像中的p點(diǎn)視差為d,對(duì)應(yīng)參考圖像中的像素點(diǎn)p′計(jì)算所得的成本為:
表示Hamming距離計(jì)算。
傳統(tǒng)的Census變換雖然減弱了亮度信息,但是其對(duì)亮度信息的減弱處理過(guò)為粗糙,并沒(méi)有充分的利用圖像中的亮度信息。參照附圖1可以看出由于亮度信息丟失過(guò)多導(dǎo)致它對(duì)相似區(qū)域區(qū)別不明顯,并且還將導(dǎo)致它對(duì)噪聲敏感。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明是在傳統(tǒng)的Census變換的基礎(chǔ)上使用新的編碼策略。在考慮到窗內(nèi)局部信息的同時(shí)更充分的利用亮度信息,并對(duì)噪聲進(jìn)行減弱處理,使本發(fā)明更具魯棒性。
一種基于多編碼的Census自適應(yīng)變換算法,包括如下內(nèi)容:
1)編碼
傳統(tǒng)的Census變換將亮度信息按照中心像素亮度值分為大、小兩個(gè)組。本發(fā)明在傳統(tǒng)Census變換大、小兩個(gè)組的基礎(chǔ)上,對(duì)大組與小組分別進(jìn)行更進(jìn)一步的劃分,大組與小組分別劃分出k個(gè)子組,k為正整數(shù),則一共劃分出2k個(gè)組。
本發(fā)明使用一種多編碼策略,每個(gè)組使用多位二進(jìn)制位進(jìn)行編碼表示。共劃分出2k個(gè)組,則每個(gè)組對(duì)應(yīng)的編碼長(zhǎng)度為2k-1個(gè)位。對(duì)于一個(gè)大小為wp(m×n)的窗口;窗口的中心像素為p,窗口內(nèi)非中心點(diǎn)像素為q;窗口內(nèi)亮度值的映射到一個(gè)(2×k-1)×(m×n-1)位長(zhǎng)度的二進(jìn)制串上。
q點(diǎn)位置的變換為:
其中,bin(x)是x的二進(jìn)制表示形式;前k個(gè)分組中的非中心點(diǎn)像素灰度i(q)全部比中心灰度i(p)大,屬于大組,后k個(gè)分組中的非中心點(diǎn)像素灰度i(q)全部比中心灰度i(p)小,屬于小組;εi是用于分檔的閾值,其中i∈[1,2…2k-2];閾值存在大小關(guān)系為ε1>ε2>ε3…>εk-1,ε2k-2>ε2k-3….>εk。
利用以上策略將圖像亮度映射到2k個(gè)組,并且相鄰檔位之間進(jìn)行異或操作后相差為1,相隔為1的檔位異或操作之后相差為2,最遠(yuǎn)的兩個(gè)檔位異或操作后相差為2k-1;通過(guò)這種方式本發(fā)明將圖像亮度的相關(guān)性更加有效的運(yùn)用。
上述閾值選擇采用一種自適應(yīng)閾值選擇方式;即對(duì)大組與小組分別做如下操作:
a)將窗體內(nèi)像素按照亮度大于i(p)與小于等于i(p)分為兩組queue1和queue2。
b)對(duì)queue1與queue2進(jìn)行升序排序產(chǎn)生序列queue_asc1與queue_asc2并計(jì)算queue1長(zhǎng)度l1,queue2長(zhǎng)度l1。
c)計(jì)算第閾值εi其中i∈[1,2…k-1]的公式如下:
d)計(jì)算第閾值εj其中j∈[k,k+1,…2k-2]的公式如下:
本發(fā)明采用這種閾值策略來(lái)實(shí)現(xiàn)自適應(yīng)的閾值選擇,采用該策略能更好的選擇閾值,將像亮度信息盡可能的均勻的分到每個(gè)檔位,并且該自適應(yīng)策略能使得編碼魯棒性更高,并消除一些噪聲的干擾。
優(yōu)選方案為將窗口內(nèi)亮度信息分為k=2組,共劃分出4個(gè)組。使用三位的編碼來(lái)表示這四組。對(duì)于一個(gè)大小為wp(m×n)的窗口,中心像素為p,本發(fā)明將窗口內(nèi)亮度值的相關(guān)性映射到一個(gè)3×(m×n-1)長(zhǎng)度的二進(jìn)制串上,q為窗口內(nèi)非中心點(diǎn)的像素。q點(diǎn)位置的變換為:
在分四個(gè)組的情況下存在ε1與ε2兩個(gè)閾值,取值過(guò)程如下:
1)將窗體內(nèi)像素按照亮度值大于i(p)與小于等于i(p)分為兩組queue1與queue2。
2)對(duì)queue1與queue2進(jìn)行升序排列產(chǎn)生升序序列queue_asc1與queue_asc2,計(jì)算queue1長(zhǎng)度為l1、queue2長(zhǎng)度為l2。
3)計(jì)算
4)計(jì)算
將窗體內(nèi)非中心點(diǎn)像素映射到自己所在的組,將非中心點(diǎn)像素編碼按位相連產(chǎn)生中心點(diǎn)p編碼。
2)處理噪聲
本發(fā)明采用一種冗余編碼方式來(lái)減弱噪聲的影響,在每個(gè)像素編碼的最后加上n位冗余編碼。原圖像的冗余碼全部都置為0,參考圖像的冗余碼全部都置為1,當(dāng)窗體中存在某點(diǎn)亮度|i(p)-i(q)|>σ我們認(rèn)為存在一處噪聲。σ為人工輸入用于判斷噪聲的閾值。每當(dāng)發(fā)現(xiàn)一處噪聲時(shí),將噪聲所在圖像的冗余碼其中一位取反。n位冗余碼最多可檢測(cè)n個(gè)噪聲點(diǎn)。
原始圖像像素p與參考圖像像素p′編碼相同且不存在噪聲的情況下其Hamming距離為n,當(dāng)某一像素受到噪聲影響,其冗余編碼發(fā)生變化,使得原圖像與參考圖像的冗余碼Hamming距縮小,本發(fā)明就是通過(guò)減少冗余碼的Hamming距離來(lái)減弱噪聲對(duì)其產(chǎn)生的影響。
優(yōu)選采用一位冗余編碼,在原始圖像像素特征編碼后加入0,在參考圖像特征編碼后面加入1。當(dāng)檢測(cè)到噪聲時(shí)將噪聲所在圖像后的冗余編碼取反,使用一位冗余編碼只能檢測(cè)到噪聲是否存在不能檢測(cè)存在的噪聲數(shù)量。
3)計(jì)算距離
本發(fā)明繼續(xù)采用傳統(tǒng)的Census的距離計(jì)算方式,如公式(3)所示,使用Hamming距離來(lái)衡量相似度。
本發(fā)明是在傳統(tǒng)的Census變換的基礎(chǔ)上使用新的編碼策略,在考慮到窗內(nèi)局部信息的同時(shí)更充分的利用亮度信息,并對(duì)噪聲進(jìn)行減弱處理,使本發(fā)明更具魯棒性。
附圖說(shuō)明
附圖1對(duì)于相似性區(qū)域本發(fā)明與Census變換對(duì)比圖。
附圖2編碼方式具體流程圖。
附圖3本發(fā)明與傳統(tǒng)Census變換最終效果對(duì)比圖。
具體實(shí)施方式
實(shí)施例1
參考發(fā)明內(nèi)容與附圖2。本發(fā)明在選擇分四組,添加一位冗余編碼的情況下具體操作過(guò)程如下:
1)人工輸入窗口大小5×5,輸入σ=100用于噪聲判斷。
2)按照本發(fā)明的變換策略對(duì)每個(gè)像素進(jìn)行編碼。
參照附圖2.對(duì)于圖像某點(diǎn)的編碼方式:
3)對(duì)原始圖像p點(diǎn)與參考圖像p′點(diǎn)分別讀取大小為5×5的亮度數(shù)據(jù)。設(shè)讀取出的矩陣為wp與wp′
4)對(duì)讀取出的數(shù)據(jù)按照與p點(diǎn)亮度值i(p)與p′點(diǎn)亮度值i(p′)進(jìn)行分組,設(shè)每個(gè)窗體都有兩個(gè)分組:分組1與分組2。
5)對(duì)分組后的數(shù)據(jù)求出閾值ε1與ε2。參考本發(fā)明的閾值計(jì)算小節(jié)可求得對(duì)于wp窗體第一組8個(gè)數(shù)據(jù),我們選擇第4到6個(gè)數(shù)據(jù)進(jìn)行閾值計(jì)算。
(112-103+115-103+123-103)÷3=13.7。如操作wp窗體的第二組數(shù)據(jù)閾值為17.3。wp′的第一組數(shù)據(jù)的閾值為9.5,wp′的第二組數(shù)據(jù)的閾值為19。
6)參照本發(fā)明的編碼方式章節(jié),分別對(duì)兩個(gè)窗體內(nèi)像素進(jìn)行分檔操作。分檔后的窗體為wcp和wcp′。然后對(duì)wcp和wcp′進(jìn)行按位連接產(chǎn)出cen(p)和cen(p′)。
7)參照本發(fā)明的噪聲處理章節(jié)在比特串cen(p)和cen(p′)后面加入冗余校驗(yàn)位,由于沒(méi)有噪聲我們?cè)赾en(p)添加0,在cen(p′)后添加1。形成最后編碼。
cen(p)=0011110000011110000000010110110110110011110110010111111111111110111111110
cen(p′)=0001110000011110000000111111110110110010110110110010111111111110111111111
在編碼操作后使用Hamming距離來(lái)求出原圖點(diǎn)p與參考圖像點(diǎn)p′的Hamming距離。如圖的Hamming為9。
參照附圖3,本發(fā)明在不使用成本聚合與視差提純的情況下明顯優(yōu)于傳統(tǒng)方式,在使用垂直正交聚合法的情況下,產(chǎn)生的視差圖也要明顯優(yōu)于傳統(tǒng)的Census變換。