立體匹配之Census Transform

一、立體匹配算法主要可分爲大類:基於局部約束和基於全局約束的立體匹配算法.算法

(一)基於全局約束的立體匹配算法:在本質上屬於優化算法,它是將立體匹配問題轉化爲尋找全局能量函數的最優化問題,其表明算法主要有圖割算法、置信度傳播算法和協同優化算法等.全局算法可以得到較低的總誤匹配率,但算法複雜度較高,很難知足實時的需求,不利於在實際工程中使用.函數

(二)基於局部約束的立體匹配算法:主要是利用匹配點周圍的局部信息進行計算,因爲其涉及到的信息量較少,匹配時間較短,所以受到了普遍關注,其表明算法主要有 SAD、SSD、NCC等。學習

二、本文采用局部約束的立體匹配算法優化

(1)Census 變換spa

Census 變換在實際場景中,形成亮度差別的緣由有不少,如因爲左右攝像機不一樣的視角接受到的光強不一致,攝像機增益、電平可能存在差別,以及圖像採集不一樣通道的噪聲不一樣等,cencus方法保留了窗口中像素的位置特徵,而且對亮度誤差較爲魯棒,簡單講就是可以減小光照差別引發的誤匹配。原理

實現原理:在視圖中選取任一點,以該點爲中心劃出一個例如3 × 3 的矩形,矩形中除中心點以外的每一點都與中心點進行比較,灰度值小於中心點即記爲1,灰度大於中心點的則記爲0,以所得長度爲 8 的只有 0 和 1 的序列做爲該中心點的 census 序列,即中心像素的灰度值被census 序列替換。通過census變換後的圖像使用漢明距離計算類似度,所謂圖像匹配就是在視差圖中找出與參考像素點類似度最高的點,而漢明距正是視差圖像素與參考像素類似度的度量。具體而言,對於欲求取視差的左右視圖,要比較兩個視圖中兩點的類似度,可將此兩點的census值逐位進行異或運算,而後計算結果爲1 的個數,記爲此兩點之間的漢明值,漢明值是兩點間類似度的一種體現,漢明值愈小,兩點類似度愈大實現算法時先異或再統計1的個數便可,漢明距越小即類似度越高。(儘管census變換提升了匹配魯棒性,但其包含的圖像信息有限,原始灰度信息己經徹底被拋棄了,所以不能將變換結果用於單像素或較小窗口的匹配,仍須要使用與其餘區域匹配方法中相似的匹配窗口)變換過程如圖 1 所示。方法

 

127  126 130                1    1    0統計

126  128 129      --->    1    *    0         ---> cencus序列 {11010101}算法複雜度

127  131  111               1    0    1                                         di

                                                                                               --->  異或 {01110010} --->漢明距爲4

110  126 101              1    0    1

146  120 127      --->  0    *    0          ---> cencus序列  {10100111}

112  101  111             1    1    1

                                           圖 1

 

 用FPGA實現時,思路就是先用RAM或者shift register 實現矩陣,而後捕捉相關點進行比較、異或等操做

//後面再繼續記錄學習部分

相關文章
相關標籤/搜索