特征检测和跟踪经典理论
特征檢測和跟蹤的經典文獻是Shi and Tomasi 1994的文章(見參考文獻),雖然年代久遠但非常經典。這個paper中提出了一個特征提取方法,一個基于圖像仿射變換模型(并論證了只需仿射變換中的translation分量而無需deformation分量)的跟蹤算法和一個跟蹤時進行特征監測(判斷哪些是好feature,哪些是壞feature)的技術。特征提取針對最優化tracking設計,可以根據dissimilarity(between predict-feature-position & real-feature-position)進行壞feature的監測,以便刪除。根據dissimilarity進行壞點監測 雖然不能檢測出所有壞特征點,但是更改為特定的feature detection算法應該會得到更好tracking的結果。
本篇文章對其做以回顧,分以下幾部分進行闡述:
1. 兩個圖像運動模型
2. 計算圖像的運動
3. 紋理特征
4. frame差異dissimilarity
5. 特征點的監測(好壞特征判斷)
/*********************************兩個圖像運動模型——deformation & transformation*********************************/
兩幅圖像(或兩幀之間)圖像變化:
假設兩個時間點t,t+r在點X(x,y)發生的偏移量為δ(ε,η),則δ是關于位置X的一個函數,δ=DX+d,也就是一個仿射變換,其中D是一個deformation matrix,
d是特征窗口中心的translation平移量。圖像坐標X取決于窗口中心。也就是說,兩幀Image 1 和 Image 2中一個點由X移動到AX+d。A=E(單位矩陣)+D。給出兩幅圖I和J,以及I中的一個特征窗口,tracking的過程就是決定D和d中的6個參數。
J(Ax ?+ ?d) = ?I(x) .?
這個估計的好壞取決于特征窗口大小,窗口內圖像的紋理,以及幀間相機移動幅度。當這個window很小的時候,D很難估計,因為motion變化難以估計,而小的窗口便于跟蹤,因為不容易造成depth discontinuity. 因此如果只有平移變換(即δ=d)時有很好的實驗效果,具有更高的可靠性和準確率。
/*********************************計算圖像的運動(模型)*********************************/
由于仿射變換計算的A和d不夠精確,將造成誤差,我們的目的即最小化ξ
其中,W是feature window,w(x)是權值函數,最簡單的情況下設w(x)=1,或者w可以是一個高斯函數,在window 中心的權值最大。僅有平移變換的情況下,A=E;為了最小化上式,我們將deformation matrix D和平移變換矩陣d進行分離,并設置結果ξ為0,然后用截尾泰勒展開式線性化結果:
也就是解6*6的線性方程:Tz=a,其中,將形變矩陣D和平移矩陣d結合起來,誤差向量a:
a取決于兩幅圖像的差。6*6的矩陣T可由下式獲得:
其中:
文章中闡述,經常將D設置為零矩陣,因為D和d之間可以通過矩陣V相互影響,即我們可以將系統簡化為只求d:Zd=e
這里,可寫作:
其中,z矩陣也稱黑森矩陣。這樣就可以通過Z和e求得平移變換d。
/*********************************紋理*********************************/
大多window中的特征檢測方法都是拍拍腦袋想出來的,不能保證獲得好的結果。本文寫到,一個單純的平移d無法很好地描述仿射變換,而一個好的特征可以被很好地跟蹤。
已知對于某點的特征矩陣Z的兩個特征值λ1,λ2,
1°?λ1,λ2都很大——該點為特征點
2°?λ1,λ2一大一小——該點為edge(undirected texture pattern)
3°?λ1,λ2都小——該點上沒有任何明顯變化
所以設定一個λ,當min(λ1,λ2)>λ時,該點為特征點。
?/*********************************Frame間差異(Dissimilarity)*********************************/
雖然幀間差異很小,但是25幀的累積誤差就很大了。事實上,隨著幀數的增加,dissimilarity增加很大,如下圖:
——:仿射變換模型
? ------:pure translation
°和+分別表示兩個樣本集(兩個幀序列)
圖中有一部分突變為其中一個序列中的特征點部分突然遭遇occluded的原因,這樣經過translation變換后得到的特征點位置就相當不準確。
?/*********************************特征監測(Monitoring Features)*********************************/
為了限制特征點個數,且令圖像中的每一部分只至多被使用一次,規定第一幀中,feature window互不重疊(即設置window大小)。
? ?? ?
Figure12中所示為一幅圖中不同的特征點的跟蹤情況,縱軸代表dissimilarity,可以看出feature 58,89的dissimilarity出奇地高,說明這兩個點監測結果為壞特征點。再來看這兩個feature窗口在不同幀的feature window圖(Fig.14):feature.58中,不僅有平移變換,不同幀下的圖像發生了變化,那個豎杠逐漸變粗(the gap between the vertical edge in the foreground and the letters in the background widens, and?it becomes harder to warp the current window into the window in the first frame(關鍵原因),thereby leading to the rising dissimilarity),所以不僅僅是仿射變換了,因此該點被監測為bad feature point, and should be deleted。feature.89 同理。
然而,有些非剛性特征不會造成dissimilarity,但他們確實是bad feature. 如下圖所示,關注feature 24和60,他們倆的tracking dissimilarity 一直在波動,這是為什么呢?
原文是這樣描述的:from the fourth row of fig.14,?we see ?that ?feature 60 (and similarly ?feature 24) ?contains ?very ?small lettering, ?of ?size ?comparable to the?image’s pixel ?size ?(the feature window is ?25 x ?25 pixels). The ?matching between ?one ?frame ?and ?the ?next is?haphazard, because ?the ?characters in ?the ?lettering ?are?badly ?aliased. 換言之,由于特征點過小,不能進行很好的匹配,經常會進行錯誤特征點檢測,因此他們也是bad feature。
參考文獻:
Shi, J. and Tomasi, C. (1994). Good features to track. InIEEE Computer Society Conference on Computer?Vision and Pattern Recognition (CVPR’94), pages 593–600, IEEE Computer Society, Seattle.
from:?http://blog.csdn.net/abcjennifer/article/details/7688710
總結
以上是生活随笔為你收集整理的特征检测和跟踪经典理论的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Activity Recognition
- 下一篇: 双边滤波器的原理及实现