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
總結
以上是生活随笔為你收集整理的Lucas-Kanade算法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国白酒品牌(中国白酒“嫡系”百科全书)
- 下一篇: 微软云之路——Windows Azure