計算機視覺目標跟蹤過程當中對遮擋問題處理比較好的演算法有哪些?

計算機視覺目標跟蹤過程當中對遮擋問題處理比較好的演算法有哪些,看了這麼多的論文發現對遮擋(特別是完全遮擋)的處理效果都是一樣,目標直接丟失,還沒有發現比較好的,都說分塊處理效果是比較好的,但是RPT《Reliable_Patch_Trackers_2015_CVPR_paper》這篇paper的代碼處理效果也不是很好,對完全遮擋沒有任何的處理能力,希望有看到這方面的大神給指出一個方向,感激不盡!!!


Feature好了都是浮雲,不要在意這些細節

================================

如果想對完全遮擋處理的好,這個問題叫做Long term object tracking,請自行搜索相關文獻。現有大部分paper都是關注short term tracking的問題。


補充:從 multi-object tracking 的角度答一發。

很明顯,目標都完全被遮擋了,把目標分塊跟蹤也沒有意義了。

處理遮擋的方法有很多,分塊對部分遮擋還是一點用的,此外還有一些針對遮擋情況設計的特殊檢測器,例如多個路人互相遮擋的檢測器,也是可行的。問題是這些手工特徵處理起來比較麻煩,對嚴重的遮擋效果不好。

@Naiyan Wang 大神提到了 long-term object tracking。這個問題的關注點可以是 tracklet association [1]。在 tracking-by-detection 的情況下,遮擋的目標可能就不能被檢測出來,跟蹤的目標軌跡就會斷成一截一截的。針對這種情況,斷開軌跡的目標肯定在外觀上有聯繫,類比於 detection 的 data association,把tracklet 放進 cost-flow network 做模型優化,從而忽略掉檢測失敗的目標,把跟蹤續起來。

還有其他方法是基於模板匹配 [2],也是在 tracking-by-detection 的前提下,在時序上跟蹤目標,當跟蹤的目標丟失的時候,更新保存此前該目標的模板,此後通過模板匹配隨時激活該目標的跟蹤。

拋磚引玉,各路大神來答。

[1] Wang B, Wang G, Chan K L, et al. Tracklet association with online target-specific metric learning[C]//Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on. IEEE, 2014: 1234-1241.

[2] Xiang Y, Alahi A, Savarese S. Learning to Track: Online Multi-Object Tracking by Decision Making[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 4705-4713.


TLD 一個很bug的演算法,能夠有效的處理遮擋,看了paper,然而沒怎麼看懂,只是記得有一個在線的學習分類器,能夠助於處理遮擋。

Struck貌似也不錯。


!**我說一個特別樸實的,手機打字,排版難看。

跟蹤演算法搭配檢測演算法一起,再華麗點的添加對目標進行學習模塊。參見TLD演算法,遮擋後跟丟可以重跟。

演算法模塊特別簡單,結構可學習,沒用花活。

跟蹤部分為傳統金字塔光流法。

檢測模塊是方差篩選,brief+隨機森林,歸一化互相關係數(ncc)串聯起來的,其實前兩部分為了減少樣本,本質還是模板匹配(ncc)。

學習模塊就是pn學習,找出與之前有差異的新的正負樣本作為新的模板(patches)。

演算法可改進的地方太多了,比如光流法,先天假設了亮度不變。不過tld確實好用,能解決問題,什麼遮擋,尺度旋轉變換,仿射變換,目標出視界等等。

實測MATLAB, 600*480,3.5g雙核的處理器,每秒10-40幀範圍內。

具體看tracking-detection-learning論文吧,演算法樸實,能解決實際問題。

====

rpt主要不是為了處理完全遮擋的,處理部分遮擋比如目標重疊等。他feature用的是superpixel,完全遮擋都提取不到了

====

Tracking-Learning-Detection, Zdenek Kalal, Krystian Mikolajczyk, and Jiri Matas, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010

tld算近年來經典演算法了,pn學習的概念很有啟發性,演算法不複雜效果還好,引用都好幾百了,之後跟蹤文章很多和他比較。

與tracking by detection演算法比較,tld的detection設計不需要特別複雜,而且跟蹤得到的結果可以幫助優化檢測器性能,有online learning概念在。

====

再安利一個方法叫壓縮跟蹤(compressive tracking),它處理遮擋能力一般,尤其是類似目標交錯的情況不好,是基於檢測的演算法。但他處理那種目標變換複雜的情況效果特別好,比如一個人各種翻滾啊,用的是稀疏編碼器。

Real-timeCompressive Tracking, ECCV 2012

========以下對 @林好夫 在評論中的觀點進行comments====

1. @林好夫提出ZK TLD論文貢獻是2bit LBP特徵,並且認為我不懂2bit LBP,不懂基礎原理。在此進行強烈反駁。第一ZK TLD演算法貢獻是PN學習的思路,而且我在之上檢測器部分,明確提出特徵是brief特徵,brief特徵和LBP是對同一個特徵提取方法的不同叫法,本質是一樣的。並且2bit LBP也不是ZK提出的。順便再吐槽一下 2bit是什麼鬼,人家明明是13bit,而且把二值化(布爾化)說成2bit好逗,還信誓旦旦說我不懂原理。

2. @林好夫質疑我安利CT演算法,我在安利CT的同時,明確提出了CT處理遮擋能力一般。我安利僅為個人喜好,而TLD為回答題主的問題。

3. @林好夫提出TLD會將遮擋物當做正樣本學習進取,在此我不否認會出現這種情況,原因是跟蹤器的問題,如果在遮擋後跟蹤器不停止工作,便會產生這種情況(這種情況還是極其少數的,因為大部分跟蹤器目標被遮擋了就跟不上了)。解決方法是換跟蹤器,或者將跟蹤是否成功的閾值調低。

4. @林好夫提出TLD隨機森林效率低,內存佔用大的問題。在此,這根本不是TLD演算法檢測器模塊效率低的主要矛盾。TLD檢測器效率問題是每當Patch更新時,需要重新訓練分類器。注意是重新訓練,使用過分類器的朋友都明白相對於訓練分類器使用分類器的消耗根本不算什麼吧。當然已經有不需要重新訓練的解決方案。

5. @林好夫提出TLD不可行,希望其說明不可行的原因

6. @林好夫提出我不應該在15年炒TLD(10年)的冷飯,在這裡強烈譴責這種觀念。過去的演算法是值得學習和研究的,例如隨機森林也是傳統演算法,但我們依舊需要學習。至於TLD,TLD提出的PN學習的思路很有意思,不僅僅是模塊的堆疊,有漂亮的理論推導

7. @林好夫提出CT不魯棒,不值得研究。對這種觀點強烈反駁。我承認CT不魯棒,但並不代表其不值得研究,個人喜好問題。SVM很火的時候Hiton不是依然研究NN么。

8. @林好夫提出了一些演算法,部分確實值得看,在這裡對其工作提出肯定。

9. @林好夫通篇評論只說結論,不說理由,並且隨意對他人進行猜測,對這種做法,強烈反對。

以上

==========

在這裡贊同 @Naiyan Wang的觀點,跟蹤演算法結構之流次之,好的feature才是根本。當然,feature找起來比較難,CNN演算法訓練效率又低,那很多研究者就玩結構了。TLD對feature沒什麼深入,brief特徵那部分也是可有可無的,演算法結構很贊。


完全遮擋的處理應該可以分成對遮擋的判別和目標再出現的再定位。否則在完全遮擋的情況下,人眼都看不到了,更合況演算法?之所以很多方法做不到這一點,是因為沒有一種很好的判斷策略,大部分方法會選擇每一幀按某種學習率更新跟蹤模型,這樣會存在model corruption問題,包括kcf也是。所以可以去看看long term tracking的文章,2015cvpr就有一篇,名字Long-term Correlation Tracking.


Online Object Tracking:A Benchmark CVPR2013,吳毅的文章,對目前的跟蹤演算法進行了對比,可以參考一下


為何沒關注kcf,目前short term tracking中correlation filter是一大熱門,看最近兩年的iccv和cvpr,很多都是在kcf 的基礎上改進的,同時樓上也說了feature是最關鍵的地方,需要好好琢磨,tracking中有好多地方需要考慮,參見@Naiyan Wang iccv15文章即可


Struck、SCM、TLD這些對遮擋效果較好,結構化學習和稀疏表達是有一定貢獻的。

遮擋問題,可以考慮加上redetection


看看最近的CVPR16,ECCV16,跟蹤性能大幅提升的演算法很多,好的特徵只是成功的必要條件,一些優異演算法體現在很多方面,詳細可看下SRDCF、SRDCF-decon, C-COT、ECO,GOTURN等演算法。


Particle filtering based tracking algorithm


完全遮擋,進行跟蹤,從某種程度上就是"意淫」,主要就是看具體應用,主要就是根據先驗知識,上下文關係,


推薦閱讀:

請問關於圖像處理數學基礎(原理)的書有哪些?
如此細膩柔美的布光是怎樣做到的?
如何使用 Photoshop 去水印(有水印源文件的情況下逆向還原圖像)?
原始信號沒有負值 濾波器 濾波後 為什麼會出現負值?
Python的各種imread函數在實現方式和讀取速度上有何區別?

TAG:圖像處理 | 模式識別 | 跟蹤 | 計算機視覺 | 深度學習DeepLearning |