<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          單目標跟蹤paper小綜述

          共 9553字,需瀏覽 20分鐘

           ·

          2021-07-01 13:04

          點擊左上方藍字關注我們



          全網(wǎng)搜集目標檢測相關,人工篩選最優(yōu)價值內容

          編者薦語
          視覺目標跟蹤是指對圖像序列中的運動目標進行檢測、提取、識別和跟蹤,獲得運動目標的運動參數(shù),如位置、速度、加速度和運動軌跡等,從而進行下一步的處理與分析,實現(xiàn)對運動目標的行為理解,以完成更高一級的檢測任務。根據(jù)跟蹤目標的數(shù)量可以將跟蹤算法分為單目標跟蹤與多目標跟蹤。


          為了方便自己梳理脈絡同時和大家交流討論,將一些重要的paper整理在這。首先用一張圖羅列下本文涉及到的paper:


          一. 關于單目標跟蹤

            本人不了解傳統(tǒng)的相關濾波法,所有想法總結僅僅建立在深度學習的基礎上。對于單目標跟蹤而言一般的解釋都是在第一幀給出待跟蹤的目標,在后續(xù)幀中,tracker能夠自動找到目標并用bbox標出。關于SOT(single object track),有兩條思路。第一種,我們可以把跟蹤粗暴地當做一個配對問題,即把第一幀的目標當做模板,去匹配其他幀。基于這種思路,網(wǎng)絡并不需要“理解”目標,只需當新的一幀圖像來到時,拿著模板“連連看”找相同就可;siam系列實質上就是這個思路,每次兩個輸入,模板和新圖片,然后通過網(wǎng)絡在新圖片上找和模板最相似的東西,所以這條思路的關鍵在于如何配得準。另一種思路是通過第一幀給出的目標“理解”目標,在后續(xù)幀中,不需要再輸入模板,即只有一個輸入,網(wǎng)絡可以根據(jù)自己理解的模板,在新圖片中預測出目標,所以這條思路的關鍵在于如何讓網(wǎng)路僅僅看一眼目標(第一幀)就能向目標檢測那樣,“理解”目標,這就涉及到單樣本學習問題,也是檢測和跟蹤的gap。

          二. SiamFC

            目前基于siamese系列的網(wǎng)絡已經(jīng)占據(jù)了單目標跟蹤大半壁江山。這一切都源于2016年siamFC的提出,siamfc實際上就是將跟蹤當做匹配問題,下面具體介紹siamfc。

            首先簡單介紹下siamfc的網(wǎng)絡框架,圖中z是模板(即待跟蹤的目標),x是當前幀的圖像,  是用于提取圖像特征的卷積網(wǎng)絡,因為作用于x(srch_img)的與作用于z(template)的完全一樣所以稱為孿生網(wǎng)絡(siamese),經(jīng)過卷積網(wǎng)絡提取特征后分別得到x和z的feature map,然后將二者卷積(  表示卷積),即將6×6×128的feature map當做卷積核,在22×22×128上進行卷積得到17×17×1的heatmap,heatmap上值最大的點就對應于x圖像中目標的中心。

            下面說一些細節(jié),首先網(wǎng)絡是5層不帶padding的AlexNet。顯然5層不符合深度學習“深”的理念,但是由于網(wǎng)絡不能加padding所以限制了網(wǎng)絡深度,為什么不能padding呢,事實上target在x上的位置,我們是從heatmap得到,這是基于卷積的平移等變性,即target在x上平移了n,相應的就會在heatmap上平移n/stride,且值不會變。但如果加入了padding,對于圖像邊緣的像素,雖然也會平移,但值會變,因為padding對圖像的邊緣進行了改變。siamRPN++和siamDW解決了這個問題,后面會詳細講。然后是訓練時,x和z的獲取方式:z是以第一幀的bbox的中心為中心裁剪出一塊圖像,再將這塊圖像縮放到127×127,255×255的srchimg也是類似得到的。這里有幾個細節(jié)需要注意,第一,template與srch_img的中心就是目標的中心,且template是裁剪過的,如果不裁剪那么template中背景過多,導致匹配失敗。不過在siamfc中背景信息完全被丟棄,換句話說,siamfc對缺乏對背景的利用,也導致模型的判別性不足,后續(xù)有相關工作對此進行改進。第二,訓練階段的標簽怎么得到呢,如果只是簡單將目標所在位置標為1,其他位置標為0,就會產(chǎn)生嚴重的樣本不均衡問題,于是作者將離目標中心點r半徑內的label都設置為1,其他設為0,loss function為  ,y為預測值,v為標簽值,這里關于label的設置也有一些可以優(yōu)化的點,使用focal loss是否對模型的判別性是否會更高呢。第三,在測試時,siamfc的template是不更新的,即一直為第一幀,這就導致模型的魯棒性不佳,例如隨著時間的變化template出現(xiàn)遮擋、模糊等情況,但是如果更新策略不佳又會引入模板污染、過擬合等問題,在這方面也有相關工作討論。在測試時,首先搜索區(qū)域不是整個srchimg而只是之前的四倍大小的搜索區(qū)域,其次在feature map上加了余弦窗,最后為了解決尺度問題,對srch_img進行縮放了3種尺度。

          三. Siam系列

          1. SiamRPN

            SiamRPN是CASIA在2018提出來的網(wǎng)絡,它將siam與檢測領域的RPN進行結合。關于RPN(faster RCNN)可以參看faster RCNN,這篇帖子寫得非常好。在檢測領域RPN本意是用作檢測,它將feature map上的各個點當做錨點,并映射到映射到輸入圖片上,再在每個錨點周圍取9個尺度不同的錨框,對每個錨框進行檢測是否有物體以及位置回歸。

            siamRPN的網(wǎng)絡框架見上圖,這里可以從one-shot的思路理解sianRPN,我們把template分支的embedding當作卷積核,srch_img分支當作feature map,在template與srchimg卷積之前,先將卷積核(即template得到的feature map)通過1*1卷積升維到原來的2k(用于cls)和4k(用于位置的reg)倍。然后拉出分類與位置回歸兩個分支。(建議沒看多RPN的朋友看下上面推薦的那篇講faster rcnn的帖子,看完這里就自然懂了)。這里的anchor到底是什么呢,根據(jù)筆者粗淺的理解,siamfc相當于直接將template與srching直接卷積匹配,而siamRPN在template上引入k個anchor相當于選取了k個尺度與srch_img進行匹配,解決了尺度問題。(筆者對anchor的理解還不夠深入,后面深入研究下再寫一篇文章專門探討anchor的本質及其優(yōu)缺點)

            siamRPN無論是在A還是R上都優(yōu)于siamfc(這里補充一下,對于跟蹤而言主要有兩個子指標A(accuracy)與R(robust), A主要是跟蹤的位置要準,R主要是模型的判別性要高,即能夠準確識別哪些是目標,從而判斷出目標的大致位置。關于R與A可參見VOT評價指標),也就是說siamrpn的模型判別性與準確性都比siamfc好,結果見下圖。

            筆者認為,準確性的提升主要來自與siamrpn將位置回歸單獨拉出來作為一個分支,這一點在后續(xù)的siamfc++中也可以看到作者相關的論述。在模型判別性方面,筆者認為,提升的關鍵在于siamrpn在進行匹配(即template與srchimg卷積的過程)時,由于引入了k個anchors,相當于從k個尺度對template與srch_img進行更加細粒度的匹配,效果更好也是情理之中。另外很重要的一點就是sianrpn解決了尺度問題。

          2. DaSiamRPN

            關于這篇文章,筆者之前在github上做過一些筆記,這里就簡單摘錄一些,具體筆記見DaSiamRPN。

            DasiamRPN并沒有對siamfc的網(wǎng)絡結構進行過多的改進,而是從訓練數(shù)據(jù),模板更新,搜索區(qū)域三個角度對模型的rubost進行了提升。使得SiamRPN網(wǎng)絡能夠適應長期跟蹤。

            首先作者對siamrpn的缺點進行了分析,主要有三點:

          • 在訓練階段,存在樣本不均衡問題。即大部分樣本都是沒有語義的背景(注:背景不是非target的物體,而是指那些既不屬于target,也不屬于干擾物,沒有語義的圖像塊,例如大片白色。)這就導致了網(wǎng)絡學到的僅僅是對于背景與前景的區(qū)分,即在圖像中提取出物體,但我們希望網(wǎng)絡還能夠識別target與非target物體。作者從數(shù)據(jù)增強的角度解決此問題。

          • 模型判別性不足,缺乏模板的更新,即在heatmap中很多非target的物體得分也很高;甚至當圖像中沒有目標時,依然會有很高的得分存在。作者認為與target相似的物體對于增強模型的判別性有幫助,因此提出了distractor-aware module對干擾(得分很高的框)進行學習,更新模板,從而提高siam判別性。但是排名靠前的都是與target很相似的物體,也就是說該更新只利用到了target的信息,沒有利用到背景信息。

          • 由于第二個缺陷,原始的siam以及siamRPN使用了余弦窗,因此當目標丟失,然后從另一個位置出現(xiàn),此時siam不能重新識別target, (siamRPN的搜索區(qū)域是上一陣的中心加上預設的搜索區(qū)域大小形成的搜索框),該缺陷導致siam無法適應長時間跟蹤的問題。對此作者提出了local-to-global的搜索策略,其實就是隨著目標消失幀數(shù)的增加,搜索區(qū)域逐漸擴大。

            針對這三個問題,作者給出了相應的解決方案。首先對于數(shù)據(jù)問題,當然是使用數(shù)據(jù)增強,主要方法有:增加訓練集中物體的類別;訓練時使用來自同一類別的負樣本,以及來自不同類別的正樣本輔助訓練;增加圖像的運動模糊。關于template的更新問題,作者對heatmap得到目標先NMS去除一些冗余框,然后將相似度靠前的框(干擾物)拿出來,讓網(wǎng)絡對其學習,拉大target_embedding與這些干擾物之間的相似度。這樣的優(yōu)點在于既綜合了當前幀的信息,同時因NMS靠前的都與目標很相似,這就抑制了模板污染問題。

          3. siamMask

            關于siamMask,先放一張效果圖,就可以知道他做的是什么工作。

            簡單來說siamMask就是將跟蹤與分割結合到了一起,從其結果上,相比與之前的視頻分割工作,其提升了速度,相比與之前的DasaimRPN其提升了A與R.

          這里不對分割進行探討,僅從跟蹤的角度來看,筆者認為saimMask的提升相比與siamRPN主要來源與多任務學習(即更加精細的像素級的數(shù)據(jù)集與學習任務)。

            上圖是siamMask的網(wǎng)絡框架,從中我們也可以看出,就網(wǎng)絡本身而言,siamMask只是比siamRPN多了一個(分割)分支,即多了一個學習任務。

          4. siamRPN++

            siamRPN++可以說是將siam系列網(wǎng)絡又推向一個高峰,它解決的是如何將siam網(wǎng)絡加深的問題。筆者在寫siamfc那部分時提到,siamfc中的backbone使用的是只有5層的AlexNet,且不含padding, 其實在siamrpn的backbone也很淺。這是因為網(wǎng)絡不能加padding, 不能加padding,那么隨著網(wǎng)絡深度的增加,feature map就會越來越小,特征丟失過多。而加padding則會破壞卷積的平移等變性。在siamrpn++中,作者是從實驗效果的角度對padding進行探究。作者認為padding會給網(wǎng)絡帶來空間上的偏見。具體來說,padding就是在圖片邊緣加上黑邊,但是黑邊肯定不是我們的目標,而黑邊總是在邊緣,那么對于神經(jīng)網(wǎng)絡來說,它就會認為邊緣都不是目標,即離邊緣越遠的越可能是目標。這就導致了神經(jīng)網(wǎng)絡總是習慣認為圖像中心的是目標,而忽視目標本身的特征,而siamfc的訓練方法target也確實是在圖片中央。(這里需要指明的是,在siamfc的訓練過程中,總是讓template與srch_img處于圖片的中央,作者在siamfc中說因為他們使用了全卷積的結構,所以在siamfc中不會有空間上的bias,顯然這里的結果和siamrpn++的結果有矛盾,這也是筆者在寫這篇貼子時想到的,siamfc到底有沒有空間的bias還有待筆者代碼測試,也歡迎評論區(qū)小伙伴討論。)

            回到siamrpn++上來,有了上面的分析,解決辦法自然也就有了,既然網(wǎng)絡總是習慣認為中心是目標,那讓target不要總是在圖片中央不就好了,于是siamrpn++最大的貢獻就產(chǎn)生了,在訓練時讓目標相對于中心偏移幾個像素,論文中實驗表明偏移64個像素最佳.

          關于網(wǎng)絡結構方面,siamrpn++也在siamrpn的基礎上做了一些改進,見上圖,首先當然是加深backbone,論文中使用了resNet50。此外在核相關環(huán)節(jié),siamrpn是直接將template與srch_img的經(jīng)過backbone后的embedding都先升維至原來的2k倍和4k倍,這樣做的缺點是參數(shù)量的不平衡,即在核相關環(huán)節(jié)的參數(shù)量是其余環(huán)節(jié)的4倍,這為訓練增加了難度(為什么增加了難度?)。這種參數(shù)量的不平衡主要來自與核相關的卷積操作,因此siamrpn++使用depthwise cross correlation的卷積方式,用下面這張網(wǎng)上截來的圖來說明這種操作。

          除此之外,siamrpn++還綜合了更多的特征,見網(wǎng)絡框架圖。這中融合使得網(wǎng)絡學會更多的圖像特征,在最近的siamCAR中也使用了類似的方法,分刷得很高,看來特征融合確實是提分利器。

          最后放下siamrpn++的測試結果,

          不得不承認,siamrpn++的EAO(綜合了A和R的指標)還真是高得驚人,不過仔細看A與R可以發(fā)現(xiàn),siamrpn++的Accuracy非常出眾,但robustness提升空間還很大,也就是說,網(wǎng)絡的判別性并沒有那么驚艷,但是講道理網(wǎng)絡深度加深而且還有特征融合的助力,最受益的應該就是R,這其中原因還有待筆者跑跑代碼再做評論(盲猜是不是模板未更新的緣故,然而加入了模板更新的Dasiamrpn的R值更高)。

          5. siamDW

          與siamrpn++一樣siamDW也是解決siam系列網(wǎng)絡深度的問題,兩篇都同為CVPR2019的oral。

          siamDW認為siam系列網(wǎng)絡不能加深原因有二:第一,隨著網(wǎng)絡深度的增加,網(wǎng)絡的感受野增加,從而減少了網(wǎng)絡的判別性與回歸的準確度;第二,padding會引入spatial bias,因為如果使用padding的話,對于卷積核(template)來說是一定帶來說是一定帶padding,而對于search image中間部分是沒有padding的,只有邊緣的才有padding,作者認為這會導致不連續(xù),導致對于search image邊緣的目標識別很差。因此本文的作者從兩個方面探究了加深siam系列網(wǎng)絡的辦法:第一,感受野的問題,作者探究發(fā)現(xiàn)siam系列網(wǎng)絡prefer small stride,4~8最宜,同時網(wǎng)絡最后的感受野最好在整幅exemplar的60%至80%最佳,stride也要根據(jù)這個來調整;針對padding問題,作者設計了一種新的殘差網(wǎng)絡結構,先padding,得到feature map后再刪除feature map上受padding影響元素。

          再來看下結果

          6. siamFC++

          針對siam網(wǎng)絡分析了之前的工作不合理的地方,提出了4條guidelines,并就這4條guidelines對siamfc進行了改進,個人認為這幾點guidelines非常有意義。

          • 跟蹤網(wǎng)絡分為兩個子任務,一個是分類,一個是位置的準確估計。即網(wǎng)絡需要有分類與位置估計兩個分支。缺少分類分支,模型的判別性會降低,表現(xiàn)到VOT評價指標上就是R不高;缺少位置估計分支,目標的位置準確度會降低,表現(xiàn)到VOT評價指標上就是A不高。

          • 分類與位置估計使用的feature map要分開。即不能分類的feature map上直接得到位置的估計,否則會降低A。

          • siam匹配的要是原始的exemplar,不能是與預設定的anchors匹配,否則模型的判別性會降低,siamFC++的A值略低于siamRPN++,但是R值在測試過的數(shù)據(jù)集上都比siamRPN++高,作者認為就是anchors的原因,在論文的實驗部分,作者進行了實驗發(fā)現(xiàn)siamRPN系列都是與anchors進行匹配而不是exemplar本身,但是anchors與exemplar之間存在一些差異,導致siamRPN的魯棒性不高。

          • 不能加入數(shù)據(jù)分布的先驗知識,例如原始siamFC的三種尺度變換,anchors等實際上都是對目標尺度的一種先驗,否則會影響模型的通用性。

          網(wǎng)絡結構如上圖,值得注意的是siamfc++未使用anchors那么她是怎么解決尺度問題的呢,筆者在論文中似乎未見到作者關于這方面的提及,如果有朋友注意到還請在評論區(qū)告知,此外作者在論文中說他們追隨了“per-pixel prediction fashion”,這是指什么也還有待開源代碼后筆者再研究下。

          另外值得注意的是作者在訓練時是如何定義正副樣本的。作者認為落在bbox內部的點都算positive,在計算loss時,只考慮positive的點,在對位置回歸時,作者實驗發(fā)現(xiàn)PSS loss比IOU loss高0.2個點,所以位置回歸分支使用PSS loss,分類分支使用focal loss,quality分支使用BCE(即作者使用了兩種不同的loss來訓練分類分支)。在訓練時,只使用了positive的點,該模型對背景的區(qū)分度可能不夠(還是要運行代碼看呀),如果把背景也加上會不會進一步提升模型的判別性。跟蹤不僅僅是單純的根據(jù)exemplar圖像本身特征尋找,目標周圍的環(huán)境對跟蹤也有幫助,對loss進行改進。

          最后看下消融實驗以及最后的結果

          由該圖可以看到siamFC++改進的各部分對于最后結果的提升(與原始的siamFC比較),位置回歸對EAO提升最大,the regression branch (0.094), data source diversity (0.063/0.010), stronger backbone (0.026), and better head structure (0.020).


          四. GradNet

          GradNet主要解決的是網(wǎng)絡在線更新template的問題,對于template的更新主要有兩種一種是類似與Dasiamrpn融合template,另一種是梯度下降對template進行修正。作者的方法對標第二種,第二種最大的缺點在于要迭代很多次,GradNet思路清奇的訓練了一個網(wǎng)絡來替代這么多次梯度下降迭代優(yōu)化。

          關于這篇論文的筆記,請參考我在github上寫的GradNet筆記

          五. 統(tǒng)一檢測與單目標跟蹤的網(wǎng)絡

          詳細筆記同樣參見我在github上寫的統(tǒng)一檢測與單目標跟蹤筆記

          首先闡述下筆者關于將檢測直接應用到單目標跟蹤領域的難點:

          • 如何將exemplar與srch img 融合到一起,目的就是告訴網(wǎng)絡需要跟蹤的對象,實際上也就是作者提出的第一個難點。

          • 網(wǎng)絡不可能提前知道要跟蹤的目標從而進行相應的訓練,如何使得網(wǎng)絡能夠識別出“臨時”挑選的目標。采用meta-learning的方法如何避免過擬合。

          • siam成功的地方在于將上述兩個問題轉化為匹配問題,即在srch img中匹配exemplar,siam的問題在于網(wǎng)絡的判別性,即不會匹配到背景,另外exemplar是否更新,如何更新,尺度變換問題如何解決。

          然后這篇論文對于這幾個問題的解決方案summary是:

          • 提出了target-guidance module(TGM)將exemplar圖像融合到檢測的feature map里。

          • 在線學習Meta-learning對classification head微調。

          • 在線更新權重

          • anchored updating strategy減少Meta-learning的overfitting。


          參考文獻

          [1]SiameseFC:Luca Bertinetto, Jack Valmadre, Jo?o F. Henriques, Andrea Vedaldi, Philip H.S. Torr. "Fully-Convolutional Siamese Networks for Object Tracking." ECCV workshop (2016).

          [2]SiamRPN:Bo Li, Wei Wu, Zheng Zhu, Junjie Yan. "High Performance Visual Tracking with Siamese Region Proposal Network." CVPR (2018Spotlight).

          [3]DaSiamRPN:Zheng Zhu, Qiang Wang, Bo Li, Wu Wei, Junjie Yan, Weiming Hu."Distractor-aware Siamese Networks for Visual Object Tracking." ECCV (2018).

          [4]SiamDW:Zhipeng Zhang, Houwen Peng."Deeper and Wider Siamese Networks for Real-Time Visual Tracking." CVPR (2019oral).

          [5]SiamMask:Qiang Wang, Li Zhang, Luca Bertinetto, Weiming Hu, Philip H.S. Torr."Fast Online Object Tracking and Segmentation: A Unifying Approach." CVPR (2019).

          [6]SiamRPN++:Bo Li, Wei Wu, Qiang Wang, Fangyi Zhang, Junliang Xing, Junjie Yan."SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks." CVPR (2019oral).

          [7]GradNet:Peixia Li, Boyu Chen, Wanli Ouyang, Dong Wang, Xiaoyun Yang, Huchuan Lu."GradNet: Gradient-Guided Network for Visual Object Tracking." ICCV (2019oral).

          [8]Lianghua Huang, Xin Zhao, Kaiqi Huang."Bridging the Gap Between Detection and Tracking: A Unified Approach." ICCV (2019).

          [9]Yinda Xu,Zeyu Wang,Zuoxin Li,Yuan Ye,Gang Yu."SiamFC++: Towards Robust and Accurate Visual Tracking with Target Estimation Guidelines." AAAI 2020


          END



          雙一流大學研究生團隊創(chuàng)建,專注于目標檢測與深度學習,希望可以將分享變成一種習慣!

          整理不易,點贊三連↓

          瀏覽 44
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天堂资源中文在线 | 精品人妻一区二区乱码 | 豆花视频精品一区 | 美女免费在线被干 | 人人摸人人干人人插 |