博主正準備往tracking方向入坑,在師兄推薦下學習kcf演算法,據說是目前最流行的online visual tracking演算法。**:j. f. henriques, r. caseiro, p. martins, j. batista, 『high-speed tracking with kernelized correlation filters』
從**所展示的實驗效果來看,確實在速度方面有很大的提公升,172fps達到真正意義上的實時,並且在準確率方面也有一定的提公升。下面將進行簡單的演算法分析。
使用迴圈矩陣是kcf演算法速度提公升的關鍵如圖所示對於乙個實際的檢測目標,在紅色虛線的框所確定區域為目標區域,該區域為正樣本(x
i,1)
,而通過迴圈產生的周圍其他顏色的區域為負樣本(x
i,−1
) ,訓練的目標是找到合適的權重w使得 f(
xi)=
wt⋅x
i=yi
因此得到正則化的優化目標為: m
inwς
i(f(
xi)−
yi)2
+λ∣∣
w∣∣2
使用矩陣表示得到最小二乘解為: w
=(xh
x+λi
)−1x
hy**中使用迴圈矩陣傅利葉對角化方法優化上述運算,避免了求逆運算,迴圈矩陣對角化: x
=c(x
)=f⋅
diag
(x^)
⋅fh
具體關於迴圈矩陣、其傅利葉對角化和相應性質可參考這篇部落格:
迴圈矩陣傅利葉對角化
優化得到 w
=f−1
(x^⊙
y^x^
⊙x^∗
+λδ)
f(xi)
的響應最大,那麼該位置設為目標位置,如此求得在新一幀當中前景位置。
原理如上所示,關於文章中其他內容以及總結,可參考這篇部落格:kcf目標跟蹤方法分析與總結
演算法 學習筆記
1.輸入輸出演算法至少有乙個或多個輸出 2.有窮性 3.確定性 4.可行性 1.正確性a.演算法程式沒有語法錯誤 b.演算法程式對於合法的輸入資料能夠產生滿足要求的輸出結果 c.演算法程式對於非法的輸入資料能夠得出滿足規格說明的結果 d.演算法對於精心選擇的,甚至刁難的測試資料都有滿足要求的輸出結果...
演算法學習筆記
複雜度分析 1.只關注迴圈次數最多的一行 2.總複雜度等於量級最大 的複雜度 3.巢狀 的複雜度等於巢狀 內外複雜度的乘積 單鏈表結構和順序儲存結構的優缺點 儲存分配方式 時間效能 空間效能 單鏈表結構 用一組任意的儲存單元存放線性表元素 查詢 o n 插入和刪除 找到某位置的指標後,插入和刪除的時...
演算法學習筆記
影象分割是機器視覺後續處理的基礎,通過分割提取影象中的目標區域,方便後續進一步分析處理。分水嶺分割演算法 傳統的分水嶺演算法,是基於數學形態學的分割方法。其基本思想是,將2d影象視為3d地形 其中,畫素的座標 地形的位置,畫素的灰度 地形的高度 每乙個區域性極小值及其周圍區域稱為集水盆地,而集水盆地...