光流法(optical flow)


光流分為稠密光流和稀疏光流

光流(optic flow)是什么呢?名字很專業,感覺很陌生,但本質上,我們是最熟悉不過的了。因為這種視覺現象我們每天都在經歷。從本質上說,光流就是你在這個運動着的世界里感覺到的明顯的視覺運動(呵呵,相對論,沒有絕對的靜止,也沒有絕對的運動)。例如,當你坐在火車上,然后往窗外看。你可以看到樹、地面、建築等等,他們都在往后退。這個運動就是光流。而且,我們都會發現,他們的運動速度居然不一樣?這就給我們提供了一個挺有意思的信息:通過不同目標的運動速度判斷它們與我們的距離。一些比較遠的目標,例如雲、山,它們移動很慢,感覺就像靜止一樣。但一些離得比較近的物體,例如建築和樹,就比較快的往后退,然后離我們的距離越近,它們往后退的速度越快。一些非常近的物體,例如路面的標記啊,草地啊等等,快到好像在我們耳旁發出嗖嗖的聲音。

       光流除了提供遠近外,還可以提供角度信息。與咱們的眼睛正對着的方向成90度方向運動的物體速度要比其他角度的快,當小到0度的時候,也就是物體朝着我們的方向直接撞過來,我們就是感受不到它的運動(光流)了,看起來好像是靜止的(這很好理解,因為光流分析是基於連續多幀的圖像來進行分析的,如果方向為0,那么每一幀改物體的位置相對於相機來說是相對靜止的(假設不考慮物體的透視效應,因此就察覺不到光流。當它離我們越近,就越來越大。當然了,我們平時看到感覺還是有速度的,因為物體較大,它的邊緣還是和我們人眼具有大於0的角度的)。

       呵呵,說了那么多,好像還沒進入比較官方的,研究性的定義。那就貼上一個吧。

       光流的概念是Gibson在1950年首先提出來的。它是空間運動物體在觀察成像平面上的像素運動的瞬時速度,是利用圖像序列中像素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關系,從而計算出相鄰幀之間物體的運動信息的一種方法。一般而言,光流是由於場景中前景目標本身的移動、相機的運動,或者兩者的共同運動所產生的。

       當人的眼睛觀察運動物體時,物體的景象在人眼的視網膜上形成一系列連續變化的圖像,這一系列連續變化的信息不斷“流過”視網膜(即圖像平面),好像一種光的“流”,故稱之為光流(optical flow)。光流表達了圖像的變化,由於它包含了目標運動的信息,因此可被觀察者用來確定目標的運動情況。

       研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運動場。運動場,其實就是物體在三維真實世界中的運動;光流場,是運動場在二維圖像平面上(人的眼睛或者攝像頭)的投影。

       那通俗的講就是通過一個圖片序列,把每張圖像中每個像素的運動速度和運動方向找出來就是光流場。那怎么找呢?咱們直觀理解肯定是:第t幀的時候A點的位置是(x1, y1),那么我們在第t+1幀的時候再找到A點,假如它的位置是(x2,y2),那么我們就可以確定A點的運動了:(ux, vy) = (x2, y2) - (x1,y1)。  那怎么知道第t+1幀的時候A點的位置呢? 這就存在很多的光流計算方法了。

       1981年,Horn和Schunck創造性地將二維速度場與灰度相聯系,引入光流約束方程,得到光流計算的基本算法。人們基於不同的理論基礎提出各種光流計算方法,算法性能各有不同。Barron等人對多種光流計算技術進行了總結,按照理論基礎與數學方法的區別把它們分成四種:基於梯度的方法(導數,比如LK算法)、基於匹配的方法、基於能量的方法、基於相位的方法。近年來神經動力學方法也頗受學者重視。

這其中基於匹配的方法就是和視頻編碼中的motion estimation的類似的,但是計算cost的方法有些不同。編碼的cost是為了壓縮使用的(比如MV本身也需要耗費bit在encoder中,cost需要考慮到這個cost,但是optical flow不需要考慮這些),而optical flow的搜索需要的是精確。另外,在視頻編碼中ME針對的運動是剛體的平移,如果有rotation,scale等就沒有辦法處理了,因此需要進行ME的改進。一種方法就是先對圖像抽取特征點比如harris corner等,這些特征點本身具有旋轉不變性,再對這些sparse的特征點進行block matching。

 

二維人體運動常用的跟蹤方法

目前常用的跟蹤方法有:塊匹配法(Block Matching)、光流法(optical flow)。每一類方法都有自己的優勢和不足,根據具體問題的不同,分別應用在不同的方面。接下來我們將簡要介紹這幾類方法。

2.1.1 塊匹配方法

塊匹配方法(Block Matching Algorithm,簡稱BMA)實質上是在圖像序列中做一種相鄰幀間的位置對應任務。它首先選取一個圖像塊,然后假設塊內的所有像素做相同的運動,以此來跟蹤相鄰幀間的對應位置。 塊匹配法把一個像素塊作為一個整體進行計算,運動表示簡單。其算法比較規則、簡單,硬件上易於實現,因簡單高效的特點而常被采用,在活動視頻圖像編碼的國際標准H. 261,H. 263和MPEG I,MPEG II中實際都采用了塊匹配法。 塊匹配算法如下所示:在給定兩幀順序圖像I幀和I+1幀,對於圖像1中的每個像素點(x,y),以此像素為中心形成一個大小為(2n + 1)X(2n + 1)的塊Bo圍繞圖像卜1幀中的對應像素點(x,y)建立一個尺寸為(2N十1)X(2N十1)的搜索窗口R。搜索窗口可根據有關兩圖像間最大可能位移的先驗知識來確定。假設一個像塊內所有的像素作速度相同的平移運動,然后在搜索窗口R內進行搜索匹配,在基於一定的誤差度量准則下尋找與其最匹配的像素塊B'。

2.1.2 光流跟蹤方法

光流(optical flow)法是目前運動圖像分析的重要方法,它的概念是由Gibso。於1950年首先提出的,是指時變圖像中模式運動速度。因為當物體在運動時,它在圖像上對應點的亮度模式也在運動。這種圖像亮度模式的表觀運動(apparent motion)就是光流。光流表達了圖像的變化,由於它包含了目標運動的信息,因此可被觀察者用來確定目標的運動情況。 由光流的定義可以引申出光流場,它是指圖像中所有像素點構成的一種二維(2D)瞬時速度場,其中的二維速度矢量是景物中可見點的三維速度矢量在成像表面的投影。所以光流不僅包含了被觀察物體的運動信息,而且還包含有關景物三維結構的豐富信息。 對光流的研究成為計算機視覺及有關研究領域中的一個重要部分。因為在計算機視覺中,光流扮演着重要角色,在目標對象分割、識別、跟蹤、機器人導航以及形狀信息恢復等都有着非常重要的應用。從光流中恢復物體三維結構和運動則是計算機視覺研究所面臨的最富有意義和挑戰性的任務之一。正是由於光流的這種重要地位和作用,使得眾多的心理物理學家、生理學家和工程研究人員都加入了它的研究行列。十多年來,他們提出了許多種計算光流的方法,而且新的方法還在不斷涌現。


免責聲明!

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



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