双向卷积神经网络_一个用于精细动作检测的多路双向递归神经网络
文章標題:A Multi-Stream Bi-Directional Recurrent Neural Network for Fine-Grained Action Detection引用:Singh B, Marks T K, Jones M, et al. A multi-stream bi-directional recurrent neural network for fine-grained action detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1961-1970.
文章鏈接:https://openaccess.thecvf.com/content_cvpr_2016/papers/Singh_A_Multi-Stream_Bi-Directional_CVPR_2016_paper.pdf
1 介紹
本文展示了一種檢測視頻中動作的方法。
定義:
1. 動作檢測:是指在一個長視頻中從時間和空間兩個維度定位已知動作集里的每個動作的每一次出現。這和之前研究的視頻動作分析主要集中在動作識別 (也稱作動作分類)不同。
2. 動作識別:輸入一個被剪輯的視頻段,把它分類為N個已知動作中的一個。不需要在時間維度上定位。每個輸入視頻段被剪輯為精確的包含一個動作的持續時間。而且不需要考慮視頻段可能不包含任何動作。
難點:總的來說,動作檢測更難。然而,這些困難是值得被克服的,因為動作檢測和真實世界的應用更相關。本文關注精細的動作檢測,意味著被檢測的動作類別之間的不同很小。例如廚房中的切和剝皮。
簡要介紹本文網絡:作者提出的了一個多路雙向遞歸神經網絡(MSB-RNN)。我們稱這個網絡為多路是因為開始的卷積神經網絡有4路:兩路處理動作和外表信息,而每類信息又分別來自整個圖片和以人為中心的剪輯圖片。動作信息使用像素位移,或稱作像素跟蹤,而不是光流(optical flow)。輸入視頻被分割為一系列只有6幀的視頻塊。4路卷積的輸出為雙向LSTM的輸入。本文展示了在人周圍使用跟蹤邊界框的重要性。
2 網絡框架
我們的網絡框架如圖1和圖2所示。我們使用VGG訓練4個卷積神經網絡。圖1:框架。視頻塊輸入到多路網絡(MSN)中生成特征表示。接下來這些特征輸入雙向LSTM,用來預測動作標簽。多路網絡的細節在圖2中。圖2:多路網絡(MSN)。網絡CNN-T計算像素跟蹤(動作)特征。網絡CNN計算RGB圖像特征。
介紹網絡:一個小的視頻塊包含6個連續的幀。在圖2中,其中兩個網絡訓練整幀的視頻塊(分別用于圖像和動作)。另兩個網絡訓練剪輯后的跟蹤邊界框。在4路網絡的fc7輸出層之后,學習一個fully-connected映射層整合這4個獨立網絡的輸出。映射層的輸出被輸入到雙向LSTM。在LSTM隱藏狀態上應用一個fully connected層和softmax層,就可以得到對應每個動作的中間分數。雙向LSTM的Forward和backward都對每個動作類給出了分數。最后,平均兩個LSTM的分數就可以得到每個動作的最后分數。在訓練長序列時,back-propagation只能完成固定步數,所以我們保留前一個視頻的最后一個隱藏狀態作為下一個視頻隱藏狀態的初始值。
選擇人體追蹤的原因:我們需要獲取空間和長時間的時序信息。人體追蹤移除了位置方差,所以更容易學習。有些動作是依賴所處的位置的。對于靜止相機的畫面,這些動作永遠發生在相同的圖片位置。例如洗刷永遠在水槽附近。正是由于這個原因,我們為像素跟蹤和圖像訓練了兩個獨立的神經網絡。像素跟蹤中每一個像素點在視頻塊的幾幀中都位于相同位置。這個排列使像素跟蹤可以比堆疊光流獲取更豐富的信息。
2.1 跟蹤方法
任何好的人體跟蹤算法都可以提供邊界框。我們使用一個簡單的基于狀態的跟蹤。保持邊界框的大小不變,更新邊界框的位置使邊界框內的流強度保持最大。
2.2 訓練光流網絡
選擇像素跟蹤的原因:在堆疊光流中,畫面上一個移動點的動作向量改變這個點在每幀中的位置。因此為了分類一個動作,卷積網絡需要學習光流的空間移動,需要更多的參數和數據。一個表示視頻幀移動的替代方法是計算從中間幀 t 到它前K幀和后K幀的光流。我們稱這種表示為像素跟蹤,如圖3所示。圖3:中間行的方塊表示圖像序列,箭頭表示光流計算的一對圖像。第一行計算像素跟蹤中光流的y值;第三行計算堆疊光流的y值。在像素跟蹤中,只有強度改變,圖像的空間格局保持不變,因此一個時序上卷積層就足夠用來學習動作特征。在堆疊光流中,剪影向左上方移動。
如何通過像素跟蹤生成動作信息:在所有2K幀中,每個點到t幀上的對應點的光流值都位于t幀上點的位置。在圖3第一行,只有光流圖像的強度改變。因此,對比堆疊光流,網絡更容易學習每個像素的時序濾波器。
為了學習每個像素的動作模式,使用一個1*2K的卷積核生成每個像素點移動的特征映射。而堆疊光流的網絡不能在第一個卷積層學習那些在2K幀內移動超過3個像素的像素點的動作模式。
2.3 訓練雙向LSTM網絡
輸入:
RNN隱藏狀態:
輸出:
通過下面遞歸方程迭代:
,
是激活函數(activation function)
是映射輸入到隱藏狀態的權值矩陣。
是相鄰時間隱藏狀態間的轉換矩陣。
是映射隱藏狀態到輸出的矩陣。
和
是偏差項。
LSTM的權值更新方程為:
這些參數的定義都和標準的LSTM相同,
分別是input gate, forget gate, output gate, memory cell向量。
動作檢測選擇LSTM的原因:
1. 在動作識別數據中,視頻段被剪輯后只包含一個動作,通常很短(2-20秒)。因此,沒有足夠的上下文可以通過LSTM學習。而長時間的上下文學習可以包含一些特性,比如動作持續時間,接下來是哪個動作等。所以LSTM更適合我們現在的任務。
2. 動作識別只分配一個標簽給一個視頻,假設一個視頻有100幀,就算只有50幀預測正確,這個視頻也會得到正確的動作識別結果。而動作檢測需要給每幀分配一個標簽。如果50個預測正確的幀不連續,將產生很多動作段,而只有其中一段能被分配正確的標簽,其他都是false positive。雙向LSTM更傾向于生成連續的動作段,因此,有較少的false positives。然而,LSTM對動作識別沒有任何幫助。
結尾:本文是2016年的CVPR,輸出是對視頻的每一幀都預測了動作標簽,和我們定義的Action Segmentation相似。但是還是延續之前Action Recognition的做法對視頻分塊處理,感覺像是兩者之間的過渡。隨后幾年的文章則是直接使用視頻特征設計神經網絡。繼續閱讀,期待下一篇。
歡迎關注,每天一起學習視頻動作檢測和動作分割的知識
總結
以上是生活随笔為你收集整理的双向卷积神经网络_一个用于精细动作检测的多路双向递归神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python助教的面试题_六个Pytho
- 下一篇: 和sexy_“纸片人”没曲线?Mark这