王 倩, 范冬艷
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院, 上海201620)
隨著計算機視覺等相關(guān)技術(shù)的發(fā)展,深度學(xué)習(xí)已經(jīng)在視頻動作識別領(lǐng)域[1-5]取得了巨大成果。 但是實際應(yīng)用中的視頻通常是不受約束的,包含多個動作實例和背景場景或其他活動的視頻內(nèi)容。 時序動作定位是一個重要而又具有挑戰(zhàn)性的問題,給定一個包含多個動作實例和背景內(nèi)容的長而未修剪的視頻,不僅需要識別它們的動作類別,還需要定位每個實例的起始時間和結(jié)束時間。
許多先進的系統(tǒng)使用段級分類器來選擇和排列預(yù)先設(shè)定邊界的建議段[6-9]。 然而,一個理想的模型應(yīng)該超越節(jié)段的級別,在細粒度的時間尺度上進行密集的預(yù)測以確定精確的時間邊界。 例如SCNN[6]的C3D 卷積神經(jīng)網(wǎng)絡(luò)[3]從conv1a 到conv5b層,將輸入視頻的時間長度減少了8 倍。 為此,Zheng Shou 等設(shè)計了一個新的convolutional-deconvolutional(CDC)網(wǎng)絡(luò)[10],該網(wǎng)絡(luò)的頂部是一個C3D 卷積神經(jīng)網(wǎng)絡(luò)用于提取視頻的時空特征信息,用來判斷動作類型。 然后采用CDC 過濾器同時執(zhí)行所需的時間向上采樣和空間下采樣操作,以在幀級粒度上預(yù)測動作。 CDC 網(wǎng)絡(luò)不僅在每一幀檢測行為上實現(xiàn)性能優(yōu)越,同時也顯著提高了時間邊界的精確性。 但是CDC 網(wǎng)絡(luò)在候選區(qū)域的選取算法和時間邊界的定位上還有待提高,主要有兩個問題:(1)CDC 進行時序動作定位預(yù)測的輸入為原始視頻的候選片段,候選片段的選擇會影響到時序動作識別的效果和效率,若識別不準確,不僅影響識別結(jié)果的準確率,還會耗費時間去識別不準確的候選區(qū)域。S-CNN 建議片段選擇算法將密集間隔采樣的RGB圖輸入C3D 卷積神經(jīng)網(wǎng)絡(luò)進行預(yù)測,沒有充分利用視頻的時空特征。 (2)結(jié)合候選區(qū)域與幀級分數(shù)并利用閾值定位邊界點可以得到最終的時序動作檢測結(jié)果。 然而,檢測得到的動作的起始和終止坐標與真值之間還有著較大的偏移。 基于以上兩個問題,本文提出了時空特征融合時序動作定位模型(spatio-temporal feature fusion temporal action localization model,STFF-CDC)。
針對問題1,為了充分融合視頻中的時空信息,并以相當(dāng)?shù)偷某杀颈4嫦嚓P(guān)信息,文獻[11]在TSN網(wǎng)絡(luò)的基礎(chǔ)上,結(jié)合C3D 卷積神經(jīng)網(wǎng)絡(luò),提出了時空特征融合動作識別模型。 該模型能夠充分利用視頻的時空特征,有效且高效的識別視頻的動作類型。將該模型用于候選區(qū)域的選擇網(wǎng)絡(luò),可以充分融合視頻的時空特征,提高候選區(qū)域提取的準確率。
針對問題2,為了解決定位的動作起始和終止坐標與真實值存在較大偏移的問題,本文提出了一個動作起始終止狀態(tài)判斷網(wǎng)絡(luò)。 將檢測結(jié)果的時間區(qū)域擴大,之后再用起始點和結(jié)束點周圍的幀為數(shù)據(jù)集訓(xùn)練DenseNet 網(wǎng)絡(luò)[12],利用訓(xùn)練好的模型判斷起始幀和結(jié)束幀,從而重新定位得到更加精確動作起始邊界。
視頻的RGB 圖像使3 個顏色通道(紅色R,綠色G和藍色B 來存儲像素信息,這些像素信息包含了視頻的外形信息,如圖1(a)所示。 由于視頻的動作識別與視頻中某些對象密切相關(guān),外形信息是動作識別的重要信息,因此RGB 圖像可以提取視頻的空間特征。
光流場是指圖像中所有像素點構(gòu)成的一種二維瞬時速度場,其中的二維速度矢量是景物中可見點的三維速度矢量在成像表面的投影。 所以光流不僅包含了被觀察物體的運動信息,而且還包含有關(guān)景物三維結(jié)構(gòu)的豐富信息[13]。 視頻的光流圖包含了視頻的運動信息,如圖1(b)、1(c)所示, 分別為水平方向(x 方向)和垂直方向(y 方向)光流圖樣例。
圖1 披薩拋擲類的RGB 和光流圖示例Fig. 1 Examples of RGB and optical flow images for pizza thrower classes
時序動作檢測任務(wù)的目的是識別一段未剪輯長視頻中的動作類別以及動作的起止時間。 近年來,出現(xiàn)一些方法用于時序動作定位任務(wù)。 S-CNN 是較為典型的一種方法,S-CNN 框架主要分為多尺度段的生成、Segment-CNN、后處理3 個部分,Segment-CNN 包括建議網(wǎng)絡(luò),分類網(wǎng)絡(luò)和定位網(wǎng)絡(luò)3 個子網(wǎng)絡(luò),均使用了C3D 卷積神經(jīng)網(wǎng)絡(luò)。 建議網(wǎng)絡(luò)是提取候選區(qū)域的網(wǎng)絡(luò),它的輸出為兩類,即預(yù)測該片段是動作的概率及是背景的概率;分類網(wǎng)絡(luò)的作用是嘗試做一個用來識別動作的種類的分類網(wǎng)絡(luò),為定位網(wǎng)絡(luò)做初始化;定位網(wǎng)絡(luò)的輸出為K + 1 個類別(包括背景類)的分數(shù),這個分數(shù)是該segment 是某類動作的置信度分數(shù)。 后處理是在測試階段進行的,具體方法是對定位網(wǎng)絡(luò)的輸出分數(shù)進行非極大化抑制(NMS)來移除重疊,對于時序上重疊的動作,通過NMS 去除分數(shù)低的,保留分數(shù)高的。 CDC使用的候選區(qū)域選擇算法是S-CNN 建議網(wǎng)絡(luò)的候選區(qū)域提取算法,即改進C3D 卷積神經(jīng)網(wǎng)絡(luò)的SoftMax 層進行候選區(qū)域的判定。
改進的CDC 卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的輸入為帶有幀級標簽的窗口訓(xùn)練集,預(yù)測時的輸入為經(jīng)過基于特征融合的候選片段生成算法生成的建議片段。接著經(jīng)過3D 卷積神經(jīng)網(wǎng)絡(luò)進行語義特征提取,這時視頻的時間維度會縮小為L/8。 為了恢復(fù)時間維度上的信息,來進行幀級粒度上的動作識別,再經(jīng)過3D 反卷積神經(jīng)網(wǎng)絡(luò)來對視頻的時間維度進行上采樣,空間維度進行下采樣。 輸出每幀的動作類別分數(shù),最后訓(xùn)練動作狀態(tài)檢測網(wǎng)絡(luò)進行時間邊界的調(diào)整。 框架流程見下圖2 所示。
2.2.1 S-CNN 候選區(qū)域提取算法
S-CNN 候選區(qū)域提取算法使用Du Tran 等[3]提出的C3D 卷積神經(jīng)網(wǎng)絡(luò)作為動作分類網(wǎng)絡(luò),C3D卷積神經(jīng)網(wǎng)絡(luò)與2D 卷積神經(jīng)網(wǎng)絡(luò)不同,它有選擇地兼顧運動和外觀。 在跳高的例子中,特征先是集中在整個人身上,然后跟蹤其余幀上的人體跳高的動作。 同樣在化唇妝例子中,它首先聚焦在嘴唇上,然后在化妝時跟蹤嘴唇周圍發(fā)生的動作。 C3D 卷積神經(jīng)網(wǎng)絡(luò)不僅對空間的的水平和豎直維度進行卷積,對時間維度也進行了卷積,以更好地提取時間和空間特征,保持時空特征的相關(guān)性。
圖2 時空融合時序動作檢測網(wǎng)絡(luò)框架圖Fig. 2 Spatio-temporal feature fusion temporal action detection network frame diagram
S-CNN 采用的C3D 網(wǎng)絡(luò)結(jié)構(gòu)如下圖3 所示。共具有8 個卷積層、5 個池化層、兩個全連接層,以及一個softmax 輸出層。 所有3D 卷積濾波器均為3×3×3,步長為1×1×1。 為了在時間維度不過早的進行壓縮,pool1 核大小為1×2×2、步長1×2×2,后面所有3D 池化層均為2×2×2,步長為2×2×2。 每個全連接層有4 096 個輸出單元。 C3D 最終通過softmax 層給出視頻樣本的分類。 S-CNN 候選區(qū)域提取算法具體流程圖見圖3。
圖3 S-CNN 候選區(qū)域提取算法訓(xùn)練測試過程Fig. 3 Training and testing process of S-CNN candidate region extraction algorithm
2.2.2 STFF-C3D CNN 候選區(qū)域提取算法
深度學(xué)習(xí)進行人體動作識別需要充分提取視頻中的時間特征和空間特征,并合理的利用時空特征之間的相關(guān)性。 為此,文獻[11]提出一種采用稀疏采樣方案的時空特征融合動作識別框架STFF-C3D CNN(spatio-temporal feature fusion action recognition model,STFF-C3D CNN)。 該模型不僅充分融合了視頻中時空特征,并且運用稀疏采樣方案[5]避免了冗余采樣。 主要分為4 部分:稀疏采樣生成RGB 圖和光流圖、時空特征的提取、時空混合特征圖的生成、C3D 卷積神經(jīng)網(wǎng)絡(luò)進行動作識別,如下圖4 所示。
圖4 STFF-C3D CNN 框架Fig. 4 STFF-C3D CNN frame
在預(yù)測階段,建議片段(含有動作的片段)選擇會影響到時序動作識別的效果和效率,若識別不準確,不僅影響識別結(jié)果的準確率,還會耗費時間去識別不準確的建議片段。 本文提出的時空信息融合的時序動作檢測網(wǎng)絡(luò)采用STFF-C3D CNN[11]進行建議片段的選擇,可以充分融合候選片段的時間特征和空間特征來進行動作識別。
首先,采用稀疏采樣方案對視頻進行采樣。 一個輸入視頻被分為K 段(segment),一個片段(snippet)從它對應(yīng)的段中隨機采樣得到。 對于每段snippet,提取它包含空間信息的RGB 圖像和包含時間信息的x 方向光流圖和y 方向光流圖。 接著,將RGB 圖送入空間卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練以提取中層空間特征,將光流圖送入空間卷積神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練以提取中層時間特征。 然后,訓(xùn)練時空混合卷積神經(jīng)網(wǎng)絡(luò)提取時空融合特征,將時空中層特征圖進行融合[14],提取混合卷積神經(jīng)網(wǎng)絡(luò)的中層混合特征,生成時空混合特征圖。 最后,將時空混合特征圖作為C3D 卷積神經(jīng)網(wǎng)絡(luò)的輸入,在時間和空間維度分別進行卷積和池化,同時學(xué)習(xí)視頻的運動信息和靜態(tài)的圖片信息,修改STFF-C3D CNN 的輸出為兩類,即預(yù)測該片段是動作的概率以及是背景的概率。訓(xùn)練時將IoU 大于0.7 的作為正樣本(動作),小于0.3 的作為負樣本(背景),對負樣本進行采樣使得正負樣本比例均衡,采用softmax loss 進行訓(xùn)練來判斷動作類別。
C3D 架構(gòu),由有3 層全連接(FC)層的三維卷積神經(jīng)網(wǎng)絡(luò)組成,在諸如識別和定位等視頻分析任務(wù)中取得了良好的結(jié)果。 CDC 網(wǎng)絡(luò)是基于C3D 卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的,C3D 的conv1a 到conv5b 是CDC網(wǎng)絡(luò)的第一部分,對于C3D 的其余層,CDC 保持pool5 在長度和寬度上執(zhí)行步長為2 的最大池化,但保留了時間長度。 按照常規(guī)設(shè)置[3,6,15],設(shè)置CDC網(wǎng)絡(luò)輸入的高度和寬度為112×112,輸入時間長度為L 的視頻段,pool5 的輸出數(shù)據(jù)形式是(512,L/8,4,4)。 為了在幀級粒度上預(yù)測動作得分,需要在時間上進行上采樣(從L/8 回到L),在空間上進行下采樣(從4 × 4 到1 × 1)。
CDC6 將卷積核設(shè)置為(4,4,4)、步長設(shè)置為(2,1,1)、填充設(shè)置為(1,0,0),因此CDC6 可以將高度和寬度都減少到1,同時將時間長度從L/8 增加到L/4。 CDC7 和CDC8 都將卷積和設(shè)置為(4,1,1)、步長設(shè)置為(2,1,1)、填充設(shè)置為(1,0,0),因此CDC7 和CDC8 都進一步執(zhí)行了步長為2 的上采樣,因此時間長度返回到L。 最后在CDC8 的頂部添加幀級SoftMax 層,以獲得每個幀的置信度分數(shù),每個通道代表一個類別。 CDC 網(wǎng)絡(luò)的最終輸出形狀為(K + 1,L,1,1),其中K + 1 代表K 個動作類別加上背景類別。 網(wǎng)絡(luò)具體流程見下圖5。
圖5 CDC 網(wǎng)絡(luò)流程圖Fig. 5 CDC network flow chart
為了解決動作起始和終止坐標存在較大偏移的問題,本文提出了一個動作起始終止狀態(tài)判斷網(wǎng)絡(luò)。改進文獻[21]提出的網(wǎng)絡(luò),訓(xùn)練Densnets 網(wǎng)絡(luò)用作動作狀態(tài)檢測網(wǎng)絡(luò)。 Densnets 建立了不同層之間的連接關(guān)系,充分利用了特征,進一步減輕了梯度消失問題。 訓(xùn)練測試過程如下:(1)首先,為了更大的間隔,將每個建議段的邊界在兩側(cè)擴展了原始段長度的百分比α。 本文把所有實驗的α 設(shè)為1/8。 (2)對擴大后的時間區(qū)域提取光流圖。 (3)訓(xùn)練動作起始終止狀態(tài)判斷網(wǎng)絡(luò),得到判斷模型。 假設(shè)一個動作實例S 的起始和終止坐標分別為(t1,t2),則動作的時間長度L =t2-t1。 訓(xùn)練過程如圖6 所示。 (4)測試階段,對測試所得的動作實例的(t1-L/8, t1+L/8), (t2-L/8, t2+L/8)中的幀進行測試,分別輸出每一幀為開始幀,結(jié)束幀的概率,最后得到精修后的動作起始終止坐標。
THUMOS'14[16]:時間動作定位THUMOS'14 數(shù)據(jù)集包含20 類行動。 本文用2 755 個修剪的訓(xùn)練視頻和1 010 個未修剪的驗證視頻(3 007 個動作實例)來訓(xùn)練模型。 測試使用的的213 個不完全是背景視頻的視頻(3 358 個動作實例)。
評估指標:根據(jù)傳統(tǒng)的度量標準[17],本文將每幀標記任務(wù)作為一個檢索問題來處理,對于每個動作類,將測試集中的所有幀按其在該類中的置信度得分進行排序,并計算平均精度均值(AP),然后對所有的類進行平均得到平均AP(mAP)。 具有正確的預(yù)測類別且其與真實值的時間重疊度大于閾值時,預(yù)測是正確的,不允許對同一真實實例進行重復(fù)檢測。
圖6 動作起始終止狀態(tài)判斷網(wǎng)絡(luò)Fig. 6 Action starting and ending state judgment network
每個測試結(jié)果都包含動作發(fā)生的時間區(qū)域和動作所屬的類別.重疊度IoU 計算為:
式中:Rp表示預(yù)測的動作區(qū)域,Rgt表示真實動作區(qū)域。 如果重疊度IoU 大于閾值,則表示預(yù)測是正確的。
理論上,因為卷積濾波器和CDC 濾波器都在輸入視頻上滑動,所以它們可以應(yīng)用于任意大小的輸入。 因此,CDC 網(wǎng)絡(luò)可以在不同長度的視頻上操作。 但是由于GPU 存儲器的限制,實際上本文在視頻上滑動32 幀的時序無重疊窗口,并將每個窗口逐個送入CDC 網(wǎng)絡(luò)以及時獲得時間上的密集預(yù)測。從時間邊界的標簽中,知道每個幀的標簽,相同窗口中的幀可以有不同的標簽。 為防止包含太多背景幀進行訓(xùn)練,只保留至少有一幀屬于動作的窗口。 因此,在給定一組訓(xùn)練視頻的情況下,能獲得帶有幀級標簽的窗口訓(xùn)練集。
本文實驗評估了在THUMOS'14 數(shù)據(jù)集上重疊IoU 閾值在0.3~0.7 之間變化時的mAP。 如表1 所示,CDC 獲得的結(jié)果要好于所有其他先進方法的結(jié)果。 與建議的CDC 模型相比:用FV 編碼iDTF 的系統(tǒng)[18]不能直接從原始視頻中學(xué)習(xí)時空模式來進行預(yù)測。 基于RNN/LSTM 的方法(Yeung 等[19],Yuan等[20])無法在時間依賴性之外明確捕獲運動信息。S-CNN 可以有效地捕捉原始視頻的時空模型,比其他3 種方法的mAP 得到了明顯的提高,但是僅在段級粒度上進行時序動作定位,缺乏調(diào)整候選建議邊界的能力。 CDC 網(wǎng)絡(luò)通過反卷積操作恢復(fù)時間維度上的長度,可以超出段級水平預(yù)測確定細粒度的置信度分數(shù),在幀級粒度上進行時序動作定位的檢測,因此可以精確定位時間邊界。 比S-CNN 方法在各個閾值上的的mAP 提高了0.7% ~4.4%。
本文使用STFF-CDC 網(wǎng)絡(luò),改進候選片段生成算法充分利用了視頻的時空特征。 實驗結(jié)果表明,本文方法精度比CDC 網(wǎng)絡(luò)約提高了2.2%。 另外,本文采用Densnets 網(wǎng)絡(luò)作為動作狀態(tài)檢測網(wǎng)絡(luò),更有效地利用了特征,比DSTIN+CEN[21]方法相比也得到了提高。 總之,本文模型在各個閾值上均獲得了其他方法更準確的時序動作定位效果。
部分檢測結(jié)果對比展現(xiàn)在圖7,受益于候選區(qū)域選擇算法的改進,和動作狀態(tài)檢測網(wǎng)絡(luò)的貢獻,本文的方法可以得到更為精確的動作區(qū)域。
表1 本文動作識別算法和其他算法mAP(%)對比Tab. 1 The comparison of action recognition algorithm in this paper with others(map (%))
圖7 部分檢測結(jié)果對比Fig. 7 Comparison of some test results
時序動作定位任務(wù)需要識別出一段長視頻中的動作類別以及動作的起始時間。 為了有效的提取候選區(qū)域,本文提出了一種基于時空特征融合的候選區(qū)域提取網(wǎng)絡(luò);為了提高動作起始點定位的精度,本文提出一種動作狀態(tài)檢測網(wǎng)絡(luò)。 在數(shù)據(jù)集THUMOS'14 上進行實驗,并與其他方法進行了對比。 結(jié)果證明,本文提出的基于時空信息融合的時序動作定位模型可以有效進行時序動作定位,達到了較好的精度。