1. 程式人生 > >雙目立體匹配經典演算法之Semi-Global Matching(SGM)概述:匹配代價計算之Census變換(Census Transform,CT)

雙目立體匹配經典演算法之Semi-Global Matching(SGM)概述:匹配代價計算之Census變換(Census Transform,CT)

  基於互資訊的匹配代價計算由於需要初始視差值,所以需要通過分層迭代的方式得到較為準確的匹配代價值,而且概率分佈計算稍顯複雜,這導致代價計算的效率並不高。學者Zabih和Woodfill 1 提出的基於Census變換法也被廣泛用於匹配代價計算。Census變換是使用畫素鄰域內的區域性灰度差異將畫素灰度轉換為位元串,思路非常簡單,通過將鄰域視窗(視窗大小為n×m,n和m都為奇數)內的畫素灰度值與視窗中心畫素的灰度值進行比較,將比較得到的布林值對映到一個位元串中,最後用位元串的值作為中心畫素的Census變換值Cs,如公式1所示:

式1

其中,n’和m’分別為不大於n和m的一半的最大整數,為位元位的逐位連線運算,ξ運算則由公式2定義:

式2

基於Census變換的匹配代價計算方法是計算左右影像對應的兩個畫素的Census變換值的漢明(Hamming)距離,即

式3

  Hamming距離即兩個位元串的對應位不相同的數量,計算方法為將兩個位元串進行亦或運算,再統計亦或運算結果的位元位中不為1的個數。

  基於Census變換的匹配代價計算方法如圖1所示,

圖1 漢明距離示意圖

  從圖1可以看出,Census變換對整體的明暗變化並不敏感,因為是比較的相對灰度關係,所以即使左右影像亮度不一致,也能得到較好的匹配效果。

  Census相比互資訊還具有並行度高的優點,因為Census變換值是區域性視窗運算,所以每個畫素可以獨立運算,這個特性讓其可以很好的設計多執行緒平行計算模型,無論是CPU並行還是GPU並行都能達到非常高的並行效率。

  在實際匹配過程中,簡單的執行匹配代價計算並不能得到高質量的視差圖,必須經過代價聚合步驟,聚合後的代價能夠更準確地反應匹配相似度,下篇部落格中,將為大家詳解SGM的代價聚合步驟,檢視請點選 >> link


  1. ZABIH R, WOODFILL J. Non-parametric local transforms for computing visual correspondence[M]. 1994: 151-158. ↩︎