ObstacleDetection Using Stereo Matching |
一、摘要 Stereo Matching 是利用左右兩台攝影機模擬雙眼,由左右兩張影像的disparity來算出物體深度。關於這次專題的內容,主要是希望提高計算 disparity 的速度, 參考了幾篇 paper 的方法,試著將它們結合。 算disparity可以視為解Markov Random Field的問題,專題中是用Belief Propergation(BP)來估計disparity。在 ”Implementation of BP for Early Vision” [1] 中提供了一個降低 BP 複雜度 的演算法,在 “Bilayer Stereo Matching”[2] 中則是運用了 bitwise 的概念,把 label 換成二進位,一個一個 bit 算,同時為了提高準確度,提出了 bilayer 的方式,把 label 值 分為前景和背景兩個範圍,分別對全圖的每個點算出最適合的值,再算出各個點是前景還是背景。這次就是結合這兩個方法。 |
二、方法概述 |
1. Belief Propagation 計算 disparity field 可以視為找出 Markov random field (MRF) model 裡最適合的 label 值使得 energy function 為最小。 上面為 energy function的式子,N是所有把相鄰兩點連接起來的 edge, P 是圖上的所有點, f 是 label 值 fp 和 fq 分別為 p, q 兩個 node (這裡代表兩個 相鄰的點) 的 label 值, Dp(fp)為點 p 的 label 值為 fp 的 cost, ) , V(fp, fq) 則是相鄰的兩點 p, q 的 label 值為 fp, fq 時的 cost。 這邊我們是用 belief propagation 來解 MRF model,BP 的式子主要如下: mtpq 為點 p 傳給點 q 的 message,前一次的結果都會影響下一次的結果,是遞迴的計算,經過T次後,每一點都會決定一 p f 使得 p b 的值收斂為一最小值, 這樣的方式在有 n 點,k 個可能的 label 值時,所需的時間為O(nk2T) |
2.Efficient Belief Propagation 這是[1]中提出的方法,這裡我稱之為 Hierachical BP,主要有下列幾點改進: (a)computing message 原來的BP每一次都要花O(k2)才能決定一mpq,由於V(fp, fq)是建立在fp, f的差異上我們使用下列式子: 再加入truncated linear model:
依照以上的式子,使用下列演算法: Time Complexity 變為O(k) (b)multiscale BP miltiscale 方法是把原來的圖分層很多層,上層的一個node代表著下層的許多node,計算結果從粗略到精準,方法如下圖 level 1 的一個 node 代表了 level 0 的四個 node。上層計算的初始值就是下層收歛的結果 ,這樣的方式可以加快原本 BP 傳遞 message 所需的收斂時間,也就是降低 T。 |
3. Bitwise Algorithm 這方法是[2]裡面提出的,一次決定 label 的一個 bit,若label有k個可能的值,原本要 O(k),現在就只要 O(logk),以下是[2]中的演算法,我把裡面graph cut的方法改成用 HBP: |
4. Bilayer Stereo Matching 最後我們再利用 bilayer 方式,改善得到的結果,主要的方式是把 disparity 分成前景和背景的範圍,分別找出在每點機率最大的值,再用前背景得出的值決定每一點是前景還是 背景記錄在 intermediate layer 的 label 當中,在專題的作法中,每次都是用 BP 去決定 label 值,所以總共是做了三次的 BP ,而整個流程如下: 而能改善的原因,主要是因為當沒有分前背景時,傳遞 message 時,在物體邊界的部分(前背景的交界)屬於背景範圍的 disparity 值,會影響到前景的部份,反之亦然,把前背 景分開處理後,問題就減少了。另外,在我們做障礙物偵測時,我們正好可利用 intermediate layer 的資訊,把前景的部分視為障礙物。 |
三、結果比較 |
1. bitwise 以下是 bitwise 的結果 |
2. 結果比較 以下是 HBP,bilayer,單純Bitwise HBP,還有intermediate layer 的結果 |
3. 時間比較 下表為三種方法的所花時間(s) 可以發現當 label 數越大時, bitwise 加速的效果就越明顯,加了 bilayer 後,Teddy 和 Cones 的時間還是比沒用 bitwise 來的短。 |
4. 結果評測 下表是在 middlebury 網站[3]上所做的評測 可以發現,加了 bilayer 後,的確改善了 bitwise 的結果,但還是比 Hierarchical BP 差了一點。 |
四、結論 |
利用 BP 來解 MRF model 所需的時間受到 label 數和 node 數( 圖片大小 ) 的影響最大,而在 label 數的部份,使用 bitwise 的方法,降低了 complexity,圖片大小方面,則是利用 multiscale 使得所須計算 的次數減少,根據實驗結果可以發現,當圖片越大,label 範圍越廣時,我們結合了兩個演算法,確實加速了不少。而另一方面,利用 bilayer 的技巧,不僅可以提高我們結果的準確度,同時前背景的分離,正好可以 作為障礙物偵測的一個依據。 |
五、參考資料 |
[1] Pedro F. Felzenszwalb and Daniel P. Huttenlocher. Efficient Belief Propagation for Early Vision. 2004 |