原文:http://blog.csdn.net/mysniper11/article/details/8618245
一、概念
立體比對算法主要是通過建立一個能量代價函數,通過此能量代價函數最小化來估計像素點視內插補點。立體比對算法的實質就是一個最優化求解問題,通過建立合理的能量函數,增加一些限制,采用最優化理論的方法進行方程求解,這也是所有的病态問題求解方法。
二、主要立體比對算法分類
1)根據采用圖像表示的基元不同,立體比對算法分為:
A、區域立體比對算法(可擷取稠密視差圖。缺點:受圖像的仿射畸變和輻射畸變影響較大;像素點限制視窗的大小與形狀選擇比較困難,選擇過大,在深度不連續處,視差圖中會出現過度平滑現象;選擇過小,對像素點的限制比較少,圖像資訊沒有得到充分利用,容易産生誤比對。)
B、基于特征的立體比對算法(可獲得稀疏的視差圖,經內插補點估計可獲得稠密視差圖。可提取點、線、面等局部特征,也可提取多邊形和圖像結構等全局特征。缺點:特征提取易受遮擋、光線、重複紋理等影響較大;內插補點估計計算量大)
C、基于相位立體比對算法(假定在圖像對應點中,其頻率範圍内,其局部相位是相等的,在頻率範圍内進行視差估計)
2)依據采用最優化理論方法的不同,立體比對算法可以分為:
A、局部的立體比對算法
B、全局的立體比對算法
三、比對基元(match primitive)
目前比對算法中所采用的比對基元可以分成兩大類:
1)在所有圖象像素點上抽取量測描述子
A、像素灰階值(最簡單、直接,但必須在同一光照條件下獲得)
B、局部區域灰階函數(主要是利用求得在各種大小不同視窗中灰階分布的導數資訊,描述像素點周圍的結構矢量。)
C、卷積圖象符号(利用各種大小算子與圖象進行卷積,用灰階梯度局部極大值或極小值作為特征資訊,描述整個圖像)
2)圖像特征
A、過零點
B、邊緣(由于邊緣是圖像特征位置的标志,對灰階值的變化不敏感,邊緣是圖像比對的重要特征和描述子)
C、角點(雖然其沒有明确的數學定義,但大家普遍認為角點,即二維圖像亮度變化劇烈的點或邊緣曲線上曲率極值點)
四、區域比對算法
基本原理是給定在一幅圖像上的某一點,選取該像素點鄰域内的一個子視窗,在另一幅圖像中的一個區域内,根據某種相似性判斷依據,尋找與子視窗圖像最為相似的子圖,而其比對的子圖中對應的像素點就為該像素的比對點。
一般單純的區域比對都遇到如下限制:
1)針對弱紋理或存在重複紋理的區域,比對結果不好
2)該算法不适應于深度變化劇烈的場景
3)對光照、對比度和噪聲比較敏感
4)子窗體的大小很難選擇
五、特征比對算法
特征的比對算法,主要是基于幾何特征資訊(邊緣、線、輪廓、興趣點、角點和幾何基元等),針對幾何特征點進行視差估計,是以先要提取圖像的特征點,盡而利用這些特征點的視內插補點資訊來重建三維空間場景。
比對所需要的主要步驟:圖像預處理、提取特征、特征點的比對擷取稀疏視差圖,如果想得到稠密的視差圖,需要采用插值的方法。
六、全局比對算法
全局立體比對算法主要是采用了全局的優化理論方法估計視差,建立全局能量函數,通過最小化全局能量函數得到最優視內插補點。
全局比對算法得到的結果比較準确,但是其運作時間比較長,不适合實時運作。主要的算法有圖割(graph cuts)、信念傳播(belief propagation)、動态規劃等算法。
七、局部比對算法(個人覺得跟區域比對類似,角度不同而已)
主要是采用局部優化方法進行視內插補點估計,局部立體比對算法有 SAD,SSD 等算法,與全局立體比對算法一樣,也是通過能量最小化方法進行視差估計,但是,在能量函數中,隻有資料項,而沒有平滑項。
主要分為三類:自适應窗體立體比對算法、自适應權值的立體比對算法和多窗體立體比對算法。
八、立體比對限制
1)極線限制
2)唯一性限制
3)視差連續性限制
4)順序一緻性限制
5)相似性限制
九、相似性判斷标準
1)像素點灰階差的平方和,即 SSD
2)像素點灰階差的絕對值和,即 SAD
3)歸一化交叉相關,簡稱 NCC
4) 零均值交叉相關,即 ZNCC
5)Moravec 非歸一化交叉相關,即 MNCC
6) Kolmogorov-Smirnov 距離,即 KSD
7)Jeffrey 散度
8)Rank 變換(是以視窗内灰階值小于中心像素灰階值的像素個數來代替中心像素的灰階值)
9)Census 變換(是根據視窗内中心像素灰階與其餘像素灰階值的大小關系得一串位碼,位碼長度等于視窗内像素個數減一)
十、評價參數
立體比對算法是一個病态問題,一般通過建立能量函數,利用最小化能量函數,和一些限制條件,采用最優化理論方法進行求解方程。
公認的定量評價參數有:均方根誤差(Root-mean-squared)和誤比對率(percentage of bad matching pixels)
其中,利用極線限制、唯一性限制、順序性限制以及特征限制的方法較為常用。對于場景連續變化,縮放、光照以及旋轉變化不大的場景來說,模闆比對算法(SSD、SAD等)配合極線和特征限制可以實作快速得到稠密比對的目的。同時為了加速可以考慮利用改進的模闆比對算法以及GPU加速。