本文主要介紹了shi-tomasi特徵點(角點)檢測及追蹤方法,這個方法是klt方法的一種改進,其在檢測特徵點(角點)方法同klt並沒有什麼不同,都通過比較梯度矩陣的最小特徵值來確定特徵點的,而主要的不同是在,匹配特徵點時,其引入了仿射變換,讓特徵點在幀間匹配更為精確,並排除不好的特徵點。另外還簡要介紹了在估計影象運動向量的迭代方法—牛頓-拉夫遜方法或牛頓迭代法(newton-raphson method)。
一、牛頓-拉夫遜方法或牛頓迭代法(newton-raphson method)
本人前面在klt角點檢測方法裡提到了可以通過迭代的方式,不斷的應用新的位移向量d值,而影象塊每次迭代都可以採用雙線性插值(獲得子畫素精確度)得到新位置。那麼這個迭代方法就是牛頓-拉夫遜方法newton-raphson。
二、shi-tomasi方法
影象匹配問題一般都通過影象之間相關性或者平方誤差和等方法,如果是非常小的幀間移動,乙個視窗可以通過優化一些匹配標準、或通過線性影象變形、或自適應視窗大小這些方法達到匹配最優。而特徵視窗選擇問題,可以通過一些基於紋理或角度(如高階梯度,拉氏變換過零點,角點等)的方法來考慮,無論klt還是shi-tomasi都是基於這樣的考慮的。
shi-tomasi方法認為純粹的平移對於影象運動來說,並不是適當的模型,而仿射變換(包含了線性變形及平移)卻可以。然後提出了一種通過牛頓-拉夫遜方法newton-raphson來估計影象仿射變換的方法,但是其並沒有用仿射運動來估計影象運動向量,而是使用了同klt一致的平移運動來估計塊的運動,因為實際上如果幀間運動比較小的情況下,平移比仿射運動估計效果更好。
隨著影象幀的推進,影象強度改變模式會一種複雜的方式變化,我們可以簡單地將影象運動視為如下公式:
這個運動為畫素點的平移向量
其中d是乙個變形矩陣,而d是特徵視窗中心的平移向量,而在第一幀的畫素點x移動到第二幀的ax+d位置,這裡a=i+d,即
那麼接下來,我們需要估計d與d裡共6個引數,而這個估計的質量依賴於視窗的大小、視窗內的紋理程度、幀間的運動。如果視窗太小,那麼d將會很難估計,因為小的視窗內估計運動數目太小,所有估計並不可靠,而視窗小卻更適合跟蹤,因為減少跟蹤後影象的不連續性。所以來說,純粹的平移在跟蹤過程中更好。
雖然我們沒辦法讓運動估計完美,但我們可以使估計後不相似程度最小,即使以下公式最小:
仍然有泰勒近似為:
不過同klt方法裡純粹的平移不同的是,這裡的g擁有6個引數
而平移變換為如下:
t與a的值我們也是可以求出來的,然後就能估計z的值,這裡我們仍然可以通過牛頓迭代法獲得比較精確的值。
在跟蹤過程中,我們可以只應用純粹的平移運動估計(此時d為0),即可以得到運動估計d。這裡的z先前已經得到,而e可以是a的最後兩個元素值。
總而言之,這個方法是通過a來確定前後兩個幀影象之間的相似性,而通過e來估計影象間的運動
三、總結
shi-tomasi選擇角點方法同klt角點檢測方法是相同,我也不再多說了,它同klt方法最關鍵的不同在於,其對於兩幀影象塊相似性比較標準不同,其引入了仿射變換,讓匹配更為精確,而其在追蹤時,仍採用同klt方法一樣,都是通過簡單平移來估計影象畫素運動的。
兩者在追蹤影象特徵點的比較,可以發現左圖不同特徵點之間相似度變化線集中在一起,很難分辨出閾值出來,而右圖應用了仿射變化的相似度衡量,可以清楚的檢測出一些不好的特徵點。
四、參考文獻
good features to track 【我的上傳資源裡有這篇文獻】
Shi Tomasi角點檢測演算法
1 shi tomasi概念 2 api 3 code 1 角點檢測除了harris角點檢測演算法外,還常常使用shi tomasi演算法,shi tomasi演算法是harris演算法的改進,因此計算速度更快,shi tomasi演算法於1994年在文章 good features to trac...
Shi Tomasi角點檢測原始碼分析
shi tomas在角點響應函式上與harris不同。1.shi tomas角點響應函式 r min 1,2 2.harris角點響應函式 r det m k trace m 2 其中m,是影象的張量矩陣。1與 2是m的特徵值。1.個人理解 1 在所表示的幾何橢圓中,特徵值越大,對應的橢圓軸越短,e...
OpenCV2 Shi Tomasi角點檢測
角點檢測理論 和harris角點檢測的理論幾乎完全一致,唯一不同的是在使用矩陣特徵值 1 lambda 1 1 2 lambda 2 2 計算角度響應的時候的公式不同。shi tomasi角點響應公式 r m in 1,2 r min lambda 1,lambda 2 r min 1 2 引數說明...