CVPR2010跟踪算法MOSSE原理及代码解析
文章和代碼下載地址:
MOSSE:?David S. Bolme, J. Ross Beveridge, Bruce A. Draper, Yui Man Lui. "Visual Object Tracking using Adaptive Correlation Filters."?
GitHub - xingqing45678/Mosse_CF(代碼和文章都在里面)
看了網(wǎng)上很多文章,大都是說“兩個信號越相似,其相關值越高。在跟蹤,就是找到與跟蹤目標響應最大的項。”然后將相關的公式擺出來,看得我一頭霧水,可能是我自己的基礎不太好吧,最后查了很多資料,總算感覺自己有點明白了,所以將其記錄下來,如果有不對的地方請指正。
一、對2D相關的理解
首先,相關是相關,卷積是卷積,不要混為一談!!!!
互相關是用來度量兩個信號在某個時刻的相似程度,對于機器視覺領域來說就是指兩個圖像patch的互相匹配的程度。
1、相關操作
圖像的相關公式:,其中稱為相關核(Kernel),具體到每一個像素表示為:
注:此圖為網(wǎng)上轉載 ,如圖所示,Input Image為輸入的圖像。Kernel為相關核 ,也可以稱作我們提前訓練好的濾波器模板。Output image即為輸出響應圖像。
步驟:
? ? ? (1)滑動核,使其中心位于輸入圖像的像素上
? ? ? (2)利用上式求和,得到輸出圖像的像素值
? ? ?(3) 充分上面操縱,直到求出輸出圖像的所有像素值
例:計算輸出圖像像素值為
2、卷積操作
圖像的卷積公式:,其中稱為卷積核(Kernel),具體到每一個像素表示為:
注:此圖為網(wǎng)上轉載(然后我p了一下) ,如圖所示,Input Image為輸入的圖像。Kernel為相關核 ,也可以稱作我們提前訓練好的濾波器模板。Output image即為輸出響應圖像。?
步驟:
? ? ? (1)將卷積核圍繞中心旋轉180度
? ? ? (2)滑動核,使其中心位于輸入圖像的像素上
? ? ? (3)利用上式求和,得到輸出圖像的像素值
? ? ? (4)充分上面操縱,直到求出輸出圖像的所有像素值
例:計算輸出圖像像素值為
3、差異:
(1)引用專業(yè)術語就是:Two-dimensional correlation is equivalent to two-dimensional convolution with the filter matrix rotated 180 degrees.
白話:卷積將核旋轉了180度。
(2)物理意義:相關可以反應兩個信號相似程度,卷積不可以。
(3)卷積滿足交換律,,相關不可以。
(4)卷積可以直接通過卷積定理(時域上的卷積等于頻域上的乘積)來加速運算,相關不可以。
二、對相關濾波跟蹤器的理解
相關濾波跟蹤器就是通過互相關(cross-correlation)來定位目標當前幀所在位置的。響應圖最大值對應的位置即為當前時刻預測的目標位置,具體流程如下:
如果我們在時域內求解響應圖,運算量巨大,那么如何利用卷積定理將其轉換到頻域???
用卷積來表示相關就是:
利用卷積定理轉換到頻域為:
簡寫為:
其中,,表示點乘。所以將我們的輸入圖像和濾波器通過算法變換到頻域后,直接將他們相乘,然后再變換回時域(也就是圖像的空域)就可以得到響應圖。
幾點重要的解釋:
(1)輸入的圖像是指目標檢測區(qū)域(MOSSE的檢測區(qū)域就是目標所在區(qū)域),可能是像素值也可能是提取的特征(eg.Hog,CN,DeepFeatures等)。
(2)濾波器(或者叫目標模板)的大小和檢測區(qū)域的大小一樣。因為相同大小的矩陣在頻率域才可以點乘計算。
(3)當濾波器稍微偏移就會超出輸入圖像的范圍,則需要填充數(shù)據(jù)(這就是卷積的邊界效應)。然而在實際的相關濾波跟蹤算法中,因為代碼中直接就寫頻域的計算公式,所以我們不知道是如何填充邊界的。常用的有三種填充方法,補零、補邊界像素、循環(huán)圖像,matlab中fft默認的是第三種。
三、對MOSSE的理解
經(jīng)過上面的解釋,應該都能明白相關濾波的檢測原理,響應圖峰值的位置即為當前幀目標的預測位置。為了得到響應圖,那么我們求出濾波器模板頻域的表示值即可:
1、預處理(不重要,一般都會進行這些操作)
(1)FFT卷積算法需要將圖像和濾波器映射到拓撲結構上,邊界采用循環(huán)圖像的方式填充,即將圖像的左邊緣連接到右側邊緣,將頂部連接到底部。這就是上面所說的第三種填充方法。
(2)周期卷積會對輸入數(shù)據(jù)進行周期填補,引入一些artifacts。作者通過如下如下論文中的方法減弱對輸出響應的影響D. S. Bolme, B. A. Draper, and J. R. Beveridge. Average of synthetic exact filters. In CVPR, 2009. 2, 3。(具體細節(jié)可以不用深究)
(3)采用點乘余弦窗處理,使圖像邊緣慢慢變成零。
2、MOSSE濾波
提高算法的魯棒性,作者對視頻第一幀的跟蹤窗口施加隨機的仿射擾動,產(chǎn)生多組圖像對濾波器進行初始化:
注意上式是元素點除,作者通過最小二乘法來求解:
求解過程我就不贅述了。經(jīng)過一系列的推導,找到了Mosse濾波器的一個封閉解:
最后更新MOSSE濾波器如下:
原理解釋還可以參考博客:相關濾波跟蹤(MOSSE)_autocyz-CSDN博客_相關濾波
代碼解釋介紹參考博客:MOSSE 目標跟蹤 解析_Fying2016的博客-CSDN博客_mosse目標跟蹤
總結
以上是生活随笔為你收集整理的CVPR2010跟踪算法MOSSE原理及代码解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 评论时间戳格式化
- 下一篇: Membership 数据字典