1. 程式人生 > >Deep Feature Flow for Video Recognition

Deep Feature Flow for Video Recognition

大量 src 相對 分解 部件 驗證 出了 實時 目標

來自MSRA視覺計算組,發表在CVPR2017上。這篇文章提出了一個結合光流的快速視頻目標檢測和視頻語義分割方法。

  • motivation
    • 在視頻流的每一幀上用CNN計算特征太慢了。
    • 兩個相鄰幀有相似的feature map
    • 結合光流將特征進行傳播

技術分享圖片技術分享圖片

  在目標檢測和語義分割任務中,通用的做法是首先將圖片送到一個深層卷積網絡提取特征,再將特征送入相應的任務網絡得到結果。在視頻上進行目標檢測或者語義分割任務時,

如果繼續使用單幀圖片的方法,將有大量的時間耗在特征提取上面,無法做到實時性。而由於視頻的連續性,相鄰兩幀的feature map其實具有很高相似度,這裏作者通過可視化resnet101

最後一個卷積層裏面的兩個卷積核輸出的特征來進行了驗證。

  第一排和第二排分別是同一視頻中的相鄰的兩幀,第一列是原始圖片,後兩列是可視化之後的卷積特征,可以看到上下兩排卷積特征非常相似。同時卷積特征與圖像內容保持了空間的

對應性,可以看到中間的特征圖上激活的汽車特征的位置和原始圖片上汽車的位置是對應的,而這種對應性能夠提供使用空間warp,將臨近幀的特征進行輕量傳播,以此來避免在每一幀上

都進行特征提取。這裏作者使用了光流信息進行特征傳播,將第一幀的特征\(f_k\)與兩幀的光流\(M_{i\to k}\)結合,warp得到第二幀的特征估計\(f_{k\to i}\)。第三排就是warp得到的結果,與

CNN計算的真實效果,也就是第二排差不多。通常光流估計和特征傳播比卷積特征的計算快得多,能夠實現顯著的加速。

  • 什麽是warp操作?

技術分享圖片

warp最開始是用在對圖片像素點進行對齊的操作。光流本質就是記錄了某幀圖片上的像素點到另一幀的運動場,光流圖上每一個點對應著圖片上該點的二位運動矢量。假設我們知道

第t幀中的點P會運動到第t+1幀,這樣就得到了運動矢量。這時如果我們已知第t幀的像素值和第t+1幀每個像素點的運動矢量,則可倒推出t+1幀上的點在第t幀的位置,則可以通過雙線

性插值來得到對應的點的像素值。由於光流值通常不是整數值,因此用雙線性插值。

  • deep feature flow算法

技術分享圖片

  文章中將目標檢測或者語義分割網絡分解成兩個連續的子網絡,\(N_{feat}\)是特征網絡,一般用resnet,\(N_{task}\)是任務網絡,在特征圖上進行語義分割或者目標檢測任務。

圖中的F是光流估計網絡,這裏用的是改造過的flownet,輸入相鄰的兩幀圖片,得到和feature map大小一樣的特征光流圖,flownet已經在光流估計的數據集上預訓練過。

DFF在一段視頻幀裏面以固定間隔選取關鍵幀,其他的幀為非關鍵幀。對於關鍵幀,DFF用一個特征提取網絡去提取feature map,進而任務網絡以這些特征為輸入得到結果;

對於非關鍵幀,DFF先經過光流網絡計算該非關鍵幀與此之前最近的關鍵幀的特征光流圖,然後利用得到的光流圖和關鍵幀的feature map進行warp操作,從而將關鍵幀的特征

對齊並傳播到該非關鍵幀,然後任務網絡基於此特征輸出該非關鍵幀的任務結果。

  DFF利用相對輕量的光流網絡和warp操作代替原來的特征提取網絡來得到相應的特征,達到節省計算量來加速的目的。

  • result

技術分享圖片

  左邊是在cityscapes上進行的視頻語義分割實驗,右邊是在imagenet VID上進行的視頻目標檢測實驗,第一排是單幀圖片的baseline,用的R-FCN檢測算法。

最終在關鍵幀間隔取為10的情況下,達到了73.1的mAP和20.25的幀率,這個結果比單幀圖片的baseline損失了0.8的mAP但是得到了5倍的提速。此外作者還比較了DFF

網絡中的特征網絡和光流網絡是否一起進行端到端學習的結果,實驗顯示所有部件一起端到端訓練時效果最好。

技術分享圖片

Deep Feature Flow for Video Recognition