標籤:

cs131課程筆記(10)

cs131課程筆記(10)

Lecture_16 Classification

1.分類的挑戰:語意層級(semantic hierarchy),細分類別(fined-grained classes),大規模學習(large-scale learning)。

Lecture_17 Motion

1.光流(optical flow)。定義:光流場是指圖像亮度模式(brightness patterns)的表觀運動(apparent motion),目的是通過光流場恢復處圖像的運動。注意,表觀運動可能是由光線變化導致的而不是移動導致的。

2.光流場的假設:1)同一物體運動前後亮度不變,2)運動很微小,3)圖像中的點與他們領域的點運動相似。

3.根據假設1),把下面等式泰勒展開,可以得到 I(x+u(x,y),y+v(x,y),t+1)=I(x,y,t)approx{I(x,y,t)+I_xcdot{u(x,y)}+I_ycdot{v(x,y)}+I_t}\ I_xcdot{u}+I_ycdot{v}+I_tapprox{0}\ 	riangledown{I}cdot[u quad v]^T+I_t=0 這個式子可以這樣理解,首先 I(x,y,t) 是一個 (x,y,t)
ightarrowmathbb{R}^1 的映射也就是把三維映射成一維,那我們先考慮只有一維映射成一維,那就變成 f(x+u)={f(x)}approx{f(x)}+f(x)u+O(f(x)),f(x)u=0 ,也就是說當一維的時候想要自變數變化,因變數不變,那麼這個函數得要滿足一階導數為零(近似值)。同理當自變數為三維時,只需要對應泰勒展開為零,就可以求得圖像運動的方向和距離 [uquad{v}]

對於上面的等式,由於是個數值等式而不是矩陣等式,每一個像素點有2個未知數[uquad{v}]和一個方程,所以是欠定的。

4.另外光流存在一個孔徑問題(aperture problem),如圖

就是當不知道線段具體多長時,無法判斷具體的運動方向。

5.Lucas-Kanade method。由於一個像素只有一個方程,無法求得確定解,LK光流運用假設3),即領域運動相似,對每個像素取5x5的領域窗口,假設窗口中每個像素 [uquad{v}] 一樣,一共有25個方程

egin{pmatrix}I_x(p_1)&I_y(p_1)\I_x(p_2)&I_y(p_2)\...&...\I_x(p_{25})&I_y(p_{25})\end{pmatrix} egin{pmatrix}u\vend{pmatrix}=-egin{pmatrix}I_t(p_1)\I_t(p_2)\...\I_t(p_{25})end{pmatrix}

對於這樣一個超定方程可以求最小二乘解 (A^TA)x=A^TbA^TA=egin{pmatrix}sum{I_xI_x}&sum{I_xI_y}\sum{I_xI_y}&sum{I_yI_y}end{pmatrix} 這個方程的特徵值需要較大且比值接近1時, A^TA 可逆,方程有解。可以看到這時A^TA 就是二階矩矩陣,和求harris角點時的矩陣對應。因此可以看出,光流場運動方向有解的條件是對應點是角點而不能是平坦的區域。

6.LK光流的誤差:當假設1,2,3違背時,LK光流就會不準確。

7.另外我們可以提高準確率。因為光流場用的是泰勒一階近似,可以用更高階的泰勒展開近似。方法為牛頓迭代,具體如下:

loop:

1. 在點 I(x+u,y+v,t_k) 處做一次LK光流得到k階近似後的 [u_kquad{v_k}]

2. u=u+u_k,v=v+v_k

3.如果收斂,退出

8.光流場假設失效的情況:1)在連續的圖像里有個開著的電視,2)一個標準均勻的圓形在旋轉,3)光線的變化,4)獵豹身上的肌肉運動(光流場崩潰)

9.Horn-Schunk光流場。把光流場建模為最小化全局能量方程

E=iint(I_xu+I_yv+I_t)^2+alpha(||	riangledown{u}||^2+||	riangledown{v}||)^2dxdy

其中第二項是鼓勵每幀之間運動最小的平滑項,類似l2正則。 	riangledown{u}=frac{partial}{partial{x}}u(x,y)+frac{partial}{partial{y}}u(x,y)\

將積分內等式分別對 u,v 求導得

I_x(I_xu+I_yv+I_t)-alpha^2Delta{u}=0\ I_y(I_xu+I_yv+I_t)-alpha^2Delta{v}=0

其中 Delta=frac{partial}{partial{x^2}}+frac{partial}{partial{y^2}} 是拉格朗日運算元,一般 Delta{u(x,y)}=overline{u}(x,y)-u(x,y) , overline{u} 是領域平均值,用上面的式子替代 Delta{u(x,y)} 可得

(I^2_x+alpha^2)u+I_xI_yv=alphaoverline{u}-I_xI_t\ I_xI_yu+(I^2_y+alpha^2)v=alphaoverline{v}-I_yI_t

可以得到 [u_kquad{v_k}] 的線性方程,但是由於每次 [u_kquad{v_k}] 更新後領域也會變化,因此可以用下面的式子迭代求解。

另外,上面能量方程中的平滑項主要的作用是讓運動的變化變得平滑,可以解決孔徑問題(只有一種標準解)。

10.假設2)不滿足時,也就是相鄰幀之間運動比較大時,用圖像金字塔,如圖

11.一幅圖的不同物體往往有不同的運動方向,也就是假設3)不是一直滿足的。解決辦法是運動分割,把圖像分成不同的層,每個層有一致的運動(而這個運動與像素位置有關)。

u(x,y)=a_1+a_2x+a_3y\ v(x,y)=a_4+a_5x+a_6y

將這個等式代入光流場等式並用最小二乘求解對應參數。

Err(	extbf{a})=sum[I_x(a_1+a_2x+a_3y)+I_y(a_4+a_5x+a_6y)+I_t]^2

還有一個問題是如何分層,解決辦法為

1)把圖像分成小塊(無重疊),對每個小塊用最小二乘求解初始假設的運動參數。

2)對這些參數用k-means聚類,得到運動參數的中心點。並保留類內點最多的類別作為描述整個場景的方向。

3)循環:

把每個像素分配給最好的運動參數

做region filtering(這是啥?)增強空間約束

重新估計每個區域內的運動參數

12.應用

推薦閱讀:

計算機視覺方面博客及代碼
skimage例子學習(一)HED顏色通道提取與融合
[CVPR2018筆記]Semi-parametric Image Synthesis
天池FashionAI全球挑戰賽小小嘗試
CVPR2018視覺跟蹤之端到端的光流相關濾波

TAG:計算機視覺 |