1. 程式人生 > >【論文筆記】視訊物體檢測(VID)系列 FGFA:Flow-Guided Feature Aggregation for Video Object Detection

【論文筆記】視訊物體檢測(VID)系列 FGFA:Flow-Guided Feature Aggregation for Video Object Detection

1.Abstract

視訊中的物體檢測會受到諸如運動模糊、視訊散焦、奇特姿態等的影響。現有的工作嘗試從box-level使用temporal資訊,但是這種方法不能端到端地進行訓練。我們提出了FGFA,在frame-level使用temporal資訊。它將相鄰幀在motion paths上的特徵聚合到當前幀的特徵中,因此提高了視訊識別的精度。我們的方法極大地提升了ImageNet VID上的single-frame baselines。特別是在識別快速移動的物體方面,此方法和Deep feature flow一起贏得了ImageNet 2017

2.Introduction

物體檢測一般都是二階段結構,首先CNN提取feature map,然後檢測特定的網路用於從feature maps 中生成檢測結果。
這些方法對於still image效果很好,但是直接用到vedio上效果會惡化很多,例如state-of-the-art RFCN+ResNet-101在對快速運動中的物體進行識別的時候效果惡化得很厲害
然後,視訊中擁有豐富的對於單個物體例項的資訊,通常會在一小段時間中的多個snapshots看到,這些時間資訊用在現有的視訊物體檢測的方法中,則表現為:首先用物體檢測器在單幀上進行檢測,然後通過專用的後處理方法將這些bbox組合起來,後處理通常是通過現在的motion estimation的方法,例如光流,物體跟蹤等。這些方法不會提高檢測質量,效能的提升是來自啟發式的後處理而不是有原則的學習過程。對於這類方法沒有端到端的學習過程。我們把這些方法叫做box level methods
我們希望能夠利用時間資訊提升檢測或識別的質量,以一種有原則的方式。受影象識別的啟發,特徵很重要,因此我們利用時間域的聚合提升單幀特徵的學習。注意,同一物體的特徵用於視訊運動的原因,在不同幀是空間不對齊的。盲目的特徵聚合可能會使效能變差,這說明在學習過程中對運動進行良好的建模很重要。
在此工作中,我們提出了FGFA,如圖1所示,特徵提取的網路在單幀上提取單幀的feature maps,然後為了加強當前幀的特徵,一個光流網路用於估計相鄰幀和當前幀的運動。相鄰幀的feature maps再根據光流運動中warp到當前幀,warp後的feature map以及它自己的feature map一起通過適應權重網路進行聚合。(在當前幀)然後聚合得到的feature map再被送到檢測網路中輸出當前幀的檢測結果。所有模組,包括特徵提取,光流估計,特徵聚合,檢測都是端到端進行訓練的,對於快速運動中的物體,普通的方法效果很差,但我們的方法有效地利用了不同snapshot間的豐富表現資訊,這也是我們的方法取得VID冠軍的致勝點(對於快速運動物體識別好)
這裡寫圖片描述

3.Flow Guided Feature Aggregation

3.1 Baseline and Motivation

給定輸入的視訊幀{Ii},我們的目標是輸出所有幀上的物體框{Yi}。Baseline就是在每幀上單獨使用現有的物體檢測器。
現有的CNN-based物體檢測器結構相似,輸入圖片I,CNN提取特徵得到Nfeat(I)=f feature maps,然後一個專用於detection的子網路用於生成檢測結果y=Ndet(f)。
視訊幀會有很劇烈的表現變化,如圖2所示,當畫面很差的時候,單幀的檢測結果很不穩定,易出錯。圖1給出了一個例子,在t時刻,由於運動模糊,貓這個類的特徵響應會很低。這導致單幀檢測的失敗,觀察到鄰近的幀t

-10和t+10有比較高的響應,它們的特徵可以被傳遞給當前的t幀,當t幀的特徵加強後,檢測成功。
這裡寫圖片描述
特徵傳遞和加強需要兩個模組實現:(1)motion-guided spatial warping.在幀間估計運動然後將feature map進行warp。(2)feature aggregation module.它用於正確地將不同幀的特徵進行融合,再加上特徵提取和檢測網路,共同組成了我們方法的四個模組。

3.2 Model Design

Flow-guided warping.給定一幀{Ii}和其相鄰幀{Ij}光流場Mi>j=F(Ii,Ij)可以通過光流網路F參加FlowNet[8]估計。
相鄰幀的feature maps被warp到當前幀,根據光流warping function定義為:
f

j>i=W(fj,Mi>j)=W(fj,Mi>j)
其中W是一個雙線性的warping function,用於feature maps上所有位置的每個channel,fj>i表示從j warp到i幀的feature map。
Feature aggregation.做完feature warping以後,當前幀從相鄰幀累積feature map。這些feature map提供了物體例項的不同資訊,例如光照、視角、姿態、非剛體變形等。聚合特徵是,我們在不同空間位置使用不同的權重,並且讓所有特徵通道共享此空間權重,這一2D權重map定義為Wj>i。則聚合後的特徵為
這裡寫圖片描述
其中k表示相鄰幀的數量,預設k=10。上式和attention模型的公式很像,不用的權重用於memory buffer中的不同特徵。
聚合後的特徵這裡寫圖片描述最後被送到檢測子網路中得到最終的結果:yi=Ndet(這裡寫圖片描述)。
和baseline以及box-line method相比,我們的方法在輸入到最後的檢測之前就進行了多幀資訊聚合。
Adaptive weight.權重用於表示所有buffer frames[Iik,…,Ii+k]對於Ii在每個空間位置上的重要程度。
特別地,在位置P,如果warped features fj>i(P)fi(P)很相近,則它會被賦予一個大的權重,反之則相反這裡我們使用餘弦相近矩陣來衡量warped features和從當前幀得到的features之間的相似度。另外,我們不直接使用卷積特徵Nfeat(I),而是使用一個小的全卷積網路這裡寫圖片描述,將特徵f(i)fj>i對映到新的embedding進行相似度度量。
我們估計權重為:
這裡寫圖片描述
其中fe=這裡寫圖片描述表示相似度度量的embedding features。權重Wj>i對於所有空間位置P,在相似幀做了歸一化,這裡寫圖片描述=1。估計權重的過程可以看做是利用embedding features計算餘弦相似度的過程。

3.3 Training and Inference

Inference.演算法1歸納了inference的過程。
這裡寫圖片描述
Training.整個FGFA結構是可微的,可以端到端地進行訓練。唯一需要注意的地方是特徵warping的模組是通過雙線性插值得到的,也是可微的,對於feature maps和光流場都是可微的。
*Temporal dropout.在SGD訓練中,聚合範圍K受到記憶體的限制,我們在inference的時候使用一個大的K,而在訓練的時候用小的K(預設為2),這是沒關係的,因為adaptive weight可以在許槤和推理的時候分別進行正確的歸一化。注意在訓練時,相鄰幀是從一個大的range中隨機取樣的,這個大range等於推理時用的range,這就相當於在時域上用了個dropout,用table 3可以看出,temporal dropout效果不錯。
這裡寫圖片描述

3.4 Network Architecture

Flow network.我們用了在flying chairs資料集上預訓練的Flownet(簡易版)。它被使用到一半解析度的圖片上。輸出stride=4。由於feature network的輸出stride=16(下文有解釋)。flow field再次下采樣得到和feature map一樣的解析度。
Feature network.我們使用Resnet-50,Resnet-101。Inception-Resnet作為feature network。初始的Inception-Resnet是用於影象識別的,為了解決特徵不一致的問題,使其能夠正確運用到物體檢測中,我們使用一個modified的版本叫做Aligned-Inception Resnet[6]、Resnet50,Resnet101,Aligned-Inception-Resnet都是在ImageNet分類上預測訓練的。
預測訓練的模型用於FGFA的feature network。我們稍微調整了一下這三個模型的結構用於物體檢測。我們將最後的average pooling和fc層去掉,保留其他卷積層。為了提高特徵解析度,根據[4,5]的實踐,將最後一個block的stride從32改為16,特別地,在最後一個block的開始(conv5),stride從2變為1。為了保持感受野的大小。最後一個block的卷積層的dilation(kernel size>1)設為2。最後隨機初始化3*3卷積用在最後將特徵維度降為1024。
Embedding network.有三層,1*1*512 conv,3*3*512 conv,1*1*2048 conv,隨機初始化。
Detection network.我們使用R-FCN,並且按照[49]的設計,在1024-d feature maps的後面。RPN sub-network和R-FCN sub-network分別接前512和後512維,RPN使用9個anchor(3 scale, 3 aspect)。每張圖產生300個proposals,R-FCN中的position-sensitive score maps是7*7group。

4.Experiment

4.1 Experiment Setup

**ImageNet VID dataset.**3862個video snippets用於訓練,555個snippets用於驗證,這些snippets全部標註好。每個視訊的frame rates在25和30左右。共有30個物體分類,是ImageNet DET資料集的子類別。
slow,medium和fast運動中分別測試了不同運動速度的map。
Implementation Details.在訓練時,和[18,23]一樣,ImageNet DET和VID訓練集都用於訓練。兩階段的訓練:第一階段:特徵網路和檢測網路在ImageNet DET上進行訓練,使用和VID一樣的30個類,SGD,每個batch一張圖進行訓練,4GPU,120K iterations。lr在前80K和後40K iters分別為103104。第二階段,整個FGFA模型在VID上進行訓練,4GPU,60K iter。lr在前40K和後20K iters分別是103104。在訓練和推理中,圖片都被resize到短邊600用於feature network,resize到短邊300用於flow network。

4.2 Ablation Study

Table 1比較了單幀baseline 和FGFA以及其變種figure 6是單幀方法和FGFA的直觀對比。
這裡寫圖片描述
這裡寫圖片描述