【恆叨立碼】【理論恆叨】【立體匹配系列】經典SGM:(1)匹配代價計算之互信息(MI)

  半全局立體匹配算法Semi-Global Matching,SGM由學者Hirschmüller在2005年所提出1,提出的背景是一方面高效率的局部算法由於所基於的局部窗口視差相同的假設在很多情況下並不成立導致匹配效果較差;而另一方面全局算法雖然通過二維相鄰像素視差之間的約束(如平滑性約束)而得到更好的匹配效果,但是對內存的佔用量大,速度慢。爲了結合兩者的優點,同時避免兩者的缺點,SGM算法依舊採用全局框架,但是在計算能量函數最小化的步驟時使用高效率的一維路徑聚合方法來代替全局算法中的二維最小化算法,使用一維最優來近似二維最優,得到的視差圖在效果上和全局算法沒有太大的差別,但是算法效率卻有非常大的提升。

本專題將從匹配算法的四個步驟出發,來對SGM算法的理論做一個詳細介紹。

理論恆叨系列

【恆叨立碼】【理論恆叨】【立體匹配系列】經典SGM:(1)匹配代價計算之互信息(MI))
【恆叨立碼】【理論恆叨】【立體匹配系列】經典SGM:(2)匹配代價計算之Census變換
【恆叨立碼】【理論恆叨】【立體匹配系列】經典SGM:(3)代價聚合(Cost Aggregation)
【恆叨立碼】【理論恆叨】【立體匹配系列】經典SGM:(4)視差計算、視差優化

【理論恆叨】【立體匹配系列】經典SGM:匹配代價計算之互信息(MI)

  本篇首先介紹SGM算法第一步:匹配代價計算 的典型算法之一:基於互信息(Mutual Information,MI)的匹配代價計算法。

基於互信息的匹配代價計算

  從上一篇文章中可知,匹配代價計算是雙目立體匹配的第一步,在雙目匹配算法中,大部分算法會爲每個像素預先設置一個固定的視差搜索範圍DD(dmind_{min}~dmaxd_{max}),將像素的視差真值限定在範圍DD內,並引入一個大小爲W×H×DW×H×D的三維代價空間CC, CC中的每個元素映射左影像每個像素在視差範圍內每個視差下的匹配代價值,而匹配代價計算即是通過計算像素之間的相關性來填充CC的步驟,計算的時間複雜度爲O(WHD)O(W H D)
  在SGM被提出的文獻1 2中,Hirschmüller使用基於互信息(Mutual Information,MI)的匹配測度計算算法來計算匹配代價,互信息是一種對影像明暗變化不敏感的相關性測度,它通過兩張影像各自的熵HH以及兩者的聯合熵來定義,熵代表影像的信息量,是基於灰度的概率分佈所得到的統計量,圖像的熵越大代表包含的像素灰度越豐富,灰度分佈越均勻。互信息MI通過公式1來計算,

式1

  其中, 爲圖像I1I_1I2I_2的互信息,HI1H_{I_1}HI2H_{I_2}分別爲I1I_1I2I_2的熵, HI1,I2H_{I_1,I_2}爲兩張圖像的聯合熵。圖像的熵及聯合熵通過灰度的概率分佈P計算,計算公式分別如公式2及3所示。

式2

式3

  對於兩幅配準好的影像來說,它們的聯合熵是很小的,因爲其中一張影像可以通過另外一張影像預測,這表示兩者的的可區分度很低,所包含的信息很少,而由公式1可知它們的互信息會相對更大,這也是互信息可以作爲相關性測度的理論依據,當兩者的相關性越高,則互信息越大。
在使用互信息的立體匹配中,首先必須將其中一幅圖像根據視差圖進行糾正,使得同名點在兩張圖像中處於同一位置,假設基準影像爲ImI_m,匹配影像爲IbI_b,則糾正方式可表示爲

式4

  公式1是針對全圖計算互信息的公式,而不是像素之間獨立計算,無法直接用於匹配代價計算,Kim等3使用泰勒展開方法將聯合熵的計算轉換爲通過數據項累加的方式,數據項的計算依賴於同名點對且對每個像素獨立,如公式5所示,

式5

  其中,數據項hI1,I2h_{I_1,I_2}通過左右影像同名點灰度的概率分佈 來計算,若影像內同名點數爲nn,通過基於高斯卷積g(i,k)g(i,k) 的Parzen窗估計法3來計算數據項,見公式6:

式6

  上式中,i,ki, k爲參與計算數據項的兩個灰度,它們的聯合概率分佈使用公式7計算

式7

  其中,TT函數若其參數爲真,則返回1,反之返回0,實際上就是統計灰度對與i,k(i, k)相同的同名點對在全圖中所佔的比例。

  Kim等人3認爲基準影像的熵HI1H_{I_1}是固定的,而匹配影像的熵HI2H_{I_2}也基本是固定的因爲糾正函數fD(Ib)f_D(I_b)只不過是對匹配影像的灰度進行了重新位置分配,但是由於有遮擋的存在,基準影像被遮擋的區域沒有正確的視差值,這些區域也就不存在同名點,不能參與熵計算,而由於這些區域的位置是無法預先被告知,所以只能認定兩張影像的熵都是不固定的,因此一般來說,採用計算聯合熵相類似的方式來計算影像各自的熵,如公式8所示:

式8

  概率分佈的計算需要遍歷全圖,但只需要統計同名點對所在的區域。實際上PI(i)P_I(i)可以直接使用聯合概率分佈來計算,即

式9

  最終,互信息的定義可以用公式10來描述:

式10

  基於互信息的匹配代價可通過公式11來計算:

式11

  其中,qq表示像素pp的同名點。

  從以上描述可以看到,要計算互信息,必須預先知道視差圖來對匹配影像進行糾正,這彷彿類似於雞生蛋蛋生雞的問題,論文1中採用的是一種分層迭代的方案,對影像進行逐級降採樣得到多層影像對,爲最上層影像對隨機生成一張視差圖,然後計算得到的代價數組作爲初始代價數組計算新的視差圖並作爲下一層影像對的視差圖,如此迭代至最下層影像,一般迭代三次即可達到較好的匹配結果。

  互信息法代價計算原理較爲複雜,且計算需要迭代,計算效率不高,在實際應用中,更簡單有效的方法如Census變換、BT法會得到更多的青睞。下一篇中,將爲大家詳細介紹實用高效且簡單易懂的Census變換法。

  查看下篇Census變換法請點擊>> link

碼上教學系列

【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(1)框架與類設計
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(2)代價計算
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(3)代價聚合
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(4)代價聚合2
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(5)視差優化
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(6)視差填充
【恆叨立碼】【碼上教學】【立體匹配系列】經典SGM:(7)弱紋理優化

代碼已同步於Github開源項目:Github/GemiGlobalMatching


  1. HIRSCHMULLER H. Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information: Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on, 2005[C]. ↩︎ ↩︎ ↩︎

  2. HIRSCHMÜLLER H. Hirschmüller, H.: Stereo processing by semiglobal matching and mutual information. IEEE PAMI 30(2), 328-341[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2008,30(2):328-341. ↩︎

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章