本發(fā)明涉及一種視頻目標追蹤方法,尤其是涉及一種基于多實例學習的視頻目標追蹤方法。
背景技術(shù):
目標追蹤是視頻監(jiān)控和視頻分析中的重要內(nèi)容,在社區(qū)安防、家庭護理等方面有著廣泛的應(yīng)用。盡管目前已經(jīng)有了許多對于特定領(lǐng)域的目標追蹤算法(例如專門對于面部或者人類的追蹤),但在視頻中追蹤一般目標仍是一個比較有挑戰(zhàn)的任務(wù)。
一些已有的算法大多使用了靜態(tài)的外觀模型(appearance model),即不會更新,而是一直使用第一個幀中目標的外觀特征來判斷之后所有視頻幀中的情況,或者需要人工標定。這些方法有一個致命的缺點,就是在目標外觀變化后就失效了。因此,那些會隨著時間推移不斷更新的適應(yīng)性外觀模型更加合理和合適,且也被證明擁有更好的追蹤性能。
此外,一些算法僅使用目標物體的外觀建模,而另一些則同時也使用了背景的外觀特征。有實驗證明,后者使用帶有區(qū)別性的分類器來分離背景和目標物體,以訓練模型擁有更好的追蹤結(jié)果。
但這些方法都很少提及在更新外觀模型時,如何選取正樣本和負樣本。正樣本為包含目標的樣本,負樣本為不包含目標的樣本。最常見的方法是,即把為每一幀追蹤到的目標位置處作為一個正樣本,而把其周圍的采樣作為負樣本。然而,如果這個追蹤到的位置本身就是不精確的,那么誤差就會積累,結(jié)果會越來越偏差。另外,如果取多個目標位置周圍的樣本都作為正樣本,則模型的分辨能力將會大大減弱。
為此,Boris Babenko,Ming-Hsuan Yang和Serge Belongie在論文“Visual Tracking with Online Multiple Instance Learning”中提出了一種利用多實例學習(Multiple Instance Learning),簡稱MIL,來更新模型,主要是解決如何選取正負樣本來更新模型的問題。其主要思想是,在當前已追蹤到的目標位置點一定范圍內(nèi),選取一定樣本。雖然不能判斷它們每個是不是正樣本,但可以確定它們中至少一個為正樣本,因此將它們都放入一個正樣本包中。在離追蹤點較遠的區(qū)域,同樣選取一部分樣本,可以確定它們不包含目標,所以將它們各自放入一個負樣本包之中。然后用這些樣本包,通過多實例學習方法來更新模型。
MIL算法的主要思想是維持一個含有M個弱分類器的池,并從中逐步選出K個組合成一個強分類器。每個弱分類器在含義上對應(yīng)樣本特征向量中的一維特征。其每次迭代選擇的原則是在剩余的弱分類器中選出一個能使得包似然函數(shù)L最大化的弱分類器。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種基于多實例學習的視頻目標追蹤方法,具有提高目標跟蹤精準度、提高跟蹤效率等優(yōu)點。
本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):
一種基于多實例學習的視頻目標追蹤方法,包括以下步驟:
S1:根據(jù)第一幀的信息得到跟蹤窗口以及正、負樣本,利用后驗概率模型進行弱分類器訓練,進而訓練得到強分類器;
S2:在線跟蹤:預(yù)測新的一幀的目標位置時,以前一幀具有強分類器最高置信區(qū)間的位置作為新的一幀目標位置的采樣中心,進行測試樣本采樣,利用步驟S1訓練得到的強分類器輸出分類結(jié)果;
在獲取弱分類器的過程中,在單個樣本對樣本包的貢獻加上權(quán)重,離追蹤到的目標所在位置越近的樣本所獲得的權(quán)重越大。
所述權(quán)重采用與樣本位置和追蹤到的目標所在位置有關(guān)的歐式單調(diào)遞減函數(shù)。
在視頻目標追蹤方法中,對包似然函數(shù)進行一階泰勒展開。
在包似然函數(shù)進行一階泰勒展開的基礎(chǔ)上,對單個樣本為正樣本的概率和該單個樣本所在樣本包為正樣本的概率的關(guān)系進行重新定義。
所述步驟S2獲得的分類結(jié)果作為下一幀的輸出位置的預(yù)測。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
1、針對現(xiàn)有離追蹤到的目標所在位置較遠的樣本和較近的樣本對樣本包為正的重要性是一樣的問題,本發(fā)為單個樣本對樣本包的貢獻加上權(quán)重,離追蹤到的目標所在位置越近的樣本所獲得的權(quán)重越大,大大提高了目標跟蹤精準度。
2、針對現(xiàn)有算法運行效率低的問題,通過將包似然函數(shù)做一階泰勒展開,并且對單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率的關(guān)系進行重新定義之后,能夠得到包似然函數(shù),能夠避免在每輪迭代中計算單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率,加快計算的速度。
附圖說明
圖1為本發(fā)明方法示意圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明進行詳細說明。本實施例以本發(fā)明技術(shù)方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發(fā)明的保護范圍不限于下述的實施例。
現(xiàn)有MIL算法描述中,單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率的關(guān)系應(yīng)用可Noisy-OR模型。也就是說,對于正樣本包中的每個樣本,該算法認為它們對于所在的包為正的概率的貢獻度是一樣的。然而,仔細思考一下并不是這樣,因為該算法認為離追蹤到的目標所在位置較遠的樣本和較近的樣本對樣本包為正的重要性是一樣的,不是很合理。這樣會導致最終選出的弱分類器并不是很有效。
因此,在改進算法中,我們?yōu)閱蝹€樣本對樣本包的貢獻加上權(quán)重,離追蹤到的目標所在位置越近的樣本所獲得的權(quán)重越大。即,離追蹤到的目標所在位置越近的樣本,為正樣本的概率更大,對于樣本包為正的概率的貢獻度就越大。
此外,在運行原算法程序時,發(fā)現(xiàn)速度較慢,因而思考如何能加快算法的時間效率。在算法中,本發(fā)明注意到單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率在循環(huán)中都需要被計算K*M次,略顯多余。主要原因是計算包似然函數(shù)需要依賴于單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率。如果能將包似然函數(shù)的每一輪計算與其前一輪計算的結(jié)果關(guān)聯(lián)起來的話,就可以避免在M個循環(huán)中每次都重新計算一遍。通過將包似然函數(shù)做一階泰勒展開,并且對單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率的關(guān)系進行重新定義之后,能夠得到上述形式的包似然函數(shù),能夠避免在每輪迭代中計算單個樣本為正樣本的概率和其所在的樣本包為正樣本的概率,加快計算的速度。不過同時,上述形式的包似然函數(shù)并不和原來的函數(shù)完全等價,而是犧牲了一些精度,換取了速度。
綜上,本發(fā)明提出一種基于多實例學習的視頻目標追蹤方法,如圖1所示,包括以下步驟:
S1:根據(jù)第一幀的信息得到跟蹤窗口以及正、負樣本,利用后驗概率模型進行弱分類器訓練,進而訓練得到強分類器;
S2:在線跟蹤:預(yù)測新的一幀的目標位置時,以前一幀具有強分類器最高置信區(qū)間的位置作為新的一幀目標位置的采樣中心,進行測試樣本采樣,利用步驟S1訓練得到的強分類器輸出分類結(jié)果;
在獲取弱分類器的過程中,在單個樣本對樣本包的貢獻加上權(quán)重,離追蹤到的目標所在位置越近的樣本所獲得的權(quán)重越大。
權(quán)重采用與樣本位置和追蹤到的目標所在位置有關(guān)的歐式單調(diào)遞減函數(shù)。
在視頻目標追蹤方法中,對包似然函數(shù)進行一階泰勒展開。
在包似然函數(shù)進行一階泰勒展開的基礎(chǔ)上,對單個樣本為正樣本的概率和該單個樣本所在樣本包為正樣本的概率的關(guān)系進行重新定義。
步驟S2獲得的分類結(jié)果作為下一幀的輸出位置的預(yù)測。
實施效果
依據(jù)上述步驟,對于三個視頻tiger2,twining和dollar,用原有方法和改進方法皆進行了實驗。三個視頻文件夾可在release文件夾中找到。文件夾內(nèi)為視頻的圖片序列。文件夾格式為“VidClip1/imgs”,其中VidClip1為視頻的名字,例如名為twining,tiger2等文件夾,每個代表了不同的輸入。在各自的目錄下,有一個“img”文件夾和兩個文件——VidClip1/VidClip1_frames.txt以及VidClip1/VidClip1_gt.txt。img文件夾內(nèi)就包含了這個視頻的所有圖片幀序列,且命名需要為img00000.png,img00001.png,以此類推。文件VidClip1/VidClip1_frames.txt則只包含了一行,指出了視頻的開始的幀序列和結(jié)束的幀序列,
用逗號隔開。例如0,100就表示這個視頻是從img00000.png到img00100.png。文件VidClip1/VidClip1_gt.txt則是ground truth file,其中每行有4個數(shù)據(jù),即[x,y,width,height],分別代表了每個frame中object實際在的位置x與y,以及tracker框的寬度和高度。這個文件中的數(shù)據(jù)是用來與程序?qū)嶋H跑出來的結(jié)果做對比的,這個文件中的數(shù)據(jù)是最理想情況下的結(jié)果。
程序輸出有兩個,一個為txt文件,包含了程序?qū)τ诿恳粋€frame算出的tracker location。類似上述的VidClip1_gt.txt文件,每一行也都有4個數(shù)據(jù)[x,y,width,height]。但注意,在和VidClip1_gt.txt比較時,因為gt文件里每隔5個frame才有數(shù)據(jù),因此,也只能把結(jié)果中的對應(yīng)frame的結(jié)果與之比較。
另外一個輸出為視頻,格式為avi的格式。txt文件和視頻文件都會在運行程序之后出現(xiàn)在VidClip1/文件夾下,其中,視頻文件名中有MIL后綴的為原算法的結(jié)果,有newMIL后綴的則是改進算法的結(jié)果。
首先我們看改進算法對于追蹤效果上的改進,通過比較兩個輸出視頻截取的部分幀的追蹤結(jié)果以及各自與ground truth file中的理想情況的比較。
先看視頻tiger2在兩個算法下的輸出結(jié)果對比。通過比較可以發(fā)現(xiàn),在沒有什么遮擋物的情況下,改進算法比原來算法的效果只好一點點,基本沒有太大的區(qū)別。但是在有遮擋物的情況下,改進算法的效果就比較好,仍然可以很好的跟蹤到目標所在的位置,而不是喪失了焦點。
此外,通過將兩個算法生成的txt文件與gt文件做了對比,計算出了各自平均的中心點誤差(像素點),即將生成文件中追蹤到的點位置與gt文件中對應(yīng)幀的實際點位置的距離的平均。原算法的平均誤差為17pixel,而改進的算法可以達到9pixel。
接下來看一下視頻twining的結(jié)果。通過比較也可以發(fā)現(xiàn),改進算法比原來算法的效果要更好一點。通過與gt文件的比較,原算法的平均誤差為7pixel,改進算法為5pixel。
再來看改進算法對速度上的優(yōu)化。原方法在搜索tiger2時平均用時在317s左右,用改進算法則只需要103s左右,快了2倍多,因此對速度上的改進是很大的。原因也很顯然,因為避免了K*M次的兩次運算,大大減少了運算量。
綜上所述,本發(fā)明是一種基于多實例學習來更新分類器,以判別出目標在新視頻幀內(nèi)所在的位置,而最終追蹤目標在每一視頻幀中的位置的視頻目標追蹤方法。每次,在當前已追蹤到的目標位置點一定范圍內(nèi),選取一定樣本。將它們都放入一個正樣本包中。在離追蹤點較遠的區(qū)域,同樣選取一部分樣本,將它們各自放入一個負樣本包之中。然后用這些樣本包,通過多實例學習方法來更新模型。之后在處理新視頻幀時,用這個更新過的模型來識別新視頻幀中目標所在的位置。