一作來自Graz University of Technology,論文發表在CVPR2017上面。
tracklets:相鄰若干幀的目標物體運動軌跡
摘要:
最近的准確率較高的視頻目標檢測和跟蹤方法都包含了復雜的多階段解決方案。這篇文章中我們提出了一個ConvNet結構,能夠同時進行檢測和跟蹤,以一種簡單有效的方法解決了這一任務。
文章的貢獻主要是三個方面:
- 設置了一個ConvNet結構來同時進行檢測和跟蹤,使用了一個多任務目標函數來進行逐幀的檢測和跨幀跟蹤回歸。
- 引入了目標在時間尺度上的相關特征來輔助ConvNet進行跟蹤。
- 我們將幀與幀之間的檢測結果用跨幀的目標跟蹤軌跡聯系起來,以此來產生視頻上的精確度更高的檢測結果。
我們的ConvNet在ImageNet VID這個大規模數據集上做了評估,實現了state-of-the-art的結果。我們的方法的結果比上一次ImageNet競賽的獲勝者更好,同時也更簡單。最后,我們表明通過增加時間跨度,
能夠顯著的增加跟蹤的速度。代碼在:http://github.com/feichtenhofer/detect-track
1.簡介
由於近年來深度卷積網絡和RCNN的發展,圖片上的目標檢測取得了非常大的關注和提升。在做視頻中的目標檢測和跟蹤時,最近的方法大多是首先檢測,然后用后處理的方式,比如用一個跟蹤器來對檢測框進行跟蹤。
這樣的“tracking by detection”的方法雖然取得了不小的進步,但還是要受限於圖片檢測器。
視頻目標檢測最近掀起了一陣研究熱潮,尤其是在ImageNet VID競賽提出之后。不同於ImageNet DET競賽,VID中目標會在圖片序列中出現,並且往往伴隨着額外的挑戰:
- 數據集大小:VID中有1.3M張圖片,作為對比,DET有400K張,COCO有100K張。
- 運動模糊:由相機運動或目標運動造成。
- 圖片質量:網絡視頻片段的質量通常不如靜態圖片。
- 部分遮擋:由視角變化或者目標移動造成。
- 姿勢:不常見的姿態在視頻序列中頻繁出現。
圖1中我們展示了一些從VID數據集中采樣的圖片。
為了解決這個挑戰性的任務,最近的ImageNet VID競賽中的前幾名采用一些基於圖片檢測器的繁復的后處理方式。比如ILSVRC'15的冠軍采用兩個多階段的Faster R-CNN檢測框架,上下文抑制,多尺度訓練/測試,
ConvNet跟蹤器,基於光流的傳播和多模型。
這篇文章中,我們提出一個獨特的方法來處理真實視頻中的目標檢測問題。我們的目標是直接在多幀間加入跟蹤器來同時進行檢測和跟蹤。受到當前基於跟蹤器的相關與回歸的啟發,我們在R-FCN中加入了這樣的跟蹤。
我們用檢測和跟蹤的損失端到端地訓練了一個全卷積網絡,我們給他取名叫做D&T,因為能同時進行檢測和跟蹤。網絡的輸入包含多幀,首先通過一個ConvNet主干(如ResNet-101)來得到用於檢測和跟蹤任務的卷積特征。
我們在相鄰幀的特征響應上計算卷積互相關,在不同特征尺度上估計局部變化。在最后的卷積特征上,我們使用了一個RoI pooling層用來對bbox進行分類和回歸,同時使用了一個RoI-tracking層用來回歸bbox在不同幀間的
的變換(移位,尺度,高寬比)。最后,根據目標在多幀上的跟蹤軌跡來對整個視頻中的檢測框進行了推斷校准。
在ImageNet VID數據集上的評測顯示我們的方法能產生比ILSVRC'16冠軍更好的單模型性能,同時我們的方法有更加簡單的想法和更快的速度。此外,我們還發現加入tracking損失可以提升特征學習的表征性,來得到更好的靜態圖片檢測器,
同時我們還提出了一個非常快速的D&T版本用於實時對輸入圖片檢測。
3. D&T方法
3.1. D&T概述
我們的目標是在視頻中同時進行目標檢測和跟蹤。圖2展示了我們的D&T結構。
我們以R-FCN為基礎,將它擴展成進行多幀檢測和跟蹤的框架。給定一組由兩幀圖片組成的數據,我們的框架首先計算出用於檢測和跟蹤的卷積特征。用RPN來基於anchor產生候選框。
基於這些候選框,在位置敏感分數圖和回歸圖上應用RoI pooling,得到每一個框的分類和回歸結果。
我們通過引入一個回歸器對這一結構進行了擴展,將兩張圖片的中間部分的位置敏感回歸圖與相關圖一起輸入RoI tracking 層,得到box從一幀到另一幀的的坐標變換。因此兩幀間的對應關系
通過在同一候選區域做池化來得到。RoI tracking任務回歸了目標在幀間的坐標變換,我們通過在R-FCN損失函數中加入tracking loss 來對它進行了訓練。tracking loss在ground truth上進行計算,計算預測的track和GT的track坐標的soft L1.
這樣的tracking方式可以看作對論文[13]中的單目標跟蹤進行的一個多目標擴展。這個方法的一個缺點是沒用利用平移變換性,意味着tracker必須從訓練數據中學習所有可能的變換。因此需要在訓練過程中進行額外的數據增廣(縮放和平移)。
基於相關濾波的tracking方式可以利用平移變化性,因為相關性是平移變換的。最近的相關性tracker通常在high-level的卷積特征上運行,在待搜索圖片和跟蹤模板之間計算相關性。得到的相關性圖衡量了模板和搜索圖片間的相似性。因此,
可以通過找相關性響應圖的最大值來找目標的位移。
不用於典型的用於單目標跟蹤的相關性tracker,我們旨在同時進行多目標跟蹤。我們在特征圖上的所有位置都計算相關性圖,然后讓RoI tracking在這些特征圖上運行來得到更好的跟蹤回歸。我們的框架可以進行端到端的訓練,輸入視頻中的幀,
得到目標檢測的結果和軌跡。
3.2 object detection and tracking in R-FCN
我們的框架在時刻t輸入幀\(I^t\in R^{H_0\times W_0 \times 3}\),然后將其輸入一個backbone卷積(i.e. ResNet-101)來得到feature map \(x_l^t \in R^{H_l\times W_l\times D_l}\),其中l代表卷積層l。在R-FCN中,我們通過修改conv5 使其擁有unit spatial stride,讓最后一個卷積層的實際stride從32降到16,同時還通過使用膨脹卷積來增加了感受野。
我們總體系統構建在R-FCN的基礎上,分兩個stage:首先使用RPN網絡提取候選的ROI;其次,通過position-sensitive ROI pooling層來進行區域分類,把每個region分為不同的類別或者背景。
現在有一對在時間t和\(t+\tau\)采樣的幀\(I^t,I^{t+\tau}\),將其作為網絡的輸入。現有一個幀間的bbox回歸層,它在bbox回歸特征\(\{x_{reg}^t,x_{reg}^{t+\tau}\}\)上做position sensitive RoI pooling操作來預測RoI從時間t到\(t+\tau\)的坐標變換\(\Delta^{t+\tau}=(\Delta_x^{t+\tau},\Delta_y^{t+\tau},\Delta_w^{t+\tau},\Delta_h^{t+\tau})\)。圖3展示了這個方法的示意圖。
圖3.我們的方法圖解。輸入圖片首先通過一個全卷積網絡來得到feature maps。在不同尺度的多個feature map上進行關聯層操作(圖中僅展示了最粗糙的尺度),同時估計兩幀的局部特征相似性。最后,position sensitive ROI-pooling在每一幀的卷積特征上產生每一幀的檢測結果,同時在堆疊的特征圖和關聯特征的基礎上得到兩幀中框的回歸偏差(ROI-tracking)。
3.3 multitask detection and tracking objective
為了學習回歸器,我們對Fast R-CNN的多任務損失函數進行了擴展,除了分類損失\(L_{cls}\)和回歸損失\(L_{reg}\),還加入了一個對兩幀間的跟蹤結果的度量\(L_{tra}\)。對於一個iteration和一個包含N個ROI的batch,網絡預測了softmax probabilities \(\{p_i\}_{i=1}^N\),
回歸 offsets \(\{b_i\}_{i=1}^N\), 以及跨幀的 ROI-tracks \(\{\Delta_i^{t+\tau}\}_{i=1}^{N_{tra}}\)。我們總體的目標函數形式為:
一個ROI的groundtruth 的類別標簽為\(c_i^*\),預測標簽的softmax 分數為\(p_{i,c^*}\)。\(b_i^*\)是groundtruth regression target,\(\Delta_i^{*,t+\tau}\)是track regression target。\([c_i^*>0]\)函數判斷ROI是背景還是前景。\(L_{cls}(p_{i,c^*})=-log(p_{i,c^*})\)是用於box分類的交叉熵損失函數,\(L_{reg}和L_{tra}\)是bbox和track回歸的損失,均為smooth L1函數。tradeoff參數被設置為\(\lambda=1\)。ROIs同GT的關系如下:如果RoI和GT box的IOU超過0.5,則將類別\(c^*\)和回歸目標\(b^*\)分配給它;僅當GT在兩幀中都出現時評估tracking target。因此,公式(1)的第一項用於training batch的所有N個框,第二項僅用於被分類為前景的框,最后一項僅用於在GT在兩幀中都出現的框。
在軌跡回歸中我們使用了R-CNN中的bbox回歸變量。幀t里面的單目標有一個GT框坐標\(B_t=(B_x^t,B_y^t,B_w^t,B_h^t)\),在\(t+\tau\)幀中也有相似的\(B^{t+\tau}\),表示框在水平和豎直方向的中心坐標和框的高寬。目標的tracking 回歸的值\(\Delta^{*,t+\tau}=\{\Delta_x^{*,t+\tau},\Delta_y^{*,t+\tau},\Delta_w^{*,t+\tau},\Delta_h^{*,t+\tau}\}\)定義為:
3.4. correlation features for object tracking
不同於典型的單目標相關性tracker,我們希望能夠同時跟蹤多目標。我們在特征圖上的每一個位置都計算相關性響應圖,然后讓ROI pooling在這些特征圖上進行操作得到track 回歸結果。考慮到特征圖上的所有可能的circular shifts會導致輸出一個很大的維度,同時也會產生較大的位置偏移。因此,我們對局部周圍的相關性進行了嚴格的限制。這個idea最早是在flownet中用於光流估計的,其中在卷積塊中加入了一個關聯層來進行幀間的特征點匹配。關聯層在兩個特征圖\(x_l^t,x_l^{t+\tau}\)上進行了逐點特征比較。
其中p q是以位置i,j為中心的邊長為d的方塊的偏移量。因此,關聯層的輸出是一個大小為的特征圖。等式(4)可以被看為兩個特征圖在局部大小為d的方形窗內的關聯。我們在conv3,conv4和conv5都計算了這一特征局部關聯。我們在圖4中可視化了兩個樣本序列的關聯。
為了使用這些特征用於track-regression,我們將bbox features和關聯特征堆疊在一起得到\(x_{corr}^{t,t+\tau},x_{reg}^t,x_{reg}^{t+\tau}\),然后在堆疊后的特征上做ROI pooling。
4. linking tracklets to object tubes
精度高的目標檢測方法的一個弊端是,受限於硬件的限制,一次性能處理的幀數不多。因此,精度和處理數量之間必須做一個權衡。因為視頻中有冗余的信息和目標在每一幀中連續出現,我們可以使用幀間track來將檢測結果連接起來並建立長時的物體軌跡。最后,我們應用了在動作定位中的一套方法來進行幀間檢測結果的連接。
設時間t的幀的檢測結果為\(D_i^{t,c}=\{x_i^t,y_i^t,w_i^t,h_i^t,p_{i,c}^t\}\),其中\(D_{I}^{t,c}\)是索引為i的框,中心為\(x_i^t,y_i^t\),寬為\(w_i^t\),高為\(h_i^t\),\(p_{i,c}^t\)是框為c類的概率。同時,設軌跡\(T_i^{t,t+\tau}=\{x_i^t,y_i^t,w_i^t,h_i^t;x_i^t+\Delta_x^{t+\tau},y_i^t+\Delta_y^{t+\tau},w_i^t+\Delta_w^{t+\tau},h_i^t+\Delta_h^{t+\tau}\}\),描述了框從幀t到\(t+\tau\)的變換。現在我們可以定義一個聯合了檢測結果和跟蹤的逐類別的linking score:
這里\(\psi\)為1,如果track 對應的\(T^{t,t+\tau}\)和檢測框\(D_i^t,D_j^{t+\tau}\)的IOU大於0.5。這很重要,因為track regressor的輸出不需要和box regressor的輸出完全匹配。
然后可以通過最大化持續時間T上的視頻的分數來得到最佳路徑。
等式(7)可以用Viterbi算法進行高效求解。一旦求得最優路徑,相關的檢測結果被移除,然后繼續在剩下的區域繼續找最優路徑。
結果:
79.8mAP,7.1fps。backbone:resnet101,\(\tau=1\).GPU:titan x