顏色保衛戰與VOT2016
This was particularly obvious in case of SiamFC trackers, which runs orders higher than realtime (albeit on GPU), and Staple, which is realtime, but are incorrectly among the non-realtime trackers.
VOT2016竟然發生了烏龍事件,Staple在論文中是80FPS,怎麼EFO在這裡只有11?幸好Staple和STAPLE+都公開了代碼,上面下載地址都有,有興趣您可以去實測下,雖然我電腦不如Luca Bertinetto大牛,但Staple我也能跑60-70FPS,而更可笑的是,STAPLE+比Staple慢了大約7-8倍,竟然EFO高出4倍,到底怎麼回事呢?
- 首先看Staple的代碼,如果您直接下載Staple並設置params.visualization = 1來跑,Staple調用Computer Vision System Toolbox來顯示序列圖像,而恰好如果您沒有這個工具箱,默認每幀都會用imshow(im)來顯示圖像所以非常非常慢,而設置params.visualization = 0就跑的飛快(作者你是孫猴子派來的逗逼嗎),建議您將顯示圖像部分代碼替換成DSST中對應部分代碼就可以正常跑和顯示了。
- 再來看STAPLE+的代碼,改進包括額外從顏色概率圖中提取HOG特徵,特徵增加到56通道(Staple是28通道),平移檢測額外加入了大位移光流運動估計的響應,所以才會這麼慢,而且肯定會這麼慢。
- Possegger H, Mauthner T, Bischof H. In defense of color-based model-free tracking [C]// CVPR, 2015.
DAT統計前景目標和背景區域的顏色直方圖並歸一化,這就是前景和背景的顏色概率模型,以後每幀線性插值更新顏色直方圖;檢測時對檢測區域每個像素,根據其像素顏色值在前景和背景中的概率,貝葉斯方法判別這個像素屬於前景的概率,得到像素級顏色概率圖,在加上高斯權值函數抑制邊緣相似顏色物體,就能得到目標的區域了:
- Bertinetto L, Valmadre J, Golodetz S, et al. Staple: Complementary Learners for Real-Time Tracking [C]// CVPR, 2016.
前面分析了相關濾波模板類特徵(HOG)對快速變形和快速運動效果不好,但對運動模糊光照變化等情況比較好;而顏色統計特徵(顏色直方圖)對變形不敏感,而且不屬於相關濾波框架沒有邊界效應,快速運動當然也是沒問題的,但對光照變化和背景相似顏色不好。綜上,這兩類方法可以互補,也就是說DSST和DAT可以互補結合:
- 既然是顏色特徵,DSST+DAT換成DSST用HOG+CN一樣嗎?
肯定是不一樣的。1. CN特徵是模板類特徵,DAT中統計顏色直方圖是概率特徵,舉個例子,跟蹤目標是人,穿白色上衣,黑色褲子,CN特徵學習到上白下黑的模板,顏色直方圖學習到目標60%是白色,40%是黑色。如果這個人倒立了,CN模板對不上就認為這個不是目標,而顏色直方圖依然60%白40%黑,判定就是目標。2. HOG+CN任然在相關濾波框架中,具有相關濾波的固有缺陷,而像素級概率顏色概率響應不受這一影響,能正確檢測快速變形和快速運動情況,某種程度上來說DAT緩解了CF的邊界效應,所以對快速運動情況不像DSST那麼差。
- Staple為什麼能控制計算量,比DSST和DAT都快還不損失性能?
首先,Staple中檢測和更新的圖像塊大小限制在150*150以內,即HOG特徵解析度在38*38以內,這樣DSST的速度就會很快。但前面也分析過即使2因子下採樣精度已經比較低了,那為什麼Staple的精度不受影響呢?因為平移相關濾波響應和顏色概率響應要線性加權,而顏色概率響應得解析度在150*150左右下降不是很多,這就彌補了平移相關濾波的精度損失。舉個例子,原始檢測圖像塊解析度是400*400,如果限制解析度到100*100,HOG特徵解析度是25*25,響應圖也是25*25,1像素位移對應跟蹤框16像素位移;而加入DAT後,顏色概率響應解析度是100*100,相關濾波響應先上採樣到100*100,再兩個響應結合,最終響應的解析度是100*100,1像素位移對應跟蹤框4像素位移,跟蹤精度提高了很多且保持低計算量。其次,像素級顏色概率圖到顏色概率響應採用積分圖加速計算,積分圖是加速神器不用多說。這兩種策略分別提高了DSST和DAT的速度,而且Staple並沒有破壞封閉解,所以非常非常之NIUBILITY。
- 兩種響應圖線性加權,會不會太簡單,效果不夠好?
具體實現中採用比較簡單的線性加權,最終響應 = (0.7*相關濾波響應 + 0.3*顏色概率響應),可以看出Staple更加相信相關濾波的結果,而顏色概率只是起到輔助作用,看代碼作者實現了另一種加權方式fit_gaussian,可能效果不好最終沒用。
相關濾波響應值是判別器輸出的置信度,可以表示平移濾波器的可靠程度,跟蹤越可靠峰值越大;顏色概率響應值表示當前像素點屬於前景的置信度,像素點及附近像素屬於前景的概率越高,響應值越大,也可以表示顏色概率模型的可靠程度。所以作者說這種線性加權是置信度加權,CF代表相關濾波的峰值點,PWP代表顏色概率響應的峰值點:- 如果CF和PWP大小相似時,以相關濾波響應為主,顏色響應僅微調跟蹤框的位置;
- 如果CF比較大,PWP比較小時,說明相關濾波響應更可靠,此時顏色概率響應幾乎沒有貢獻;
- 如果CF比較小,PWP比較大時,說明顏色響應更可靠,以顏色峰值所在區域的CF局部峰值為主;
以上就是非常推薦而且比較快的Staple,在VOT資料庫上性能非常高,競賽結果已經看到了,前面也提到過顏色特徵方法在OTB上不會很好,在OTB50上Staple略低於SRDCF。
Staple雖然簡單高效,但也有不足之處,例如,僅以峰值判斷置信度並不可靠,以上策略並不總是正確的。如果能有更全面可靠的指標,讓我們知道相關濾波的檢測置信度,那加權係數就可以自適應確定,在相關濾波檢測置信度較低時更多地相信顏色概率的結果,也許會更加合理(個人拙見僅供參考)。也可以用更好的模板特徵和統計特徵在這個框架中完美結合,提升性能。另一種相關濾波結合顏色概率的方法是CSR-DCF,基於DSST(當然也是沒有Kernel),提出了空域和通道可靠性- Luke?i? A, Vojí? T, ?ehovin L, et al. Discriminative Correlation Filter with Channel and Spatial Reliability [C]// CVPR, 2017.
空域可靠性通過前背景顏色直方圖概率和中心先驗計算空域二值約束掩膜,讓濾波器自適應學習和跟蹤顏色比較顯著的目標部分,緩解邊界效應:
通道可靠性用於區分檢測時每個通道的權重,由兩個指標決定:訓練通道可靠性指標表示響應峰值越大的通道可靠性越高,檢測可靠性指標表示響應圖中第二和第一主模式之間的比值:其實,CSR-DCF中的空域可靠性得到的二值掩膜就類似於CFLM中的掩膜矩陣P,在這裡自適應選擇更容易跟蹤的目標區域且減小邊界效應;以往多通道特徵都是直接求和,而CSR-DCF中通道採用加權求和,而通道可靠性就是那個自適應加權係數。CSR-DCF也屬於傷筋動骨類方法,和CFLM一樣也用ADMM迭代優化求解。同樣是顏色方法,僅HOG+CN特徵的CSR-DCF,在OTB100上接近SRDCF,在VOT2015上超過DeepSRDCF,在VOT2016上超過C-COT,速度13FPS,感覺也是非常NIUBILITY,等代碼實測吧,如果非常注重性能,那這個接近實時的方法也非常推薦。相關濾波還有個排在第一名的CCOT,下次在結合深度特徵的相關濾波中一起介紹。推薦閱讀:
※1.23【OpenCV圖像處理】直方圖均衡化和計算
※遙感圖像亮度地形糾正
※1.29【OpenCV圖像處理】輪廓邊界框
※[171118] PyQt5 滑動條控制 Canny 邊緣閾值並繪製 OpenCV 圖像