A Non-Local Cost Aggregation Method for Stereo Matching

1. 算法思想

本文的算法思想,是放棄原有的基於支持窗口的方式,採用基於全局MST的方式,構建代價聚合公式。MST,採用像素之間顏色信息作爲“邊權值”,以全圖的像素作爲結點,構建過程中不斷刪除權值較大的邊,然後用克魯斯卡爾或者普里姆算法進行計算,求得最小生成樹(MST),就得到了全圖像素之間的關係。

因爲支持窗口的辦法,本質上只考慮了窗口內像素對中心像素的影響,窗口之外的像素的影響徹底忽略,其實想想看,這樣做也沒有什麼不妥,但是它並不適用一些場合,比如文獻列舉的圖像,

                                                                     

左上角的圖像就是原始灰度圖像,這個時候我們就會發現,這幅圖像中像素與像素之間的關係用支持窗口來處理明顯不靈,比如說周圍框狀區域的任何一個像素,肯定與框狀區域內部的像素的深度信息一致,而與中間區域的像素不同。或者說,如果單考慮顏色信息,紅框內的像素關係最大,如何表徵這樣的關係就是一個問題。很遺憾,我們不能事先提取出這樣的區域,因爲圖像分割真的很耗時,並且不穩定,這就是作者的牛逼之處,他想到了MST可以表示這種像素關係,於是採用像素之間顏色信息作爲“邊權值”,進一步構建MST。


這裏還要仔細說一下,這幾幅圖代表的其實是全圖像素點對(0,0)點的權值大小,大家可以看一下論文裏面BF的公式,也就是b、c兩幅圖,文章把參數看成了窗口的大小標誌,如果參數足夠大,其實exp裏面的值就是0,空間信息的作用完全消失,這個時候就要看像素顏色差的作用了,我想這一點給作者一個提示,那就是BF中空間信息的考慮可能是多餘的!!!於是作者只利用顏色差信息來構建MST。


MST指的是最小生成數,全稱是最小權重生成樹。它以全圖的像素作爲節點,構建過程中不斷刪除權值較大的邊。注意,是全圖所有的像素,然後採用kruskal(克魯斯卡爾)算法或prim(普里姆)算法進行計算。這樣便得到了全圖像素之間的關係。然後基於這層關係,構建代價聚合,這便是文章標題Non-Local Cost Aggregation的由來。


通過MST計算權值的效果如上圖第二行所示,紅色代表高權值,藍色代表低權值。明顯發現MST有效的表徵了像素對像素的影響。代價聚合公式如下所示,具體的符號含義,這裏就不說了,相信做過立體匹配的童鞋一眼就會看明白。

2. 算法核心

2.1 leaf-to-root


假設上圖是一個MST,邊上的數值代表權重,此時如果計算的是V4的代價聚合,那麼很容易,直接計算子節點(V3, V4)的代價聚合值與各自邊緣的乘積集合,因爲V4是根節點,不需要考慮父節點的影響。公式如下所示,



箭頭向上代表從葉子到當前節點的代價聚合值,爲何只需要考慮子節點,而不考慮孫子節點,重孫子節點等等的原因就是由於在我們實際計算的時候,要從葉子節點一層一層往上算,這樣就會利用樹的特性,子節點的代價聚合值已經包含了孫子節點等等對我自己的影響。有點一本萬利的感覺。。。


2.2 root-to-leaf

但是這樣做是不夠的,上面的V4沒有父親節點,屬於特殊情況,如果我們要計算V3的代價聚合值呢?顯然只考慮V1和V2是不夠的,還得考慮V4的影響。也就是從上到下的影響。如圖所示:

注意和上一幅圖的區別,這個時候我們完全可以假設V3爲根節點,它的父節點也變爲他的子節點,這樣的話,可以利用同樣的辦法,將V4的代價聚合值乘以它的權重一起再加進來。但是,這裏還是有區別的,因爲V4的代價聚合值已經考慮到了V3的影響,所以必須事先將V4的代價聚合值減去V3的代價聚合值纔可以。公式如下所示:



其中,從上向下的代價聚合值就是最終的代價聚合值,同上一步一樣的方式,要從上到下一層一層的計算代價,這樣便可節省很多計算量。

2.3 時間複雜度

由於MST的性質,使得原本對全部像素的比較,只需要對父節點,子節點的比較即可,每次計算代價聚合值,從上述公式看來只需要一次加法,一次減法和三次乘法,這樣便極大提高了速度,同時又考慮到了全局像素的影響。在middlebury上數據集的平均計算時間僅爲90毫秒。

作者提供了文獻和源代碼的同時,也給出了一個ppt,就在作者的主頁上,對其算法原理仍舊迷惑的童鞋可以下載去看看。

3. 實驗效果&結論

實驗效果就不介紹了,論文上一目瞭然,這篇文章提供了源碼,大家可以跑跑看,我這邊針對一般場景進行了測試,效果還是很不錯的,經過進一步優化可以進行實際應用。這篇文章比較經典,一些後續的算法就是對其進行了改進,比如說分割樹算法《Segment-Tree based Cost Aggregation for Stereo Matching》,將圖事先進行區域分割,再在各個區域中計算MST,在生成MST的過程中,考慮到了顏色值與距離作爲邊緣權值,取得了比NL更好的效果。

附件:http://www.cs.cityu.edu.hk/~qiyang/publications/cvpr-12/

附上作者對於算法核心部分的PPT文檔的下載地址,作者詳細圖解了算法的每一步,很詳細。

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