目标跟踪之相关滤波
一. 何為相關(guān)濾波?
? ? ? ?Correlation Filter 最早應(yīng)用于信號(hào)處理,用來描述兩個(gè)信號(hào)之間的相關(guān)性,或者說相似性(有點(diǎn)像早期的概率密度),先來看定義:
? ? ? ?對(duì)于兩個(gè)數(shù)據(jù) f 和 g,則兩個(gè)信號(hào)的相關(guān)性(correlation)為:
? ? ? ??? ??
? ? ? ?其中 f? 表示 f 的 復(fù)共軛,這是和卷積的區(qū)別(相關(guān)性 與 卷積 類似,區(qū)別就在于里面的共軛)。
? ? ? ? ? ?PS:復(fù)共軛是指 實(shí)部不變,虛部取反 (a + b i)* = a - b i; ?共軛矩陣是指 矩陣轉(zhuǎn)置后再對(duì)每個(gè)元素求共軛,不理解的童鞋請(qǐng)查閱百科。
?
二. ?CF 在圖像的引入 - MOSSE
?
? ? ? ?可以參考經(jīng)典論文 MOSSE (Minimum Output Sum of Squared Error filter)
? ? ? ?論文下載:visual object tracking using adaptive correlation filters
? ? ? ?對(duì)于圖像來講,問題描述為要找到一個(gè) 濾波模版 h,與輸入圖像 f 求相關(guān)性,得到相關(guān)圖 g。
? ? ? ??
? ? ? ?為了方便理解,用一幅圖來進(jìn)行說明(相關(guān)圖 g 描述目標(biāo)響應(yīng),越接近時(shí)值越大):
? ? ? ??
? ? ? ?為了加快計(jì)算速度,這里引入了傅里葉變換,根據(jù)卷積定理(correlation版本)可知,函數(shù)互相關(guān)的傅里葉變換等于函數(shù)傅里葉變換的乘積:
? ? ? ? ??
? ? ? ?通過上面的公式,將復(fù)雜的互相關(guān)計(jì)算轉(zhuǎn)換成 點(diǎn)乘。注意后面的 F(h) 是共軛,與卷積不同,公式可以簡(jiǎn)化描述為:
? ? ? ??
? ? ? ?H* 就是我們要求的濾波器,MOSSE 提出的方法就是 最小化平方和誤差,也就是針對(duì)m個(gè)樣本 求最小二乘,描述為:
? ? ? ??
? ? ? ?上面公式是將圖像展開到像素,每個(gè)像素是獨(dú)立計(jì)算的,最小化上面的公式很簡(jiǎn)單,就是求偏導(dǎo)=0,具體求解過程不再展開,得到最終的求解公式為:
? ? ? ? ? ??
? ? ? ?作者提出了一個(gè)更新算法,根據(jù)當(dāng)前幀不斷進(jìn)行調(diào)整,即在線更新策略,調(diào)整策略如下:
? ? ? ? ? ??
? ? ? ?其中?η 為學(xué)習(xí)率,一般設(shè)置為 0.1,通過分子分母分別更新。
?
三. 有一種速度叫 KCF
? ? ? ?KCF是一個(gè)非常經(jīng)典的算法(kernelized correlation filters),速度極快,正常可以達(dá)到 100+ FPS。
? ? ? ?論文下載:High-speed tracking with kernelized correlation filters(ECCV 2012, TPAMI 2015)?
? ? ? ?Paper及源碼下載參考作者主頁:http://www.robots.ox.ac.uk/~joao/#
? ? ? ?關(guān)于 KCF 的介紹可以參考之前的博文:【?機(jī)器學(xué)習(xí)實(shí)踐系列之5 - 目標(biāo)跟蹤?】
?
四. 品味經(jīng)典之 DSST
? ? ? ?DSST(Discriminative Scale Space Tracker)是在 MOSSE 基礎(chǔ)上的改進(jìn),主要在應(yīng)對(duì)尺度變化上(增加了一個(gè) 尺度 Correlation Filter),通過兩個(gè) Filter 分別跟蹤?位置變化(translation)和尺度變化(scale estimation),Translation Filter 專門用于確定新的目標(biāo)位置,Scale Filter 用來進(jìn)行尺度估計(jì)。
? ? ? ?另外 DSST 將原來的灰度特征替換為 HOG 特征,能夠?qū)δ繕?biāo)特征更好的描述。
? ? ? ?論文下載:Accurate Scale Estimation for Robust Visual Tracking
? ? ? ? ? ? ? ? ? ? ? ?Discriminative Scale Space Tracking?
? ? ? ?工程及 Matlab 代碼可以參考【作者主頁】 ?CPP代碼參考(window c++11)【Github】
? ??> 4.1 Filter 合并
? ? ? ?DSST 組合成了一個(gè)三維的空間濾波器(M*N*S),其中 M*N對(duì)應(yīng)輸入Sample寬高(Trans),S對(duì)應(yīng)尺度(Scale)。當(dāng)然說是組合,實(shí)際上是分開獨(dú)立計(jì)算的,先來看一幅圖:
? ?
1)Translation Filter
? ? ? 對(duì)應(yīng)上圖(a),對(duì)于當(dāng)前Sample框(2倍目標(biāo)大小),對(duì)每個(gè)像素 提取 d維特征(d-1維的 hog特征 + 1維的灰度特征-最下patch),得到d個(gè) Patch,?在不同特征維度l=[0,d) 上做基于最小二乘的目標(biāo)函數(shù):
? ? ? ??
? ? ? 公式中?λ 為正則項(xiàng),降低 低權(quán)重系數(shù)的影響,濾波器 通過求偏導(dǎo)得到(公式推導(dǎo)可以看 Paper 的 Appendix):
? ? ? ??
● 模型訓(xùn)練過程:
? ? ? 為了簡(jiǎn)化計(jì)算,作者采用了 Single Training Sample的方法,只訓(xùn)練當(dāng)前幀的輸入,通過和之前幀的加權(quán)平均學(xué)習(xí)到前面的數(shù)據(jù)(借鑒了 MOSSE 的參數(shù)更新策略):
? ? ? ??
? ? ? 其中 A、B 分別對(duì)應(yīng)分子、分母,通過上面的公式迭代求解,η 表示應(yīng)學(xué)習(xí)率。
●?求解計(jì)算過程:
?? ? ?對(duì)于 輸入樣本 Z,根據(jù) 響應(yīng)函數(shù) Y=H* Z,并求 逆向 FFT 得到最大相關(guān)濾波響應(yīng)值 y:
?? ? ? ?? ? ??
2)Scale Filter
? ? ? 對(duì)應(yīng)上圖(b),按照目標(biāo)位置?{w,h} 進(jìn)行尺度縮放采樣,縮放尺度為 a^n,a=1.02,n=[-16,16],對(duì)應(yīng)采樣為 33級(jí)別(=S),構(gòu)成了一個(gè)層數(shù)為S的金字塔。
? ? ? 對(duì)應(yīng)在每層金字塔上,將 Patch 圖像縮放成統(tǒng)一尺寸,提取d維Hog特征,以該特征作為訓(xùn)練樣本,得到相關(guān)濾波器 H,用來預(yù)測(cè)輸出尺度。
? ? ? 模型更新過程、濾波響應(yīng)求解過程 與 Translation Filter 一致。
?
? ??> 4.2 算法描述
輸入(input):
? ? ? a)t 時(shí)刻的圖像 I(t)
? ? ? b)上一幀 目標(biāo)位置 P(t-1) 和尺度 S(t-1)
? ? ? c)上一幀的位置模型 A_trans(t-1),?B_trans(t-1) 和 尺度模型?A_scale(t-1),?B_scale(t-1)
輸出(output):
? ? ? a)當(dāng)前幀的 估計(jì)位置 P(t) 和估計(jì)尺度 S(t)
? ? ? b)更新后的位置模型 A_trans(t),?B_trans(t) 和 尺度模型?A_scale(t),?B_scale(t)
位置估計(jì)過程:
? ? ?1)根據(jù)上一幀目標(biāo)位置 P(t-1) 和尺度 S(t-1),在當(dāng)前幀圖像 I 上,按照2倍目標(biāo)大小采樣,得到 Search 樣本 Ztrans;
? ? ?2)根據(jù)上一幀位置模型 A_trans(t-1),?B_trans(t-1)?,計(jì)算位置響應(yīng),公式為:
? ? ? ??
? ? ?3)得到目標(biāo)位置?P(t) = max(y_trans);
位置估計(jì)過程:
? ? ?4)提取不同尺度樣本 Ztrans(文中對(duì)應(yīng)33個(gè));
? ? ?5)與上面同樣的方式計(jì)算出 y_scale,得到目標(biāo)尺度 ?S(t) = max(y_scale);
模型更新過程:
? ? ?6)從當(dāng)前幀圖像 I(t) 提取 訓(xùn)練樣本 f_trans 和 f_scale;
? ? ? ? ? ?提取對(duì)應(yīng)Hog特征、灰度特征,構(gòu)造對(duì)應(yīng)尺度的高斯響應(yīng)函數(shù)。
? ? ?7)更新模型?位置模型 和 尺度模型;
? ? ? ? ? ?參照上面的模型訓(xùn)練過程。
? ? ? ?作者后續(xù)在 DSST基礎(chǔ)上進(jìn)行改進(jìn),提出了 fDSST,旨在優(yōu)化算法效率,轉(zhuǎn)發(fā)表在 PAMI上,幀率有了 成倍的提升。主要改進(jìn)思路有兩點(diǎn):一是 相關(guān)性插值(sub-grid interpolation of correlation scores),即通過 Coarse Grid 計(jì)算 Score,通過插值得到 全分辨率的 Score;二是 通過PCA降維來減少特征維度。都是比較簡(jiǎn)單的Trick,本文不再展開(Paper 可以參考上面的鏈接)。
??
五. VOT2016 排名第一的 C-COT
? ? ? ?比賽說明實(shí)力,這篇文章來自于 2016年的ECCV,MD大神注定要在 CF 上死磕。
? ? ? ?論文下載:Beyond Correlation Filters: Learning Continuous Convolution Operators for Visual Tracking
? ? ? ?代碼下載:【Github】
? ? ? ?傳統(tǒng)的相關(guān)濾波方法只是用 灰度、Hog 做 Single Sample的特征提取和濾波訓(xùn)練,也許很多人都能想到 要用金字塔,要結(jié)合CNN多尺度的卷積特征,思路沒錯(cuò),只是 MD 比你下手快而已。
? ? ? ??
? ? ? ?算法核心思想是:
1)對(duì)于Search Region,提取不同分辨率的特征(RGB+Conv特征),對(duì)應(yīng) 第一列;
2)通過針對(duì)不同層訓(xùn)練的相關(guān)濾波器 進(jìn)行計(jì)算,對(duì)應(yīng) 第二列;
3)得到響應(yīng)圖(Confidence Scores),對(duì)應(yīng)第三列;
4)將響應(yīng)圖 進(jìn)行累加,得到多個(gè)分辨率置信度之和,即為最終的置信圖,對(duì)應(yīng)最大值為目標(biāo)位置;
? ? ? ?這篇文章算是過渡階段的產(chǎn)品,除了引入深度學(xué)習(xí)的元素之外,其實(shí)沒有太多的創(chuàng)新點(diǎn),對(duì)于時(shí)間充裕的童鞋可以詳細(xì)看看,否則的話建議忽略。
總結(jié)
- 上一篇: 期待已久的2012年度最佳 jQuery
- 下一篇: Cisco交换机端口聚合、VTP、ACL