1. 程式人生 > >雙目立體匹配步驟詳解

雙目立體匹配步驟詳解

文章目錄


  根據Schrstein和Szeliski的總結,雙目立體匹配可劃分為四個步驟:匹配代價計算、代價聚合、視差計算和視差優化

Step1 匹配代價計算


  匹配代價計算的目的是衡量待匹配畫素與候選畫素之間的相關性。兩個畫素無論是否為同名點,都可以通過匹配代價函式計算匹配代價,代價越小則說明相關性越大,是同名點的概率也越大。

  每個畫素在搜尋同名點之前,往往會指定一個視差搜尋範圍D(Dmin

~ Dmax),視差搜尋時將範圍限定在D內,用一個大小為W×H×D(W為影像寬度,H為影像高度)的三維矩陣C來儲存每個畫素在視差範圍內每個視差下的匹配代價值。矩陣C通常稱為DSI(Disparity Space Image)。

  匹配代價計算的方法有很多,傳統的攝影測量中,使用灰度絕對值差(AD,Absolute Differences)1、灰度絕對值差之和(SAD,Sum of Absolute Differences)、歸一化相關係數(NCC,Normalized Cross-correlation)等方法來計算兩個畫素的匹配代價;計算機視覺中,多使用互資訊(MI,Mutual Information)法2

3、Census變換(CT,Census Transform)法4 5、Rank變換(RT, Rank Transform)法6 7、BT(Birchfield and Tomasi)法8 等作為匹配代價的計算方法。不同的代價計算演算法都有各自的特點,對各類資料的表現也不盡相同,選擇合適的匹配代價計算函式是立體匹配中不可忽視的關鍵步驟。

圖1 DSI示意圖(C(x,y,d)代表畫素(x,y)在視差為d時的匹配代價)

Step2 代價聚合


   代價聚合的根本目的是讓代價值能夠準確的反映畫素之間的相關性。上一步匹配代價的計算往往只會考慮區域性資訊,通過兩個畫素鄰域內一定大小的視窗內的畫素資訊來計算代價值,這很容易受到影像噪聲的影響,而且當影像處於弱紋理或重複紋理區域,這個代價值極有可能無法準確的反映畫素之間的相關性,直接表現就是真實同名點的代價值非最小。

  而代價聚合則是建立鄰接畫素之間的聯絡,以一定的準則,如相鄰畫素應該具有連續的視差值,來對代價矩陣進行優化,這種優化往往是全域性的,每個畫素在某個視差下的新代價值都會根據其相鄰畫素在同一視差值或者附近視差值下的代價值來重新計算,得到新的DSI,用矩陣S來表示。

  實際上代價聚合類似於一種視差傳播步驟,信噪比高的區域匹配效果好,初始代價能夠很好的反映相關性,可以更準確的得到最優視差值,通過代價聚合傳播至信噪比低、匹配效果不好的區域,最終使所有影像的代價值都能夠準確反映真實相關性。常用的代價聚合方法有掃描線法、動態規劃法、SGM演算法中的路徑聚合法等。

圖1:代價聚合前後視差圖示意圖

Step3 視差計算


  視差計算即通過代價聚合之後的代價矩陣S來確定每個畫素的最優視差值,通常使用贏家通吃演算法(WTA,Winner-Takes-All)來計算,如圖2所示,即某個畫素的所有視差下的代價值中,選擇最小代價值所對應的視差作為最優視差。這一步非常簡單,這意味著聚合代價矩陣S的值必須能夠準確的反映畫素之間的相關性,也表明上一步代價聚合步驟是立體匹配中極為關鍵的步驟,直接決定了演算法的準確性。

圖2 贏家通吃(WTA)演算法示意圖

Step4 視差優化


  視差優化的目的是對上一步得到的視差圖進行進一步優化,改善視差圖的質量,包括剔除錯誤視差、適當平滑以及子畫素精度優化等步驟,一般採用左右一致性檢查(Left-Right Check)演算法剔除因為遮擋和噪聲而導致的錯誤視差;採用剔除小連通區域演算法來剔除孤立異常點;採用中值濾波(Median Filter)、雙邊濾波(Bilateral Filter)等平滑演算法對視差圖進行平滑;另外還有一些有效提高視差圖質量的方法如魯棒平面擬合(Robust Plane Fitting)、亮度一致性約束(Intensity Consistent)、區域性一致性約束(Locally Consistent)等也常被使用。

  由於WTA演算法所得到的視差值是整畫素精度,為了獲得更高的子畫素精度,需要對視差值進行進一步的子畫素細化,常用的子畫素細化方法是一元二次曲線擬合法,通過最優視差下的代價值以及左右兩個視差下的代價值擬合一條一元二次曲線,取二次曲線的極小值點所代表的視差值為子畫素視差值。如圖3所示。

圖3 二次曲線擬合法子畫素位置計算示意圖

  區域性匹配演算法的步驟一般包括匹配代價計算、代價聚合和視差計算三個步驟,全域性演算法則包括匹配代價計算,視差計算與視差優化三個步驟,半全域性演算法SGM則四個步驟都有。


  1. KANADE T, KANO H, KIMURA S, et al. Development of a video-rate stereo machine: Ieee/rsj International Conference on Intelligent Robots and Systems 95. ‘human Robot Interaction and Cooperative Robots’, Proceedings, 2002[C]. ↩︎

  2. KIM J, KOLMOGOROV V, ZABIH R. Visual Correspondence Using Energy Minimization and Mutual Information: IEEE International Conference on Computer Vision, 2003. Proceedings, 2008[C]. ↩︎

  3. EGNAL G. Mutual Information as a Stereo Correspondence Measure[J]. Technical Reports, 2000. ↩︎

  4. MA L, LI J, MA J, et al. A Modified Census Transform Based on the Neighborhood Information for Stereo Matching Algorithm: Seventh International Conference on Image and Graphics, 2013[C]. ↩︎

  5. BAIK Y K, JO J H, LEE K M. Fast Census Transform-based Stereo Algorithm using SSE2: The 12th Korea-Japan Joint Workshop on Frontiers of Computer Vision, Tokushima, Japan, 2006[C]. ↩︎

  6. GU Z, SU X, LIU Y, et al. Local stereo matching with adaptive support-weight, rank transform and disparity calibration[J]. Pattern Recognition Letters, 2008,29(9):1230-1235. ↩︎

  7. BANKS J, BENNAMOUN M, KUBIK K, et al. A constraint to improve the reliability of stereo matching using the rank transform: Acoustics, Speech, and Signal Processing, 1999. on 1999 IEEE International Conference, 1999[C]. ↩︎

  8. BIRCHFIELD S, TOMASI C. A Pixel Dissimilarity Measure That Is Insensitive to Image Sampling[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 1998,20(4):401-406. ↩︎