目标跟踪算法MOSSE笔记
目標跟蹤算法MOSSE
David S. Bolme在2010年的CVPR上發表了《Visual Object Tracking using Adaptive Correlation Filters》,簡稱MOSSE(Minimum Output Sum of Squared Error)。由于其能高速的跟蹤目標,開啟了相關濾波在目標跟蹤領域的研究熱潮。其后相繼出現了許多優秀的目標跟蹤算法,但為了能更容易理解相關濾波在目標跟蹤中的作用,還是應該從MOSSE算法開始。
相關濾波
為了利用卷積定理,首先用卷積來表示相關,公式如下
(1)
然后利用卷積定理轉換到頻域,將卷積操作變為點乘,這也是相關濾波算法高速的原因。
(2)
簡寫為
(3)
從公式中可以看出,將輸入圖像(F)和濾波器(H)通過算法變換到頻域后,直接將他們相乘,然后再變換回時域(也就是圖像的空域)就可以得到響應圖。
重點的解釋:
(1)輸入的圖像是指目標搜索區域,可能是像素值也可能是提取的特征(eg.fHog,CN,DeepFeatures等)。
(2)濾波器(或者叫目標模板)的大小和檢測區域的大小一樣。因為相同大小的矩陣在頻率域才可以點乘計算。
(3)當濾波器稍微偏移就會超出輸入圖像的范圍,則需要填充數據(這就是卷積的邊界效應)。常用的有三種填充方法,補零、補邊界像素、循環圖像,matlab中fft默認的是第三種。
MOSSE
為了得到公式3中的響應值,必須求得最佳的濾波模板H,計算方法如下
(4)
利用實際輸出和期望值之間平方誤差最小的方法來求解,也就是回歸的過程。
(5)
化簡可以得到以下公式(具體過程參考論文)
(6)
到此為止,MOSSE算法的理論大體介紹完畢,接下來結合代碼來方便理解。
首先利用高斯分布得到期望值,如下
離目標越近,響應值越高。
目標搜索區域選取,相當于公式中的F。
newPoint=real(ifft2(F_Template.*fft2(target_box))); [row, col,~] = find(newPoint == max(newPoint(:)), 1); pos = pos - target_sz/2 + [row, col];此處對應公式3,得到這一幀圖片的響應值,選取最大值,得到新目標位置。
接下來是濾波模板更新,此處對應公式6更容易理解。
總結
以上是生活随笔為你收集整理的目标跟踪算法MOSSE笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS开发CoreAnimation解读
- 下一篇: [Leetcode][第337题][JA