天天看點

深度學習在目标跟蹤中的應用

雷鋒網(公衆号:雷鋒網)按:本文作者徐霞清,中國科學院計算技術研究所vipl組碩士生,導師常虹副研究員。研究方向為深度學習與計算機視覺(目标跟蹤等)。

深度學習在目标跟蹤中的應用

開始本文之前,我們首先看上方給出的3張圖檔,它們分别是同一個視訊的第1,40,80幀。在第1幀給出一個跑步者的邊框(bounding-box)之後,後續的第40幀,80幀,bounding-box依然準确圈出了同一個跑步者。以上展示的其實就是目标跟蹤(visual object tracking)的過程。目标跟蹤(特指單目标跟蹤)是指:給出目标在跟蹤視訊第一幀中的初始狀态(如位置,尺寸),自動估計目标物體在後續幀中的狀态。

人眼可以比較輕松的在一段時間内跟住某個特定目标。但是對機器而言,這一任務并不簡單,尤其是跟蹤過程中會出現目标發生劇烈形變、被其他目标遮擋或出現相似物體幹擾等等各種複雜的情況。過去幾十年以來,目标跟蹤的研究取得了長足的發展,尤其是各種機器學習算法被引入以來,目标跟蹤算法呈現百花齊放的态勢。2013年以來,深度學習方法開始在目标跟蹤領域展露頭腳,并逐漸在性能上超越傳統方法,取得巨大的突破。本文首先簡要介紹主流的傳統目标跟蹤方法,之後對基于深度學習的目标跟蹤算法進行介紹,最後對深度學習在目标跟蹤領域的應用進行總結和展望。

目前跟蹤算法可以被分為産生式(generative model)和判别式(discriminative model)兩大類别。

産生式方法運用生成模型描述目标的表觀特征,之後通過搜尋候選目标來最小化重構誤差。比較有代表性的算法有稀疏編碼(sparse coding),線上密度估計(online density estimation)和主成分分析(pca)等。産生式方法着眼于對目标本身的刻畫,忽略背景資訊,在目标自身變化劇烈或者被遮擋時容易産生漂移。

與之相對的,判别式方法通過訓練分類器來區分目标和背景。這種方法也常被稱為tracking-by-detection。近年來,各種機器學習算法被應用在判别式方法上,其中比較有代表性的有多示例學習方法(multiple instance learning), boosting和結構svm(structured svm)等。

判别式方法因為顯著區分背景和前景的資訊,表現更為魯棒,逐漸在目标跟蹤領域占據主流地位。值得一提的是,目前大部分深度學習目标跟蹤方法也歸屬于判别式架構。

近年來,基于相關濾波(correlation filter)的跟蹤方法因為速度快,效果好吸引了衆多研究者的目光。相關濾波器通過将輸入特征回歸為目标高斯分布來訓練 filters。并在後續跟蹤中尋找預測分布中的響應峰值來定位目标的位置。

相關濾波器在運算中巧妙應用快速傅立葉變換獲得了大幅度速度提升。目前基于相關濾波的拓展方法也有很多,包括核化相關濾波器(kernelized correlation filter, kcf), 加尺度估計的相關濾波器(dsst)等。

|基于深度學習的目标跟蹤方法

不同于檢測、識别等視覺領域深度學習一統天下的趨勢,深度學習在目标跟蹤領域的應用并非一帆風順。其主要問題在于訓練資料的缺失:深度模型的魔力之一來自于對大量标注訓練資料的有效學習,而目标跟蹤僅僅提供第一幀的bounding-box作為訓練資料。

這種情況下,在跟蹤開始針對目前目标從頭訓練一個深度模型困難重重。目前基于深度學習的目标跟蹤算法采用了幾種思路來解決這個問題,下面将依據思路的不同展開介紹,并在最後介紹目前跟蹤領域出現的運用遞歸神經網絡(recurrent neural network)解決目标跟蹤問題的新思路。

在目标跟蹤的訓練資料非常有限的情況下,使用輔助的非跟蹤訓練資料進行預訓練,擷取對物體特征的通用表示(general representation ),在實際跟蹤時,通過利用目前跟蹤目标的有限樣本資訊對預訓練模型微調(fine-tune), 使模型對目前跟蹤目标有更強的分類性能,這種遷移學習的思路極大的減少了對跟蹤目标訓練樣本的需求,也提高了跟蹤算法的性能。

這個方面代表性的作品有dlt和so-dlt,都出自香港科技大學王乃岩博士。

dlt(nips2013)

learning a deep compact image representation for visual tracking

深度學習在目标跟蹤中的應用

dlt是第一個把深度模型運用在單目标跟蹤任務上的跟蹤算法。它的主體思路如上圖所示:

(1)   先使用棧式降噪自編碼器(stacked denoising autoencoder,sdae)在tiny images dataset這樣的大規模自然圖像資料集上進行無監督的離線預訓練來獲得通用的物體表征能力。預訓練的網絡結構如上圖(b)所示,一共堆疊了4個降噪自編碼器, 降噪自編碼器對輸入加入噪聲,通過重構出無噪聲的原圖來獲得更魯棒的特征表達能力。sdae1024-2560-1024-512-256這樣的瓶頸式結構設計也使獲得的特征更加compact。 (2)   之後的線上跟蹤部分結構如上圖(c)所示,取離線sdae的encoding部分疊加sigmoid分類層組成了分類網絡。此時的網絡并沒有擷取對目前被跟蹤物體的特定表達能力。此時利用第一幀擷取正負樣本,對分類網絡進行fine-tune獲得對目前跟蹤目标和背景更有針對性的分類網絡。在跟蹤過程中,對目前幀采用粒子濾波(particle filter)的方式提取一批候選的patch(相當于detection中的proposal),這些patch輸入分類網絡中,置信度最高的成為最終的預測目标。 (3)   在目标跟蹤非常重要的模型更新政策上,該論文采取限定門檻值的方式,即當所有粒子中最高的confidence低于門檻值時,認為目标已經發生了比較大的表觀變化,目前的分類網絡已經無法适應,需要進行更新。

小結:dlt作為第一個将深度網絡運用于單目标跟蹤的跟蹤算法,首先提出了“離線預訓練+線上微調”的思路,很大程度的解決了跟蹤中訓練樣本不足的問題,在cvpr2013提出的otb50資料集上的29個跟蹤器中排名第5。

但是dlt本身也存在一些不足: (1)   離線預訓練采用的資料集tiny images dataset隻包含32*32大小的圖檔,分辨率明顯低于主要的跟蹤序列,是以sdae很難學到足夠強的特征表示。 (2)   離線階段的訓練目标為圖檔重構,這與線上跟蹤需要區分目标和背景的目标相差甚大。 (3)   sdae全連接配接的網絡結構使其對目标的特征刻畫能力不夠優秀,雖然使用了4層的深度模型,但效果仍低于一些使用人工特征的傳統跟蹤方法如struck等。

so-dlt(arxiv2015)

transferring rich feature hierarchies for robust visual tracking

so-dlt延續了dlt利用非跟蹤資料預訓練加線上微調的政策,來解決跟蹤過程中訓練資料不足的問題,同時也對dlt存在的問題做了很大的改進。

深度學習在目标跟蹤中的應用

(1)   使用cnn作為擷取特征和分類的網絡模型。如上圖所示,so-dlt使用了的類似alexnet的網絡結構,但是有幾大特點:

一、針對跟蹤候選區域的大小将輸入縮小為100*100,而不是一般分類或檢測任務中的224*224。 二、網絡的輸出為50*50大小,值在0-1之間的機率圖(probability map),每個輸出像素對應原圖2*2的區域,輸出值越高則該點在目标bounding-box中的機率也越高。這樣的做法利用了圖檔本身的結構化資訊,友善直接從機率圖确定最終的bounding-box,避免向網絡輸入數以百計的proposal,這也是so-dlt structured output得名的由來。 三、在卷積層和全連接配接層中間采用spp-net中的空間金字塔采樣(spatial pyramid pooling)來提高最終的定位準确度。

(2)   在離線訓練中使用imagenet 2014的detection資料集使cnn獲得區分object和非object(背景)的能力。

深度學習在目标跟蹤中的應用

so-dlt線上跟蹤的pipeline如上圖所示:

(1)   處理第t幀時,首先以第t-1幀的的預測位置為中心,從小到大以不同尺度crop區域放入cnn當中,當cnn輸出的probability map的總和高于一定門檻值時,停止crop, 以目前尺度作為最佳的搜尋區域大小。 (2)   標明第t幀的最佳搜尋區域後,在該區域輸出的probability map上采取一系列政策确定最終的bounding-box中心位置和大小。 (3)   在模型更新方面,為了解決使用不準确結果fine-tune導緻的drift問題,使用了long-term 和short-term兩個cnn,即cnns和cnnl。cnns更新頻繁,使其對目标的表觀變化及時響應。cnnl更新較少,使其對錯誤結果更加魯棒。二者結合,取最confident的結果作為輸出。進而在adaptation和drift之間達到一個均衡。

小結:so-dlt作為large-scale cnn網絡在目标跟蹤領域的一次成功應用,取得了非常優異的表現:在cvpr2013提出的otb50資料集上ope準确度繪圖(precision plot)達到了0.819, ope成功率繪圖(success plot)達到了0.602。遠超當時其它的state of the art。

so-dlt有幾點值得借鑒:

(1)   針對tracking問題設計了有針對性的網絡結構。 (2)   應用cnns和cnnl用ensemble的思路解決update 的敏感性,特定參數取多值做平滑,解決參數取值的敏感性。這些措施目前已成為跟蹤算法提高評分的殺手锏。

但是so-dlt離線預訓練依然使用的是大量無關聯圖檔,作者認為使用更貼合跟蹤實質的時序關聯資料是一個更好的選擇。

2015年以來,在目标跟蹤領域應用深度學習興起了一股新的潮流。即直接使用imagenet這樣的大規模分類資料庫上訓練出的cnn網絡如vgg-net獲得目标的特征表示,之後再用觀測模型(observation model)進行分類獲得跟蹤結果。

這種做法既避開了跟蹤時直接訓練large-scale cnn樣本不足的困境,也充分利用了深度特征強大的表征能力。這樣的工作在icml15,iccv15,cvpr16均有出現。下面介紹兩篇發表于iccv15的工作。

fcnt(iccv15)

visual tracking with fully convolutional networks

作為應用cnn特征于物體跟蹤的代表作品,fcnt的亮點之一在于對imagenet上預訓練得到的cnn特征在目标跟蹤任務上的性能做了深入的分析,并根據分析結果設計了後續的網絡結構。

fcnt主要對vgg-16的conv4-3和conv5-3層輸出的特征圖譜(feature map)做了分析,并得出以下結論:

(1)   cnn 的feature map可以用來做跟蹤目标的定位。 (2)   cnn 的許多feature map存在噪聲或者和物體跟蹤區分目标和背景的任務關聯較小。 (3)   cnn不同層的特征特點不一。高層(conv5-3)特征擅長區分不同類别的物體,對目标的形變和遮擋非常魯棒,但是對類内物體的區分能力非常差。低層(conv4-3)特征更關注目标的局部細節,可以用來區分背景中相似的distractor,但是對目标的劇烈形變非常不魯棒。
深度學習在目标跟蹤中的應用

依據以上分析,fcnt最終形成了如上圖所示的架構結構:

(1)   對于conv4-3和conv5-3特征分别建構特征選擇網絡sel-cnn(1層dropout加1層卷積),選出和目前跟蹤目标最相關的feature map channel。 (2)   對篩選出的conv5-3和conv4-3特征分别建構捕捉類别資訊的gnet和區分distractor(背景相似物體)的snet(都是兩層卷積結構)。 (3)   在第一幀中使用給出的bounding-box生成熱度圖(heat map)回歸訓練sel-cnn, gnet和snet。 (4)   對于每一幀,以上一幀預測結果為中心crop出一塊區域,之後分别輸入gnet和snet,得到兩個預測的heatmap,并根據是否有distractor決定使用哪個heatmap 生成最終的跟蹤結果。

小結:fcnt根據對cnn不同層特征的分析,建構特征篩選網絡和兩個互補的heat-map預測網絡。達到有效抑制distractor防止跟蹤器漂移,同時對目标本身的形變更加魯棒的效果,也是ensemble思路的又一成功實作。

在cvpr2013提出的otb50資料集上ope準确度繪圖(precision plot)達到了0.856,ope成功率繪圖(success plot)達到了0.599,準确度繪圖有較大提高。實際測試中fcnt的對遮擋的表現不是很魯棒,現有的更新政策還有提高空間。

hierarchical convolutional features for visual tracking(iccv15)

這篇是作者在2015年度看到的最簡潔有效的利用深度特征做跟蹤的論文。其主要思路是提取深度特征,之後利用相關濾波器确定最終的bounding-box。

這篇論文簡要分析了vgg-19特征( conv3_4, conv4_4, conv5_4 )在目标跟蹤上的特性,得出的結論和fcnt有異曲同工之處,即:

(1)   高層特征主要反映目标的語義特性,對目标的表觀變化比較魯棒。 (2)   低層特征儲存了更多細粒度的空間特性,對跟蹤目标的精确定位更有效。
深度學習在目标跟蹤中的應用

基于以上結論,作者給出了一個粗粒度到細粒度(coarse-to-fine)的跟蹤算法即:

(1)   第一幀時,利用conv3_4,conv4_4,conv5_4特征的插值分别訓練得到3個相關濾波器。 (2)   之後的每幀,以上一幀的預測結果為中心crop出一塊區域,擷取三個卷積層的特征,做插值,并通過每層的相關濾波器預測二維的confidence score。 (3)   從conv5_4開始算出confidence score上最大的響應點,作為預測的bounding-box的中心位置,之後以這個位置限制下一層的搜尋範圍,逐層向下做更細粒度的位置預測,以最低層的預測結果作為最後輸出。具體公式如下:
深度學習在目标跟蹤中的應用
(4)   利用目前跟蹤結果對每一層的相關濾波器做更新。

小結:這篇文章針對vgg-19各層特征的特點,由粗粒度到細粒度最終準确定位目标的中心點。在cvpr2013提出的otb50資料集上ope準确度繪圖達到了0.891,ope成功率繪圖達到了0.605,相較于fcnt和so-dlt都有提高,實際測試時性能也相當穩定,顯示出深度特征結合相關濾波器的巨大優勢。

但是這篇文章中的相關濾波器并沒有對尺度進行處理,在整個跟蹤序列中都假定目标尺度不變。在一些尺度變化非常劇烈的測試序列上如carscale上最終預測出的bounding-box尺寸大小和目标本身大小相差較大。

以上兩篇文章均是應用預訓練的cnn網絡提取特征提高跟蹤性能的成功案例,說明利用這種思路解決訓練資料缺失和提高性能具有很高的可行性。但是分類任務預訓練的cnn網絡本身更關注區分類間物體,忽略類内差别。

目标跟蹤時隻關注一個物體,重點區分該物體和背景資訊,明顯抑制背景中的同類物體,但是還需要對目标本身的變化魯棒。分類任務以相似的一衆物體為一類,跟蹤任務以同一個物體的不同表觀為一類,使得這兩個任務存在很大差别,這也是兩篇文章融合多層特征來做跟蹤以達到較理想效果的動機所在。

1和2中介紹的解決訓練資料不足的政策和目标跟蹤的任務本身存在一定偏離。有沒有更好的辦法呢?

vot2015冠軍mdnet給出了一個示範。該方法在otb50上也取得了ope準确度繪圖0.942,ope成功率繪圖0.702的驚人得分。

mdnet(cvpr2016)

learning multi-domain convolutional neural networks for visual tracking

意識到圖像分類任務和跟蹤之間存在巨大差别,mdnet提出直接用跟蹤視訊預訓練cnn獲得general的目标表示能力的方法。但是序列訓練也存在問題,即不同跟蹤序列跟蹤目标完全不一樣,某類物體在一個序列中是跟蹤目标,在另外一個序列中可能隻是背景。

不同序列中目标本身的表觀和運動模式、環境中光照、遮擋等情形相差甚大。這種情況下,想要用同一個cnn完成所有訓練序列中前景和背景區分的任務,困難重重。

最終mdnet提出multi-domain的訓練思路和如上圖所示的multi-domain network。該網絡分為共享層和domain-specific層兩部分。

即: 将每個訓練序列當成一個單獨的domain,每個domain都有一個針對它的二分類層(fc6),用于區分目前序列的前景和背景,而網絡之前的所有層都是序列共享的。這樣共享層達到了學習跟蹤序列中目标general的特征表達的目的,而domain-specific層又解決了不同訓練序列分類目标不一緻的問題。

具體訓練時,mdnet的每個mini-batch隻由一個特定序列的訓練資料構成,隻更新共享層和針對目前序列的特定fc6層。這樣共享層中獲得了對序列共有特征的表達能力,如對光照、形變等的魯棒性。mdnet的訓練資料也非常有意思,即測試otb100資料集時,利用vot2013-2015的不重合的58個序列來做預訓練。測試vot2014資料集時,利用otb100上不重合的89個序列做預訓練。這種交替利用的思路也是第一次在跟蹤論文中出現。

線上跟蹤階段針對每個跟蹤序列,mdnet主要有以下幾步:

(1)   随機初始化一個新的fc6層。 (2)   使用第一幀的資料來訓練該序列的bounding box回歸模型。 (3)   用第一幀提取正樣本和負樣本,更新fc4, fc5和fc6層的權重。 (4)   之後産生256個候選樣本,并從中選擇置信度最高的,之後做bounding-box regression得到最終結果。 (5)   目前幀最終結果置信度較高時,采樣更新樣本庫,否則根據情況對模型做短期或者長期更新。

mdnet有兩點值得借鑒之處:

(1)   mdnet應用了更為貼合跟蹤實質的視訊資料來做訓練,并提出了創新的multi-domain訓練方法和訓練資料交叉運用的思路。 (2)   此外mdnet從檢測任務中借鑒了不少行之有效的政策,如難例挖掘(hard negative mining),bounding box回歸等。尤其是難例回歸通過重點關注背景中的難點樣本(如相似物體等)顯著減輕了跟蹤器漂移的問題。這些政策也幫助mdnet在tpami2015 otb100資料集上ope準确度繪圖從一開始的0.825提升到0.908, ope成功率繪圖從一開始的0.589提升到0.673。

但是也可以發現mdnet的總體思路和rcnn比較類似,需要前向傳遞上百個proposal,雖然網絡結構較小,速度仍較慢。且boundingbox回歸也需要單獨訓練,是以mdnet還有進一步提升的空間。

近年來rnn尤其是帶有門結構的lstm,gru等在時序任務上顯示出了突出的性能。不少研究者開始探索如何應用rnn來做解決現有跟蹤任務中存在的問題,以下簡要介紹兩篇在這方面比較有代表性的探索文章。

rtt(cvpr16)

recurrently target-attending tracking

這篇文章的出發點比較有意思,即利用多方向遞歸神經網絡(multi-directional recurrent neural network)來模組化和挖掘對整體跟蹤有用的可靠目标部分(reliable part),實際上是二維平面上的rnn模組化,最終解決預測誤差累積和傳播導緻的跟蹤漂移問題。其本身也是對part-based跟蹤方法和相關濾波(correlation filter)方法的改進和探索。

rtt的整體架構如上圖所示:

深度學習在目标跟蹤中的應用
(1)   首先對每一幀的候選區域進行網狀分塊,對每個分塊提取hog特征,最終相連獲得基于塊的特征。
深度學習在目标跟蹤中的應用
(2)   得到分塊特征以後,rtt利用前5幀訓練多方向rnn來學習分塊之間大範圍的空間關聯。 通過在4個方向上的前向推進,rnn計算出每個分塊的置信度,最終每個塊的預測值組成了整個候選區域的置信圖(confidence map)。受益于rnn的recurrent結構,每個分塊的輸出值都受到其他關聯分塊的影響,相比于僅僅考慮目前塊的準确度更高,避免單個方向上遮擋等的影響,增加可靠目标部分在整體置信圖中的影響。 (3)   由rnn得出置信圖之後,rtt執行了另外一條pipeline。即訓練相關濾波器來獲得最終的跟蹤結果。值得注意的是,在訓練過程中rnn的置信圖對不同塊的filter做了權重,達到抑制背景中的相似物體,增強可靠部分的效果。 (4)   rtt提出了一個判斷目前跟蹤物體是否被遮擋的政策,用其判斷是否更新。即計算目标區域的置信度和,并與曆史置信度和的移動平均數(moving average)做一個對比,低于一定比例,則認為受到遮擋,停止模型更新,防止引入噪聲。

小結:rtt是第一個利用rnn來模組化part-based跟蹤任務中複雜的大範圍關聯關系的跟蹤算法。在cvpr2013提出的otb50資料集上ope準确度繪圖為0.827,ope成功率繪圖達到了0.588。相比于其他基于傳統特征的相關濾波器算法有較大的提升,說明rnn對關聯關系的挖掘和對濾波器的限制确實有效。rtt受制于參數數目的影響,隻選用了參數較少的普通rnn結構(采用hog特征其實也是降低參數的另外一種折中政策)。結合之前介紹的解決訓練資料缺失的措施,rtt可以運用更好的特征和rnn結構,效果還有提升空間。

deeptracking: seeing beyond seeing using recurrent neural networks(aaai16)

這篇文章的應用場景是機器人視覺,目标是将傳感器獲得的有遮擋的環境資訊還原為真實的無遮擋的環境資訊。嚴格來說這篇文章僅輸出還原後的圖檔,沒有明确預測目标的位置和尺寸等狀态資訊,和之前介紹的所有文章的做法都不一樣,不妨稱為一種新的跟蹤任務。

在模型方面,不同于rtt用rnn模組化二維平面關聯,deeptracking利用rnn來做序列關聯的模組化,并最終實作了端到端的跟蹤算法。

傳統的貝葉斯跟蹤方法一般采用高斯分布(卡爾曼濾波kalman filter)或者離散的采樣點權重(粒子濾波particle filter)來近似需要求解的後驗機率 p(yt|x1:t) (yt 為需要預測的機器人周圍的真實場景, xt 為傳感器直接獲得的場景資訊),其表達能力有限。deeptracking拓展了傳統的貝葉斯跟蹤架構,并利用rnn強大的表征能力來模組化後驗機率。

具體而言deeptracking引入了一個具有馬爾可夫性質的隐變量 ht ,認為其反映了真實環境的全部資訊。最終需要預測的 yt 包含了 ht,包含了 ht 的部分資訊,可由 ht 得到。假設 bt 為關于 ht的信念(belief),對應于後驗機率:bel(ht) = p(yt|ht) 。之後經典貝葉斯跟蹤架構中由 p(yt-1|x1:t-1) 到 p(yt|x1:t) 到的時序更新在這裡轉化為:bt = f(bt-1,xt)和 p(ty|x1:t) = p(yt|bt)。

深度學習在目标跟蹤中的應用

給出形式表達之後的關鍵是,如何将其對應到rnn的架構中去。deeptracking的核心思路是用利用兩個權重 wf 和 wp 來分别模組化 f(bt-1, xt)和p(yt|bt ),将bt 定義為rnn時序之間傳遞的memory 資訊。此時,如上圖所示rnn的各個狀态和推進流程就和跟蹤任務完美的對接上了。

深度學習在目标跟蹤中的應用

實驗部分,deeptracking采用模拟的2維傳感器資料和如上圖所示的3層rnn的網絡結構,bt 對應于第三層的網絡輸出。通過無監督的預測 xt+n 的任務來使網絡獲得預測 yt 的潛在能力。

小結:deeptracking作為用rnn模組化跟蹤時序任務的作品,其亮點主要在對rnn和貝葉斯架構融合的理論模組化上。實驗展示了該方法在模拟場景下的不錯效果,但是模拟資料和真實場景差距很大,能否在實際應用中有比較好的表現還有待商榷。

本文介紹了深度學習在目标跟蹤領域應用的幾種不同思路。三種解決訓練資料缺失的思路各有千秋,作者認為使用序列預訓練的方法更貼合跟蹤任務的本質是以值得關注(近期也有應用siamese network和視訊資料訓練的跟蹤算法湧現,具體參見王乃岩博士在vlase公衆号上的介紹文章《object tracking新思路》)。

總的來說,基于rnn的目标跟蹤算法還有很大提升空間。此外,目前已有的深度學習目标跟蹤方法還很難滿足實時性的要求,如何設計網絡和跟蹤流程達到速度和效果的提升,還有很大的研究空間。

緻謝:本文作者特此感謝匿名審稿人和圖森科技首席科學家王乃岩博士對本文所提出的建設性意見。

雷鋒網注:本文由深度學習大講堂授權雷鋒網釋出,如需轉載請注明作者和出處,不得删減内容。

本文作者:深度學習大講堂

繼續閱讀