MOSSE目标跟踪算法的理解
Minimum Output Sum of SquaredError(MOSSE)
是第一篇將correlation filter(CF)引入object tracking的論文,是CSK和DAT等算法的基礎。
在信號處理中,有這么一個概念——相關性(correlation),用來描述兩個因素之間的聯系。而相關性又分為cross-correlation(互相關,兩個信號之間的聯系)和auto-correlation(自相關,本身在不同頻域的相關性)。
首先我們來看一下CF的概念,
假設有兩個信號f和g,則兩個信號的相關性(correlation)為:
(f?g)(τ)=∫?∞∞f?(t)g(t+τ)dt (f?g)(n)=∑?∞∞f?[m]g(m+n)
其中f?表示f的復共軛。correlation的直觀解釋就是衡量兩個函數在某個時刻相似程度
相關濾波的思想:越是相關的兩個目標相關值越大,也就是視頻幀中與初始化目標越相似,得到的相應也就越大。
卷積定理:時域的卷積相當于頻域相乘,頻域卷積相當于時域相乘。
作者提出的濾波器叫做Minimum Output Sum of Squared Error filter(MOSSE)(誤差最小平方和濾波器)。按照前面的思路,就是找到一個濾波器h,使其在目標上的響應最大。則如下公式:
?g=f?h
其中g表示響應輸出,f表示輸入圖像,h表示濾波模板。?
顯然,我們要是想獲得比較獲得響應輸出,只需確定濾波器模板h即可。上式的計算是進行卷積計算,這在計算機中的計算消耗時很大的,因此作者對上式進行快速傅里葉變換(FFT),這樣卷積操作經過FFT后就變成了點乘操作,極大的減少了計算量。上式變成如下形式:?
F(g)=F(f?g)=F(f)?F(h)?
為了方便描述,將上式寫成如下形式:
G=F?H? 有了上面的式子,那么后面跟蹤的任務就是找到 H? 了:?H?=GF
但是在實際跟蹤的過程中我們要考慮到目標的外觀變換等因素的影響,所以需要同時考慮目標的m個圖像作為參考,從而提高濾波器模板的魯棒性,所以作者就提出了MOSSE這個模型,其模型公式入下:
minH?=∑i=1m|H?Fi?Gi|2
因為上式的操作都是元素級別的,因此要想找到,只要使其中的每個元素(w和v是H中每個元素的索引)的MOSSE都最小即可。因此上式可轉換為如下形式:
minH?wv∑i=1m|H?wvFwvi?Gwvi|2
H8
要想得到最小的H**wv,只需要對上式求偏導,并使偏導為0即可。即:
上面得到是H中每個元素的值,最后得到H為:?
H=∑iFi?G?i∑iFi?F?i
上式就是濾波器的模型公式。?
但是在跟蹤中該怎么得到濾波器H呢? Fi 和 Gi 又該怎么獲取??在作者的文章中,其對跟蹤框(groundtruth)進行隨機仿射變換,獲取一系列的訓練樣本 fi,而 gi 則是由高斯函數產生,并且其峰值位置是在 fi的中心位置。獲得了一系列的訓練樣本和結果之后,就可以計算濾波器h的值。注意:這里的f,g,h的size大小都相同。 作者為了讓濾波器對與形變、光照等外界影響具有更好的魯棒性,采取了如下的模板更新策略:?
作者將濾波器的模型公式分為分子和分母兩個部分,每個部分都分別的進行更新,更的參數為 η 。其中 At 和 At?1 分別表示的是當前幀和上一幀的分子。
部分代碼
%產生高斯形狀的理想響應
F_response=templateGauss(target_sz,im);
%目標框區域和濾波器卷積得到響應值
newPoint=real(ifft2(F_Template.*fft2(target_box)));
%其中響應值最大值對應的坐標即為新目標的位置
[row, col,~] = find(newPoint ==max(newPoint(:)), 1);
%以新目標為中心選擇目標框
F_im=fft2(getsubbox(pos,target_sz,im));
%求解濾波器模板
F_Template=conj(F_im.*conj(F_response)./(F_im.*conj(F_im)+eps));
參考: http://blog.csdn.net/autocyz/article/details/48136473
https://zuciwang.com/q/320/xabndexae.html
http://blog.csdn.net/fengying2016/article/details/72598720
總結
以上是生活随笔為你收集整理的MOSSE目标跟踪算法的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 曝OPPO将大力扶持国产屏:Find X
- 下一篇: 快手热点通知怎么设置