unsupervised deep tracking **位址
師兄也提過弱監督遲早要用到跟蹤上來,只不過自己確實是想不出使用的方式,今年的cvpr果然就出了一篇,算是開山之作了把,在dcfnet上面做的,在同乙個資料集上訓練的精度已經比siamfc高了,讓我這個還在想如何在siamfc上做改進的,突然就有種想換框架的感覺,17年的**,現在看來已經太老了呀。這篇就是很巧妙的用前向和後向回溯方式來一起做**,希望從後向傳回來的東西和第一幀隨機選擇的框一樣,這樣在訓練過程中其實帶了一定的物體軌跡的資訊,他們的三幀訓練的方式確實可以借鑑,就是使得目標在訓練的不偏移。
整篇文章看下來,思路比較簡單巧妙,下圖(a)是文中無監督學習的動機,他們認為當我們用前向傳播中根據幀 i **出 i+1 幀的結果,和用 i+1 來反向**i幀的結果應該一樣,這樣算乙個loss就可以得到這個損失,就可以優化。
圖(b)是網路的框架,就是dcfnet的框架,不過上下兩個塊我們可以看出,他是把幀1和幀2分別作為template,通過使用幀1**出的幀2的結果作為幀2的偽標籤,然後去用這個偽標籤來**幀1的位置,最後與真正的標籤做乙個loss。具體模組內實現過程如下:
1 unsupervised learning prototype
他們使用相關濾波方式來實現前向傳播,找到search patch中的target。在反向的時候,就是把相關濾波中的search patch和template patch互換一下,並不是我們平常理解的梯度下降那種反向傳播了。具體的方式都可以從dcfnet裡找到,已經開源了,不過是matlab版本的。
2 unsupervised learning improvements
在前向傳播的過程中,tracker很可能會偏離軌跡,但是經過反向的修正,能保證它回到正確位置,但是其中中間偏移的幀並沒有做懲罰,這裡他們提出了乙個多幀驗證策略來懲罰這些幀。
2.1 multiple frames validation
跟之前只用對來訓練的方式不一樣,他們用了三幀的訓練,就是讓這個前向多走一幀,然後用第三幀的結果**第一幀,這樣應變的情況更多,如下圖:
當然這是基於相鄰幀之間的運動不大的假設上的。
2.2 cost-sensitive loss
他們在訓練的時候,用的是相鄰三幀來做,他們發現由於訓練資料較少,所以得到的loss會很大,所以這裡他們先加了乙個10%的dropout,其次他們加上了運動的loss,就是相鄰幀之間的運動資訊,最後把這些資訊一起歸一化後,得到權重係數:
最終的loss如下,感覺還是很精心設計了的。
3 train details精度還可以,不過速度應該不快?udt+是指使用了自適應模型更新權重。
這篇文章的方法又簡單又有效,若是你看了這篇文章就會覺得:啊,原來是這樣。
優點就是貢獻那塊了,多幀訓練,利用幀間的運動的資訊確實可以借鑑一下。個人認為這麼做有用,一方面是前向反向保證tracker的魯棒性,一方面是隨機的bbox可能會引入更多的目標類別以及目標所經歷的一系列遮擋、尺度變換等變換。
對於缺點的話,他們自己在文中提到了難以適應複雜場景,不過幾乎所有的tracker都存在這個問題,然後就是他們計算複雜度很高。
目標跟蹤小結
一 引言 在需要監控的環境裡,如何能夠判斷出進入特定區域的目標,並且能夠跟蹤目標的軌跡。分為兩種情況 一是靜態背景下的目標跟蹤 二是動態背景下的目標跟蹤。二 靜態背景下的目標跟蹤方法 2 多目標 靜態環境下的多目標跟蹤,需要確定每個目標的特徵,位置,運動方向,速度等資訊。3 預處理 由於獲得的影象總...
目標跟蹤小結
一 引言 在需要監控的環境裡,如何能夠判斷出進入特定區域的目標,並且能夠跟蹤目標的軌跡。分為兩種情況 一是靜態背景下的目標跟蹤 二是動態背景下的目標跟蹤。二 靜態背景下的目標跟蹤方法 2 多目標 靜態環境下的多目標跟蹤,需要確定每個目標的特徵,位置,運動方向,速度等資訊。3 預處理 由於獲得的影象總...
Camshift目標跟蹤
camshift演算法是continuously adaptive mean shift algorithm的簡稱。它是乙個基於meansift的改進演算法。它首次由gary r.bradski等人提出和應用在人臉的跟蹤上,並取得了不錯的效果。由於它是利用顏色的概率資訊進行的跟蹤,使得它的執行效率比...