【機器視覺】3. 目標跟蹤:光流法

【機器視覺】3. 目標跟蹤:光流法

來自專欄 Let Machine See

跟蹤是在圖像序列或視頻里對其中的特徵點進行追蹤的過程,特徵點提取參見

Calvin Shi:【機器視覺】2. 特徵點檢測:Harris, SIFT, SURF, ORB?

zhuanlan.zhihu.com圖標

光流(optical flow)是目標、場景或攝像機在連續兩幀圖像間運動時造成的目標的運動。它是圖像在平移過程中的二維矢量場,是通過二維圖像來表示物體點三維運動的速度場,反映了微小時間間隔內由於運動形成的圖像變化,以確定圖像點上的運動方向和運動速率。

光流提供了恢復運動的線索。

光流法主要依賴於三個假設:

  • - [亮度恆定] 圖像中目標的像素強度在連續幀之間不會發生變化。

  • - [時間規律] 相鄰幀之間的時間足夠短,以至於在考慮運行變化時可以忽略它們之間的差異。該假設用於導出下面的核心方程。
  • - [空間一致性] 相鄰像素具有相似的運動。

假設一個目標像素在t 時刻亮度為I(x,y,t),在t+δ t 時刻,運動[δ x,δ y] 後與t 時刻具有相同的亮度,即 I(x,y,t)=I(x+delta x, y+delta y, t+delta t) ,對該約束用泰勒公式進行一階展開並關於t 求偏導可以得到光流方程,其中 u=dot x, v=dot y

f_x u +f_y v+f_t=0 \ 	ext{where } f_x=partial f/partial x,f_y=partial f/partial y,f_t=partial f/partial t

於是

-f_t=f_x u +f_y v=
abla f oldsymbol{v}

相同位置的灰度微分是空間灰度微分與這個位置上相對於觀察者的速度的乘積。

對於多個點有

egin{pmatrix} f_{x1} & f_{y1}\ vdots & vdots \ f_{xn} & f_{yn}end{pmatrix}egin{pmatrix}u\vend{pmatrix}=egin{pmatrix} f_{t1}\ vdots \f_{tn}end{pmatrix}

把上式改寫為 F_x u=F_t 的形式,則 u=(F_x^T F_x)^{-1} F_x^T F_t ,也就是

egin{pmatrix} u\v end{pmatrix}=egin{pmatrix} sum_i f_{xi}^2 &sum_i f_{xi} f_{yi} \ sum_i f_{xi} f_{yi} &sum_i f_{yi}^2 end{pmatrix}^{-1}egin{pmatrix} -sum_i f_{xi} f_{ti} \-sum_i f_{yi} f_{ti} end{pmatrix}

這樣就得到一系列追蹤點,運用其繪出光流,稱為Lucas-Kanade演算法。


Lucas-Kanade演算法得到的[u,v]^T是一個稀疏矩陣,2003年,Farneback提出了另一種獲取光流的方法,考慮在給定鄰域內速度矢量場緩慢變化,即

u_x^2+v_x^2=0,u_y^2+v_y^2=0

也就是求解優化問題

egin{aligned} min & ,frac{1}{2} ||f_x u+f_y v+f_t ||^2 \ 	ext{s.t.} & , u_x^2+v_x^2=0,u_y^2+v_y^2=0 end{aligned}

其拉格朗日函數

L^2=(f_x u+f_y v+f_t )^2+lambda^2 (u_x^2+v_x^2+u_y^2+v_y^2)

frac{partial L^2}{partial u}=0 Rightarrow f_x^2 u+f_x f_y v=-lambda^2 
abla u -f_x f_t \ frac{partial L^2}{partial v}=0 Rightarrow f_y^2 v+f_x f_y u=-lambda^2 
abla v -f_y f_t

結果差分化,以迭代地計算光流

egin{gather} u_{m+1}=ar u_m -frac{f_x (f_x ar u_m +f_y ar v_m +f_t)}{lambda^2+f_x^2+f_y^2}\ v_{m+1}=ar v_m -frac{f_y (f_x ar u_m +f_y ar v_m +f_t)}{lambda^2+f_x^2+f_y^2} end{gather}


從全局到局部光流估計:

  • - 從動態圖像對中進行光流的鬆弛計算,對於所有的圖像位置初始化速度矢量
  • - 從圖像序列中進行光流計算,對於所有的點估計光流的初始化速度矢量
  • - 當亮度恆常性和速度平滑性假設無法滿足時,光流計算的全局鬆弛方法出現錯誤
  • - 局部光流估計基於亮度恆常性和速度平滑性假設,將圖像分割成假設成立的小區域,解決誤差傳播問題;利用平滑性的約束區域解決平滑性違背問題

運動的基本元素:

  • - 距離觀察者恆定距離的平移
  • - 相對觀察者的深度平移

  • - 在離開觀察軸一個恆定距離上旋轉
  • - 垂直於觀察軸的平面物體旋轉

如何通過光流分析識別基本運動元素?

  • - 恆定距離平移表示為一組平行的運動向量
  • - 深度平移形成一組向量,它們具有共同的延伸焦點
  • - 恆定距離旋轉產生一組同心的運動向量
  • - 垂直於觀察軸的旋轉形成一組或者多組從直線段開始的向量

Def. 當平移不在一個恆定的深度上,光流向量不平行,光流向量的彙集點稱為延伸焦點(FOE, Focus of expansion),如果在恆定深度上平移,FOE處於無窮遠處;每個獨立運動的物體,都具有自己的FOE;FOE是圖像平面上的點,只有平移運動中才存在FOE

設觀察者與像素點所表示的物體的相互速度c=(u,v,w),三維點初始坐標(x0,y0,z0),則對應t時刻圖像坐標

(x,y)=(frac{x_0+ ut}{z_0 +wt},frac{y_0+ vt}{z_0 +wt})

當t→-∞,運動從觀察者追溯到無窮遠處的原點,即

FOE=(frac{u}{w},frac{v}{w})

假設物體為剛體,且進行平移運動,令(x,y,z)是物體上的三維點位置,D(t)是圖像上點與FOE的距離,兩者的關係為

egin{pmatrix} x\ y\z end{pmatrix}=frac{dot z D}{dot D}egin{pmatrix} x \ y \1 end{pmatrix}

推薦閱讀:

CS231n 2017 Lecture 1: Course Introduction 隨堂筆記
論文閱讀:Attentional Pooling for Action Recognition
skimage例子學習(一)HED顏色通道提取與融合
基於深度學習的計算機視覺應用之目標檢測
Path Aggregation Network for Instance Segmentation

TAG:計算機視覺 | 同時定位和地圖構建SLAM | 機器人 |