跟蹤置信度與Long-term

題圖是VOT2017的要求 VOT2017 Challenge |Participate,今年好看了:禁止在OTB, VOT, ALOV, NUSPRO上訓練,結果必須能復現,代碼必須要公開。(CNN不讓訓練,沒有了過擬合怎麼玩~哈哈哈,才知道有人為了避免重置(會提高robust)用較大跟蹤框~呵呵呵)

以前提到的很多CF演算法,也包括VOT競賽,都是針對short-term的跟蹤問題,即短期跟蹤,我們只關注短期內(如100~500幀)跟蹤是否準確。但在實際應用場合,我們希望正確跟蹤時間長一點,如幾分鐘或十幾分鐘,如果直接讓前面介紹的那些看起來還不錯的short-term的演算法,如KCF, Staple等跟蹤較長一段時間會怎麼樣呢?

很長時間過去了,這些演算法或許還跟的很好,或許早已經跟丟了。那我們會有疑問:前面不是說這些演算法綜合性能都算是頂尖水平了,怎麼還會跟丟呢?

  • 演算法沒有100%。自從有了深度學習方法,很多計算機視覺問題都有了大突破,然而,在IMAGENET上的圖像分類或LFW的人臉識別準確率還是沒有到達100%,退一步說,即使到了100%,也只能說在某個數據集上達到了100%,換個數據集可能就不行了,再退一步說,即使在某幾個數據集都達到了100%,實際應用中可能又不行了,因為現實情況非常複雜,有很多不可控因素,不是幾個數據集就能囊括的。跟蹤演算法也是演算法,演算法就是演算法,沒有最好,只有更好。
  • 錯誤累積。即使VOT2016上排第一的C-COT,各項指標離滿分還是有很大距離的,任何一個演算法都不是100%靠譜,如CF對快速運動比較弱,某個演算法遇到它不擅長的難題就容易跟丟跑飛。即使某個演算法在它擅長的情況下,每次檢測的結果也都有一定誤差,這個誤差會隨著跟蹤時間慢慢積累,量變到質變,最終跟丟。

這就是一開始提到的,tracker要配合detecter一起用,隔一段時間重新初始化一次tracker,跟丟的找回來,有誤差的清除誤差,這樣才能正常跟蹤下去。

Long-term就是希望tracker能長期正確跟蹤,我們分析了前面介紹的方法不適合這種應用場合,必須是short-term tracker + detecter配合才能實現正確的長期跟蹤。那如果應用場合沒有detecter,怎麼才能實現Long-term呢?簡單啊,給tracker配一個detecter就可以了。

用一句話介紹Long-term,就是給普通tracker配一個detecter,在發現跟蹤出錯的時候調用自帶detecter重新檢測並矯正tracker。

有以下要求:

  1. 這個tracker必須儘可能地好,不然跟一幀重新檢測一次,誰受的了?
  2. detecter必須儘可能簡單,它也是跟蹤演算法的一部分,而且檢測演算法是整幀進行檢測,太慢了影響速度。
  3. detecter還必須儘可能好,檢測錯誤了還不如不檢測。
  4. tracker必須知道什麼時候跟丟了,然後再去調用detecter去重新檢測,保證以跟蹤為主,提高幀率。

以上就是Long-term的基本情況,哦,忘了介紹檢測演算法的訓練樣本:負樣本要多少有多少~~跟蹤如果正確,那跟蹤目標就是正樣本,正樣本數量有限,正確跟蹤幀數越多,正樣本數量越多。為了方便,檢測演算法也可以用online learning,每一幀更新一次。

/**************************************我是分割線*****************************************/

接下來介紹CF方向引用量比較高的一篇long-term方法,馬超大神的LCT chaoma99/lct-tracker

  • Ma C, Yang X, Zhang C, et al. Long-term correlation tracking [C]// CVPR, 2015.

LCT在DSST一個平移相關濾波Rc和一個尺度相關濾波的基礎上,又加入第三個負責檢測目標置信度的相關濾波Rt,檢測模塊Online Detector是TLD中所用的隨機蔟分類器(random fern)。第三個相關濾波類似MOSSE不加padding,而且特徵也不加cosine窗,放在平移檢測之後。下圖是Rc和Rt的區別:

以前介紹Staple的時候提到過,相關濾波的最大響應值反映跟蹤置信度,LCT就用第三個濾波響應的最大響應值max_response作為跟蹤置信度,並做以下處理:

  1. 如果max_response小於第一個閾值th1(叫運動閾值),說明平移檢測不可靠,調用檢測模塊重新檢測。注意,重新檢測的結果並不是都採納的,只有第二次檢測的最大響應值比第一次檢測大1.5倍時才接納,否則,依然採用平移檢測的結果。
  2. 如果max_response大於第二個閾值th2(叫外觀閾值),說明平移檢測足夠可信,這時候才以固定學習率在線更新第三個相關濾波器和隨機蔟分類器。注意,前兩個相關濾波的更新與DSST一樣,固定學習率在線每幀更新。

LCT加入檢測機制,對遮擋和出視野等情況理論上較好,速度27fps,實驗只跑了OTB-2013:

是不是高的嚇人,之後的文章很少對比這個演算法,我們再來看看Luca Bertinetto最新CFNet的實驗結果(注意評價指標與上面不同):

有沒有很驚訝,LCT在OTB-2013上真的爆高,但在OTB-2015竟然比不過Staple,以前也說過Staple因為顏色特徵在OTB上並不好,這就很奇怪了。那LCT在VOT上怎麼樣呢?很遺憾VOT2015和VOT2016都沒有LCT的身影,而我在VOT上跑LCT也比較失望,在遮擋和跑丟時都沒有找回來,您可以自己去試試看。還有其他幾個注意的問題:

  1. LCT公開的代碼中檢測模塊用SVM代替了random fern,但檢測能力依然很弱。

  2. 除了很多參數都和DSST不一樣,LCT有兩個非常重要的閾值,代碼和論文也是不一樣的,而且都是直接給出的:config.motion_thresh=0.15; config.appearance_thresh=0.38。
  3. 在VOT上跑LCT,使用默認參數,重新檢測幾乎全都沒有被採納(最大響應需要大於原來的1.5倍時才採納),這時候就等同於DSST了。這很可能是參數設置問題,很遺憾馬超大神並沒有告訴我們這個精確到小數點後兩位的閾值是怎麼得到的,我們也不知道該怎麼調節。

也許您會問:VOT競賽是面向short-term演算法的,跑long-term是不是不太合適?

首先,TLD官方在VOT2013跑過。其次,某個演算法如果短期都跑不好,還能指望它跑長期?

關於long-term,TLD和LCT的思想都值得參考,尤其馬超大神這篇LCT,有很多地方值得學習借鑒,比如三個相關濾波,熱鬧。

/**************************************我是分割線*****************************************/

最後介紹跟蹤置信度。跟蹤演算法需要能反映每一次跟蹤結果的可靠程度,這一點非常重要,不然就可能造成跟丟了還不知道的情況。其實每種方法都可以提供跟蹤置信度:

  • 生成類(generative)方法都有相似性度量函數,這個相似度可以作為跟蹤置信度指標。

  • 判別類(discriminative)方法都有判別器,判別器的響應代表某個樣本的分類置信度,即判別器的響應可以作為跟蹤置信度指標。
  • 相關濾波類(correlation filter)方法屬於判別類方法,分類器是嶺回歸,分類器的響應當然可以作為相關濾波類演算法的跟蹤置信度指標。

相關濾波除了上面的最大響應值,還有其他更好的指標嗎?我們還是以CSK為例,看幾個響應圖:

  1. 第一幅圖,在理想情況下,響應圖與期望高斯響應類似,響應圖是單峰的,最大響應值也比較大;
  2. 第二幅圖,在有背景干擾和目標形變時,響應圖依然是單峰的,但最大響應值略微降低;
  3. 第三幅圖,目標被部分遮擋時,響應圖不再是單峰,最大響應值很低但跟蹤依然正確;
  4. 第四幅圖,目標被完全遮擋,響應圖不再是單峰,最大響應值位置隨緣,這個序列接下來就跟丟了。

綜合來說,有兩種指標可以反映相關濾波類方法的跟蹤置信度:前面見過的最大響應值,和沒見過的響應模式,或者綜合反映這兩點的指標。

這裡以LMCF(目標跟蹤演算法 - 知乎專欄,還沒有開源代碼)中的兩個指標為例:

  • Wang M, Liu Y, Huang Z. Large Margin Object Tracking with Circulant Feature Maps [C]// CVPR,n2017.

SVM代替嶺回歸部分不做討論,有興趣去她專欄看吧。簡介下其他部分:

多峰目標檢測:對平移檢測的響應圖做多峰檢測,如果其他峰峰值與主峰峰值的比例大於某個閾值,說明響應圖是多峰模式,以這些多峰為中心重新檢測,並取這些響應圖的最大值作為最終目標位置。論文沒說多峰檢測用的什麼方法,我也並不了解任何極值檢測演算法,望推薦~~~。

高置信度更新:只有在跟蹤置信度比較高的時候才更新跟蹤模型,避免目標模型被污染,同時提升速度。

  • 第一個置信度指標是最大響應分數Fmax

  • 第二個置信度指標是平均峰值相關能量(average peak-to correlation energy, APCE),反應響應圖的波動程度和檢測目標的置信水平 :

只有這兩個指標都大於其歷史平均值一定比例β1, β2時,才認為是高置信度。

實驗部分LMCF在OTB2013和OTB2015效果都不錯,而且速度有80fps。多峰檢測也算是擴大了檢測區域,一定程度緩解了邊界效應,而且僅在多峰響應時進行;高置信度更新可以避免發生遮擋時更新到背景信息,但也會造成簡單情況持續更新的問題。

  • Bolme D S, Beveridge J R, Draper B A, et al. Visual object tracking using adaptive correlation filters [C]// CVPR, 2010.

  • 其實在第一篇相關濾波方法MOSSE中就提出了與APCE類似的跟蹤置信度指標叫峰值旁瓣比(Peak to Sidelobe Ratio, PSR) :

PSR通過相關濾波峰值,與11*11峰值窗口以外旁瓣的均值與標準差計算得到。

以前還介紹過,在CSR-DCF的空域可靠性中,也用了兩個類似指標反映通道可靠性。

  • Luke?i? A, Vojí? T, ?ehovin L, et al. Discriminative Correlation Filter withnChannel and Spatial Reliability [C]// CVPR, 2017.
  • 第一個指標也是每個通道的最大響應峰值:

  • 第二個指標是響應圖中第二和第一主模式之間的比率,反映每個通道響應中主模式的表現力:

當然,這個指標也需要極值檢測。

以上就是相關濾波方法的跟蹤跟蹤置信度指標總結,如果還有其他上面沒有提到的指標,歡迎討論。


推薦閱讀:

DeepMind聲稱通過AI為Google全球機房節能15%的新聞有多少可信度?
李宏毅機器學習2016 第十六講 生成對抗網路 GAN
K-means聚類演算法中K值如何選擇?

TAG:图像处理 | 计算机视觉 | 机器学习 |