雙目立體匹配可劃分為四個步驟:匹配代價計算、代價聚合、視差計算和視差優(yōu)化。
Step1 匹配代價計算
匹配代價計算的目的是衡量待匹配像素與候選像素之間的相關(guān)性。兩個像素?zé)o論是否為同名點(diǎn),都可以通過匹配代價函數(shù)計算匹配代價,代價越小則說明相關(guān)性越大,是同名點(diǎn)的概率也越大。
每個像素在搜索同名點(diǎn)之前,往往會指定一個視差搜索范圍D(Dmin ~ Dmax),視差搜索時將范圍限定在D內(nèi),用一個大小為W×H×D(W為影像寬度,H為影像高度)的三維矩陣C來存儲每個像素在視差范圍內(nèi)每個視差下的匹配代價值。矩陣C通常稱為DSI(Disparity Space Image)。
匹配代價計算的方法有很多,傳統(tǒng)的攝影測量中,使用灰度絕對值差(AD,Absolute Differences)、灰度絕對值差之和(SAD,Sum of Absolute Differences)、歸一化相關(guān)系數(shù)(NCC,Normalized Cross-correlation)等方法來計算兩個像素的匹配代價;計算機(jī)視覺中,多使用互信息(MI,Mutual Information)法、Census變換(CT,Census Transform)法、Rank變換(RT, Rank Transform)法、BT(Birchfield and Tomasi)法等作為匹配代價的計算方法。不同的代價計算算法都有各自的特點(diǎn),對各類數(shù)據(jù)的表現(xiàn)也不盡相同,選擇合適的匹配代價計算函數(shù)是立體匹配中不可忽視的關(guān)鍵步驟。
下圖為DSI示意圖(C(x,y,d)代表像素(x,y)在視差為d時的匹配代價):
Step2 代價聚合
代價聚合的根本目的是讓代價值能夠準(zhǔn)確的反映像素之間的相關(guān)性。上一步匹配代價的計算往往只會考慮局部信息,通過兩個像素鄰域內(nèi)一定大小的窗口內(nèi)的像素信息來計算代價值,這很容易受到影像噪聲的影響,而且當(dāng)影像處于弱紋理或重復(fù)紋理區(qū)域,這個代價值極有可能無法準(zhǔn)確的反映像素之間的相關(guān)性,直接表現(xiàn)就是真實同名點(diǎn)的代價值非最小。
而代價聚合則是建立鄰接像素之間的聯(lián)系,以一定的準(zhǔn)則,如相鄰像素應(yīng)該具有連續(xù)的視差值,來對代價矩陣進(jìn)行優(yōu)化,這種優(yōu)化往往是全局的,每個像素在某個視差下的新代價值都會根據(jù)其相鄰像素在同一視差值或者附近視差值下的代價值來重新計算,得到新的DSI,用矩陣S來表示。
實際上代價聚合類似于一種視差傳播步驟,信噪比高的區(qū)域匹配效果好,初始代價能夠很好的反映相關(guān)性,可以更準(zhǔn)確的得到最優(yōu)視差值,通過代價聚合傳播至信噪比低、匹配效果不好的區(qū)域,最終使所有影像的代價值都能夠準(zhǔn)確反映真實相關(guān)性。常用的代價聚合方法有掃描線法、動態(tài)規(guī)劃法、SGM算法中的路徑聚合法等。
下圖為代價聚合前后視差圖示意圖:
Step3 視差計算
視差計算即通過代價聚合之后的代價矩陣S來確定每個像素的最優(yōu)視差值,通常使用贏家通吃算法(WTA,Winner-Takes-All)來計算,如下圖所示,即某個像素的所有視差下的代價值中,選擇最小代價值所對應(yīng)的視差作為最優(yōu)視差。這一步非常簡單,這意味著聚合代價矩陣S的值必須能夠準(zhǔn)確的反映像素之間的相關(guān)性,也表明上一步代價聚合步驟是立體匹配中極為關(guān)鍵的步驟,直接決定了算法的準(zhǔn)確性。
Step4 視差優(yōu)化
視差優(yōu)化的目的是對上一步得到的視差圖進(jìn)行進(jìn)一步優(yōu)化,改善視差圖的質(zhì)量,包括剔除錯誤視差、適當(dāng)平滑以及子像素精度優(yōu)化等步驟,一般采用左右一致性檢查(Left-Right Check)算法剔除因為遮擋和噪聲而導(dǎo)致的錯誤視差;采用剔除小連通區(qū)域算法來剔除孤立異常點(diǎn);采用中值濾波(Median Filter)、雙邊濾波(Bilateral Filter)等平滑算法對視差圖進(jìn)行平滑;另外還有一些有效提高視差圖質(zhì)量的方法如魯棒平面擬合(Robust Plane Fitting)、亮度一致性約束(Intensity Consistent)、局部一致性約束(Locally Consistent)等也常被使用。
由于WTA算法所得到的視差值是整像素精度,為了獲得更高的子像素精度,需要對視差值進(jìn)行進(jìn)一步的子像素細(xì)化,常用的子像素細(xì)化方法是一元二次曲線擬合法,通過最優(yōu)視差下的代價值以及左右兩個視差下的代價值擬合一條一元二次曲線,取二次曲線的極小值點(diǎn)所代表的視差值為子像素視差值。如下圖所示。
局部匹配算法的步驟一般包括匹配代價計算、代價聚合和視差計算三個步驟,全局算法則包括匹配代價計算,視差計算與視差優(yōu)化三個步驟,半全局算法SGM則四個步驟都有。
-
立體匹配
+關(guān)注
關(guān)注
0文章
11瀏覽量
8763
原文標(biāo)題:雙目立體匹配步驟詳解
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論