一、概述
動作檢測是指在一段視頻裏,檢測出人的動作(已知的幾類動作)以及發生的時間和地點。目前關注比較多的是動作識別,也可以叫動作分類。動作識別的任務是,輸入一段剪輯好的視頻,將其歸爲N類已知動作中的一類,不需要關心動作發生的時間,因爲剪輯好的視頻包含了某個動作從開始到結束的完整過程,而且它也不用考慮視頻中可能不包含任何已知的動作。所以,動作檢測一般比動作識別難。但動作檢測與現實中的應用關係更密切。
本文提出一種基於Multi-Stream Bi-Directional Recurrent Neural Network的方法,用於檢測一段視頻中人的動作。這裏的Multi-Stream,是指有四個Stream的CNN網絡:完整的幀和包含人的邊框(fullframe and person-centric)兩個空間尺度,每個尺度包含兩種Stream(motion and appearance)。首先,把視頻切割成一小塊一小塊(7幀大小),每個視頻塊經過多流網絡提取出高級的特徵描述(highlevel representations),這些特徵描述又作爲雙向LSTM的輸入,LSTM的輸出是這7幀圖像對應的動作標籤。
本文主要有以下幾點貢獻:
(1)證明了在動作檢測任務中使用雙向的LSTM的重要性。首次把LSTM用於動作檢測,由於LSTM是在包含多個動作的完整視頻上訓練的(不是只包含單個動作的剪輯),所以它可以學習在時間維度上相鄰動作之間的相互關係。
(2)訓練了一個多流的卷積網絡,說明了同時使用fullframe and person-centric的的重要性。
(3)使用像素軌跡代替光流作爲運動Stream,使結果顯著改善。
二、方法介紹
本文框架如圖1和2所示。任務是對輸入的一個視頻塊(6幀連續的圖像)進行動作分類。如圖2所示,我們首先訓練了四個獨立的卷積神經網絡,每個都基於VGG架構。在四個網絡後面又接了一個全連接層,爲了整合四個流的信息。如圖1所示,多流網絡的輸出又作爲雙向LSTM的輸入,在每個方向LSTM的隱藏狀態(hidden states)之上接一個全連接層,然後再接一個softmax層,以獲得對每一類動作的評分。最後,由兩個LSTM的平均得分得出分類結果。
圖1 整體架構
圖二 MSN
2.1跟蹤算法
因有些動作與周圍環境沒多大關係,使用跟蹤算法把人從圖中圈出來,在框裏提取外觀和動作(appearance and motion)流。本文使用了一個簡單的基於狀態的跟蹤器(state-based tracker),如果沒有人存在的話,邊框是任意放置的。邊框的位置只有在處理完一個視頻塊(6幀)之後纔會更新。
2.2流網絡的訓練
在文獻裏,訓練motion-based的網絡時,經常會把光流作爲深層網絡的輸入。但是,因場景中某個特定點的位置在幀和幀之間會發生變化,使用卷積神經網絡對動作分類時,雖然在高層可以學到完整的運動信息,但要求更多的參數和訓練數據。所以我們選了一種叫像素軌跡(pixel trajectories)的方法來表示運動信息。如圖3所示,如果當前幀是t,我們在當前幀之前和之後各取K幀,In all 2K frames of a pixel trajectory, the flow values from each point to the corresponding point in frame t are all located at the point’s location in frame t.對於這句話的理解(可能不對,歡迎指正),在像素軌跡中,圖像的空間佈局保持不變,都跟frame t一樣,但每個像素點的強度值等於framet與別的幀(比如framet-1)計算得到的光流值大小。求每個像素的運動時只需要一個1×2K的卷積核就能得到一個特徵map,使用光流的方法則需要3×3×2K的卷積核(因場景中的點在幀間位置會變化)。
圖3 光流與像素軌跡比較
2.3雙向LSTM網絡
在動作識別任務中,輸入一段視頻序列只需要輸出一個動作標籤。但動作檢測的任務是爲每一幀都打上正確的標籤。舉個例子,有一段含有100幀的視頻序列,每一幀的標籤都相同,如果是動作識別,我們只要能識別出任意50幀就可輸出正確的標籤,但對於動作檢測,如果預測出來的這50幀是不連續的,就會產生多個動作片段,如圖5所示。加上雙向的LSTM後,就可以利用未來和過去的信息預測,進而更可能得到連續的片段。雙向的LSTM的說明如圖4,在工作中,前向和後向LSTM網絡的softmax層爲每個action類提供了一個分數scores,我們取兩個LSTM網絡的均值作爲每個動作的得分。
圖4 雙向LSTM
圖5 上面一行使用原始方法會產生不連續片段,下面是改進後
三、參考文獻
實驗結果大家可以直接看論文。
A Multi-Stream Bi-Directional Recurrent Neural Network for Fine-Grained Action Detection 2016