光流法的學習

2021-04-19 19:09:11 字數 1004 閱讀 4945

光流法是比較經典的運動估計方法。

在空間中,運動可以用運動場描述。而在乙個影象平面上,物體的運動往往是通過影象序列中不同圖象灰度分布的不同體現的。從而,空間中的運動場轉移到影象上就表示為光流場,光流場反映了影象上每一點灰度的變化趨勢。

光流可以看作帶有灰度的畫素點在影象平面運動產生的瞬時速度場。下面我們推導光流方程:

假設e(x,y,t)為(x,y)點在時刻t的灰度(照度)。設t+dt時刻該點運動到(x+dx,y+dy)點,他的照度為e(x+dx,y+dy,t+dt)。我們認為,由於對應同乙個點,所以

e(x,y,t) = e(x+dx,y+dy,t+dt)   —— 光流約束方程

將上式右邊做泰勒展開,並令dt->0,則得到:exu+eyv+et = 0,其中:

ex = de/dx   ey = de/dy   et = de/dt   u = dx/dt   v = dy/dt

上面的ex,ey,et的計算都很簡單,用離散的差分代替導數就可以了。光流法的主要任務就是通過求解光流約束方程求出u,v。但是由於只有乙個方程,所以這是個病態問題。所以人們提出了各種其他的約束方程以聯立求解。但是由於我們用於攝像機固定的這一特定情況,所以問題可以大大簡化。

攝像機固定的情形

在攝像機固定的情形下,運動物體的檢測其實就是分離前景和背景的問題。我們知道對於背景,理想情況下,其光流應當為0,只有前景才有光流。所以我們並不要求通過求解光流約束方程求出u,v。我麼只要求出亮度梯度方向的速率就可以了,即求出sqrt(u*u+v*v)。

而由光流約束方程可以很容易求到梯度方向的光流速率為 v = abs(et/sqrt(ex*ex+ey*ey))。這樣我們設定乙個閾值t。

v(x,y) > t 則(x,y)是前景 ,反之是背景

。。。。。。。

其上提供了乙個vc編寫的**和乙個用opencv庫寫的**,有用的著的自己去鏈結上看咯。

光流法的介紹

光流法即空間運動物體在觀察成像平面上的畫素運動的瞬時速度,是利用影象序列中畫素在時間域上的變化以及相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關係,從而計算出相鄰幀之間物體的運動資訊的一種方法。光流法的典型應用有目標檢測和目標跟蹤,具體介紹如下 1 目標檢測 光流法用於目標檢測的原理 給影象...

光流法詳解之一 LK光流)

lucas kanade光流演算法是一種兩幀差分的光流估計演算法。它由bruce d.lucas 和 takeo kanade提出 1 lk光流法有三個假設條件 1.亮度恆定 乙個畫素點隨著時間的變化,其亮度值 畫素灰度值 是恆定不變的。這是光流法的基本設定。所有光流法都必須滿足。2.小運動 時間的...

光流法簡單介紹

光流的概念是 gibson 在1950 年首先提出來的。它是空間運動物體在觀察成像平面上的畫素運動的瞬時速度,是利用影象序列中畫素在 時間域上的變化以及 相鄰幀之間的相關性來找到上一幀跟當前幀之間存在的對應關係,從而計算出相鄰幀之間物體的運動資訊的一種方法。一般而言,光流是由於場景中前景目標本身的移...