目標跟蹤演算法----KCF進階(基於KCF改進的演算法總結)

小小菜鳥一隻發表於2017-03-19

一、前情提要

如果你對目標跟蹤和KCF是什麼東西還不瞭解的話歡迎你看前一篇博文KCF入門詳解:http://blog.csdn.net/crazyice521/article/details/53525366。如果你已經對基於KCF的目標跟蹤有了一定的瞭解,並想知道這個演算法有怎麼樣的後續的發展的話,就請聽我慢慢介紹以下的東西。

二、KCF的弊端

說道KCF的缺點的話作者在文章中也已經算是說明了,第一點,KCF因為在跟蹤過程當中目標框是已經設定好的,從始至終大小為發生變化,但是我們的跟蹤序列當中目標大小時有發生變化,這個就會導致跟蹤器跟蹤過程當中目標框漂移,從而導致跟蹤失敗。第二點,KCF對在跟蹤過程當中當目標被遮擋時候的處理問題沒有進行很好的解決,不過呢,這個問題一直也算是跟蹤界的一個大難題,有哪位朋友有看到好的文章和演算法的話請與我聯絡,歡迎賜教。

三、解決方法

(1)有問題就要解決,對於存在的這兩個大的問題有什麼解決方法呢,首先對於尺度的解決,近些年來解決比較好的就先看
1、Danelljan, Martin大神的Accurate Scale Estimation for Robust Visual Tracking論文程式碼都在這裡下載(直接點選此處)。大神在文章中使用尺度池技術,對目標模版進行解決。
2、Yang Li大神的A Scale Adaptive Kernel Correlation Filter Tracker with Feature Integration
SAMF下載地址(直接點選此處)兩篇文章大同小異,都是使用尺度模版不過是使用的個數不一樣和對尺度設計的方法不一樣,最終效果都是差不多。
兩篇文章對尺度解決的細節我就不再敘述了,用一張圖形象的描述一下兩篇文章的思想:這裡寫圖片描述
對初試目標進行尺度縮放,經過相關濾波器之後得到對應的響應值response,然後比較各個不同尺度的response之間的大小,找到最大的一個,此時的尺度值即為最佳的目標尺度值,使用最佳尺度值對目標進行跟蹤,能夠解決目標跟蹤過程當中目標尺度變化的問題。

(2)對於遮擋問題的解決就相對來說比較困難了,這個問題算是Long-term tracking 的問題。因為對於目標跟蹤過程當中,跟蹤器是沒有辦法知道目標是否被遮擋,是不是完全被遮擋還是被遮擋一部分的,對於我們人來說,這個我們很容易就能判斷出來,但是對於計算機來說這個是很困難的,近些年來也提出一些方法,
比如使用分塊的方法對目標進行跟蹤:
1、2014年ICPR上的一篇文章Online Learning and Detection with Part-Based, Circulant Structure這個下載的話對於不會翻牆的同學比較麻煩,就傳到雲盤裡面了,連結: https://pan.baidu.com/s/1hs3ehA8 密碼: yi8v
2、基於分塊的目標跟蹤Real-time part-based visual tracking via adaptive correlation filters論文下載地址
這裡寫圖片描述
圖中很清晰的表達出來了分塊的總體思想,就是把要跟蹤的目標進行分割,分割成不同的部分去學習特徵,然後分別進行跟蹤,然後融合起來得到目標最終的位置。
3、馬超大哥的Long-term correlation tracking
這裡寫圖片描述
把跟蹤分開一個對尺度預測,一個對目標外觀變化通過上下文資訊進行學習,使用KNN進行分類得到一個最好的目標位置。

四、其他方法

近些年來對於跟蹤當中問題的解決方法的文章也是層出不窮,在這裡我也沒有辦法把所有的文章都列出來完,只能算是把一些經典的東西展現出來給大家做一個參考,這樣的話大家可以藉助這些方法,進而可以搜素一些其他的相關文獻,文章一直都在出,思想沒有什麼大變化,抓住核心思想,對問題的本質進行理解和探索,這樣就能更好的解決問題。
一些其他的方法諸如PSR對跟蹤過程當中目標是否遮擋進行判斷,因為這個方法經過自己測試沒發現特別大的作用,就不放出來了,有興趣的可以自己搜尋一下相關的文獻看一下。
近兩年深度學習的興起,也使得更好的演算法出現,使用深度學習的演算法有機會的話會再更新一篇出來,有需要或者什麼問題都可以留言聯絡我。

相關文章