Lucas-Kanade算法總結


Lucas-Kanade算法廣泛用於圖像對齊、光流法、目標追蹤、圖像拼接和人臉檢測等課題中。

 

一、核心思想

給定一個模板和一個輸入,以及一個或多個變換,求一個參數最佳的變換,使得下式最小化

在求最優解的時候,該算法假設目前的變換參數已知,並迭代的計算的增量,使得更新后的能令上式比原來更小。則上式改寫為:

 

 

二、算法流程

1.初始化參數向量

2.計算及其關於導數,求得參數增量向量

3.更新

4.若小於某個小量,即當前參數向量基本不變化了,那么停止迭代,否則繼續2,3兩步驟。

 

三、具體做法

做一階泰勒級數展開,則目標函數變為:

 

對其求導,並令導數為0,得到下式:


對上式中的求解即可,得到的是的解析解:

 

其中,

 

 

四、Lucas-Kanade算法(前向加性算法)

 

 

迭代:

 

1) 利用,將中各個像素點的坐標對應到中的相應的像素點的坐標,得到。即和的大小尺寸(像素個數和長寬)相同。

 

2) 計算,獲得誤差圖像。

 

3) 計算中與經過變換對應的像素點的梯度圖像,即計算中各個點在中的梯度。利用,將中各個像素點的坐標對應到的梯度圖像中各個點的坐標。

 

4) 計算在設定下的Jacobian。即代入當前參數,計算。如果是二維坐標,即,也就是說每行是對中每個分量對於的每個參數分量的導數:

 

5) 計算最速梯度下降圖。即利用中每個像素點相乘。

 

6) 利用上述提到的公式計算Hessian矩陣

 

7) 利用上面步驟計算得到的值,計算

 

8) 利用上述提到的公式計算參數向量的增量

 

9) 更新

 

五、Baker-Matthews算法(逆向組成算法)

 

預處理:

1) 計算模板的梯度圖像

2) 計算在設定下的Jacobian

3) 計算最速梯度下降圖。即利用中每個像素點相乘。

4) 利用公式計算Hessian矩陣

 

迭代:

5) 利用,將中各個像素點的坐標對應到中的相應的像素點的坐標,得到。即的大小尺寸(像素個數和長寬)相同。

6) 計算,獲得誤差圖像。

7) 利用上面步驟計算得到的值,計算

8) 利用上述提到的公式計算參數向量的增量

9) 更新。即將原有的矩陣與矩陣的逆相乘。

 

六、參考文獻和資料

[1]Matthews I, Baker S. Active appearance models revisited[J]. International Journal of Computer Vision, 2004, 60(2): 135-164.

[2]Cootes T F, Edwards G J, Taylor C J. Active appearance models[J]. IEEE Transactions on pattern analysis and machine intelligence, 2001, 23(6): 681-685.

[3]Baker S, Matthews I. Lucas-kanade 20 years on: A unifying framework[J]. International Journal of Computer Vision, 2004, 56(3): 221-255.

[4]利用L-K算法實現的圖像對齊程序:http://www.codeproject.com/Articles/24809/Image-Alignment-Algorithms

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM