Lucas–Kanade光流演算法

來源:互聯網
上載者:User

來自 李杜 的 ZOL blog:轉自: http://blog.zol.com.cn/936/article_935964.html作者:gnuhpc@gmail.com

簡介:在電腦視覺中,Lucas–Kanade光流演算法是一種兩幀差分的光流估計演算法。它由Bruce D. Lucas 和 Takeo Kanade提出。

光流的概念:(Optical flow or optic flow)
它是一種運動模式,這種運動模式指的是一個物體、表面、邊緣在一個視角下由一個觀察者(比如眼睛、網路攝影機等)和背景之間形成的明顯移動。光流技術,如運動檢測和映像分割,時間碰撞,運動補償編碼,三維立體視差,都是利用了這種邊緣或表面運動的技術。

二維映像的移動相對於觀察者而言是三維物體移動的在映像平面的投影。
有序的映像可以估計出二維映像的瞬時映像速率或離散映像轉移。

光流演算法:
它評估了兩幅映像的之間的變形,它的基本假設是體素和映像像素守恒。它假設一個物體的顏色在前後兩幀沒有巨大而明顯的變化。基於這個思路,我們可以得到映像約束方程。不同的光流演算法解決了假定了不同附加條件的光流問題。

Lucas–Kanade演算法:
這個演算法是最常見,最流行的。它計算兩幀在時間t 到t + δt之間每個每個像素點位置的移動。 由於它是基於映像訊號的泰勒級數,這種方法稱為差分,這就是對於空間和時間座標使用偏導數。
映像約束方程可以寫為I(x,y,z,t) = I(x + δx,y + δy,z + δz,t + δt)
I(x, y,z, t) 為在(x,y,z)位置的體素。
我們假設移動足夠的小,那麼對映像約束方程使用泰勒公式,我們可以得到:

H.O.T. 指更高階,在移動足夠小的情況下可以忽略。從這個方程中我們可以得到:

或者

我們得到:


Vx,Vy,Vz 分別是I(x,y,z,t)的光流向量中x,y,z的組成。 , ,  和 則是映像在(x,y,z,t)這一點向相應方向的差分。
所以

I x V x +  I y V y +  I z V z = −  I t。
寫做:
這個方程有三個未知量,尚不能被解決,這也就是所謂光流演算法的光圈問題。那麼要找到光流向量則需要另一套解決的方案。而Lucas-Kanade演算法是一個非迭代的演算法:
假設流(Vx,Vy,Vz)在一個大小為m*m*m(m>1)的小窗中是一個常數,那麼從像素1... nn =  m3中可以得到下列一組方程:
三個未知數但是有多於三個的方程,這個方程組自然是個超定方程,也就是說方程組內有冗餘,方程組可以表示為:
記作:
為瞭解決這個超定問題,我們採用最小二乘法:
 or
得到:
其中的求和是從1到n。
這也就是說尋找光流可以通過在四維像導數的分別累加得出。我們還需要一個權重函數 W(i, j,k),  來突出視窗中心點的座標。高斯函數做這項工作是非常合適的,
這個演算法的不足在於它不能產生一個密度很高的流向量,例如在運動的邊緣和黑大的同質地區中的微小移動方面流資訊會很快的褪去。它的優點在於有雜訊存在的魯棒性還是可以的。
補充:opencv裡實現的看上去蠻複雜,現在還不是太明白。其中LK經典演算法也是迭代法,是由高斯迭代法解線性方程組進行迭代的。
參考文獻:Lucas B and Kanade T. An Iterative Image Registration Technique with an Application to Stereo Vision. Proc. Of 7th International Joint Conference on Artificial Intelligence (IJCAI),
pp.674-679.是81年發表的。
opencv中實現的是84年發表的演算法,
參考文獻:Bruce D. Lucas, "Generalized Image Matching by the Method of Differences,"
doctoral dissertation, tech. report , Robotics Institute, Carnegie Mellon University, July, 1984
這篇論文是收費的,一直都沒下到還。


【TLD   的tracking工作時基於Lucas-Kanade光流法的】


==========================================================================================
【在這篇文章下面看見一篇文章:
http://blog.zol.com.cn/946/article_945092.html】

【分享】過來人告誡研一學生:研一生活如何過才叫精彩!(轉)


時光飛逝,已經研二了,研一糊裡糊塗的過來,積累了不少教訓。給研一的孩兒們聊幾句。
如果給我一次重頭來過的機會,我會這樣安排: 
1.首先,將老闆以及實驗室論文,通看一遍,瞭解本專業(做的不好,到現在才完整的看過一兩篇論文吧。。。。其他都混的。。。。對不起boss%>_<%),本方向的研究內容;同時不明白的去查詢專業課書籍。但是千萬不能像小學生一樣,整天趴在自習教室上自習。(對於我昨晚考的矩陣論,深有感觸,深刻覺得我自習上多了,居然才考了7個題,那麼打擊人。。。。不要上太多自習%>_<%)
2.多與同專業的人交流,或者如果有各個領域學生聚在一起討論問題的機會,千萬要把握。
3.精心的選取兼職。不要忙於做工資微薄,但卻花費你巨大時間精力的兼職,比方說當應聘當服務員,或者文字錄入那種,絕對是得不償失。經曆和知識就是財富。去加入腦百匯的研究生輔導平台確實是不錯的選擇。我那個時候輔導一個師妹。她那時送我很多小禮物,也算是變相的報酬了,現在有腦百匯(www.naobaihui.com)這個平台,可以更加安心的參與這個輔導計劃,而且聽說報酬還不錯。另外,可以嘗試去做翻譯或者網頁設計,但是現在人才濟濟,做翻譯的話,最好英語過了八級然後再去應聘。
在前進的路上,除了堅實的腳步,更需要把握準確的方向,下面是我覺得自己在過去的日子浪費了的時間:
1.首先,不要參加所謂的學生會,那是純粹的浪費時間,但如果是有當班長、支書的機會,倒也不妨一試,那畢竟是個鍛煉機會,但如果誰讓你做生活委員,千萬別做,除了取信為人民服務外,你幾乎沒有其它事情。
2.不要浪費太多時間在研一的專業課知識的學習。到了研二才會發現,很多知識都是沒有用的。
3.不要太沉溺於愛情。愛情是不可或缺的,它能支援你一路走過,但它卻不是你生活的一切,不要整天圍著對方轉,在關心對方的同時關心自己,尤其是關心自己的學業。
其他有一些也要注意的是
1.好好培養自己的人際關係網路,所謂在家靠父母,出門靠朋友,這是一點都沒錯的,當你需要別人幫忙時,你就會真切地體會到這一點,因此,不要太專註於自己的事情,多協助別人,多與別人建立感情,別到快畢業時才發現班上還有一半以上的同學都跟你不熟。
2.不要錯過任何機會,不要輕易放棄,好好發展自己。
3. 好好愛自己,身體是本錢,不要無情地透支它。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.