Optical_Flow(2)
??本文轉自:http://blog.csdn.net/justremind/article/details/23662273
1. 光流概念的介紹??
? ? ? ?光流的概念是Gibson在1950年首先提出來的,它是空間運動物體在觀察成像平面上的像素運動的瞬時速度。一般而言,光流是由于場景中前景目標本身的移動、相機的運動,或者兩者的共同運動所產生的。
光流場(Optical Flow Field)法的基本思想:在空間中,運動可以用運動場描述,而在一個圖像平面上,物體的運動往往是通過圖像序列中不同圖像灰度分布的不同體現的,從而,空間中的運動場轉移到圖像上就表示為光流場。光流場反映了圖像上每一點灰度的變化趨勢,可看成是帶有灰度的像素點在圖像平面上運動而產生的瞬時速度場,也是一種對真實運動場的近似估計。如圖3-8所示,光流是圖像中亮度圖案的表觀運動,而運動場是三維物體的實際運動在圖像平面上的投影,在理想情況下二者相互吻合。
? ? ? 光流的研究是利用圖像序列中的像素強度數據的時域變化和相關性來確定各自像素位置的“運動”。研究光流場的目的就是為了從圖片序列中近似得到不能直接得到的運動場。
? ? ??
? ? ? 2. ?常用光流計算方法
? ? ? ?稠密光流:將圖中的每個像素都與速度相關聯。
? ? ? ?稠密跟蹤方法:
? ? ? ? 1)Horn-Schunck方法:?Horn和Schunck于1981年提出這種方法,此方法是首次使用亮度恒定假設和推導出基本的亮度恒定方程的方法之一。OpenCV提供了實現該方法的函數 cvCalcOpticalFlowHS。
? ? ? ? 2)塊匹配方法: 對像素的集合進行處理而非單個像素, 所以返回的“速度圖像”通常比輸入圖像分辨率低。OpenCV實現該方法的函數cvCalcOpticalFlowBM。
? ? ? ? 這兩種光流方法不常用,而且它們不支持圖像金字塔匹配而不能用于跟蹤大幅度的運動。
? ? ? ? 實際上計算稠密光流并不容易,比如一張白紙的運動,上一幀中的白色的像素在下一幀中仍然為白色。于是出現了另一種方法,稀疏光流法。
? ? ? ?稀疏光流:需要指定一組點進行跟蹤,這組點最好具有某種明顯的特性,例如角點,那么跟蹤就會相對穩定和可靠。稀疏跟蹤的計算開銷比稠密跟蹤小得多。
? ? ? ?稀疏跟蹤方法:
? ? ? ?1)Lucas-Kanade(LK)光流法: 于1981年提出,最初是用于求稠密光流的,由于算法易于應用在輸入圖像的一組點上,而成為求稀疏光流的一種重要方法。
? ? ? ?2)金字塔LK光流法: LK光流法有個“小運動”的假設,因此較大運動會將點移出小窗口,造成算法無法再找到這些點。金字塔LK光流法可以解決這個問題,即從金字塔的最高層(細節最少)開始向金字塔的低層(豐富的細節)進行跟蹤,該方法允許小窗口捕獲較大的運動。
? ? 3.光流的應用
? ? ? ?光流難道只是用于匹配上一幀和下一幀的像素嗎。光流(optical flow)表達了圖像的變化,由于它包含了圖像的運動信息,因此可被觀察者用來確定目標的運動情況。
? ? ??
? ? ? ??如上圖所示,H中的像素點(x,y)在I中的移動到了(x+u,y+v)的位置,偏移量為(u,v)。
? ? ???光流法用于目標檢測:
? ? ? ?給圖像中的每個像素點賦予一個速度矢量,這樣就形成了一個運動矢量場。在某一特定時刻,圖像上的點與三維物體上的點一一對應,這種對應關系可以通過投影來計算得到。根據各個像素點的速度矢量特征,可以對圖像進行動態分析。如果圖像中沒有運動目標,則光流矢量在整個圖像區域是連續變化的。當圖像中有運動物體時,目標和背景存在著相對運動。運動物體所形成的速度矢量必然和背景的速度矢量有所不同,如此便可以計算出運動物體的位置。需要提醒的是,利用光流法進行運動物體檢測時,計算量較大,無法保證實時性和實用性。
? ? ?光流法用于目標跟蹤:
? ? (1)對一個連續的視頻幀序列進行處理;
? ? (2)針對每一個視頻序列,利用一定的目標檢測方法,檢測可能出現的前景目標;
? ? (3)如果某一幀出現了前景目標,找到其具有代表性的關鍵特征點(可以隨機產生,也可以利用角點來做特征點);
? ? (4)對之后的任意兩個相鄰視頻幀而言,尋找上一幀中出現的關鍵特征點在當前幀中的最佳位置,從而得到前景目標在當前幀中的位置坐標;
? ? (5)如此迭代進行,便可實現目標的跟蹤。???
? ? ??光流方法的缺點
? ? ? 在比較理想的情況下,它能夠檢測獨立運動的對象,不需要預先知道場景的任何信息,可以很精確地計算出運動物體的速度,并且可用于攝像機運動的情況。但光流法存在下面的缺點:有時即使沒有發生運動,在外部照明發生變化時,也可以觀測到光流;另外,在缺乏足夠的灰度等級變化的區域,實際運動也往往觀測不到。三維物體的運動投影到二維圖像的亮度變化,本身由于部分信息的丟失而使光流法存在孔徑問題和遮擋問題,用光流法估算二維運動場是不確定的,需要附加的假設模型來模擬二維運動場的結構;在準確分割時,光流法還需要利用顏色、灰度、邊緣等空域特征來提高分割精度;同時由于光流法采用迭代的方法,計算復雜耗時,如果沒有特殊的硬件支持,很難應用于視頻序列的實時檢測。
Reference:
光流Optical Flow介紹與OpenCV實現 ?http://blog.csdn.net/zouxy09/article/details/8683859(寫的挺好,推薦閱讀)
http://machunyan120.blog.163.com/blog/static/14598902010101910431437/
http://blog.csdn.net/carson2005/article/details/7581642
http://wenku.baidu.com/link?url=ZrDpReB3lZwR-abMMntXQFAtpoSDHvh9SU95kdlwy3uN_YfK02kdwR2PZu9NdQQjz9e6bSDrxLhTvt02iIqKjHWMKTrmggYutgyTEVjB3S3
總結
以上是生活随笔為你收集整理的Optical_Flow(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Optical_Flow(1)
- 下一篇: Optical_Flow(3)