王學(xué)微,徐 方,賈 凱
(1.中國科學(xué)院 沈陽自動化研究所 機(jī)器人國家重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽 110016;2.中國科學(xué)院大學(xué),北京 100049;3.沈陽新松機(jī)器人自動化股份有限公司 中央研究院,遼寧 沈陽 110168)
識別視頻序列中人體的行為,不僅要利用每一幀圖像上空間信息,還要充分利用幀與幀之間的時(shí)序信息。因此,如何有效表達(dá)單幀圖片的空間信息以及如何獲取幀與幀之間的時(shí)域信息成為行為識別領(lǐng)域的研究重點(diǎn)。Ji等[1]對卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行擴(kuò)展,提出3D-CNN(3D-convolution neural networks)網(wǎng)絡(luò),通過使用3D卷積核獲取幀與幀之間的時(shí)域信息與靜態(tài)信息;Varol等[2]進(jìn)一步完善3D卷積核,極大地提高了識別準(zhǔn)確率;Simonyan等[3]通過引入光流信息來獲取幀間時(shí)域信息,該方法使用兩個(gè)卷積神經(jīng)網(wǎng)絡(luò)分別處理靜態(tài)幀和光流數(shù)據(jù);Wang等[4]在兩個(gè)數(shù)據(jù)流網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,使用更復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò),從而提高了行為識別的準(zhǔn)確率;Jeff Donahue等[5]綜合利用CNN網(wǎng)絡(luò)與LSTM網(wǎng)絡(luò),提出長效遞歸卷積網(wǎng)絡(luò)(long-term recurrent convolution network,LRCN)模型,然而LRCN算法中使用淺層ZFNet[6]作為CNN網(wǎng)絡(luò),很大程度上限制了整個(gè)模型對行為的識別能力。算法對LRCN算法進(jìn)行改進(jìn),使用深度卷積神經(jīng)網(wǎng)絡(luò)VGG16[7]提取空間特征,提出長效遞歸深度卷積神經(jīng)網(wǎng)絡(luò)(long-term recurrent deep convolution network,LRDCN)算法。在公開數(shù)據(jù)集UCF101上的實(shí)驗(yàn)結(jié)果表明,該模型較好提高了人體行為識別準(zhǔn)確率。
卷積神經(jīng)網(wǎng)絡(luò)(convolution neural networks,CNN)是一種深度學(xué)習(xí)模型,通過卷積以及下采樣等操作,可以從圖片中逐層提取更高級更抽象的特征。卷積神經(jīng)網(wǎng)絡(luò)一般處理二維圖像,在數(shù)據(jù)充足條件下,合理訓(xùn)練的卷積神經(jīng)網(wǎng)絡(luò)可以有效提取圖像的空間特征,在很多領(lǐng)域其性能明顯好于手工設(shè)計(jì)的特征。
(1)
與CNN不同,遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)無需在層面之間構(gòu)建,能夠更好地處理高維度信息的整體邏輯順序。遞歸神經(jīng)網(wǎng)絡(luò)中,通過一個(gè)閉環(huán)允許網(wǎng)絡(luò)將每一步產(chǎn)生的信息傳遞到下一步中,一個(gè)RNN網(wǎng)絡(luò)可以看作同一網(wǎng)絡(luò)的多份副本,每一份都將信息傳遞到下一副本。RNN網(wǎng)絡(luò)以及其展開的等效網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 遞歸神經(jīng)網(wǎng)絡(luò)及其等效模型
RNN這種鏈?zhǔn)浇Y(jié)構(gòu)非常擅長處理序列形式的數(shù)據(jù),在語音識別、機(jī)器翻譯、圖像標(biāo)題等領(lǐng)域得到了廣泛應(yīng)用。在普通RNN中,重復(fù)模塊結(jié)構(gòu)非常簡單,只包含一個(gè)非線性函數(shù)g,此時(shí)網(wǎng)絡(luò)輸出RNN前向公式為
(2)
式中:xt代表當(dāng)t時(shí)刻的輸入,ht-1代表(t-1)時(shí)刻隱層輸出,ht是t時(shí)刻隱含層的輸出,zt為t時(shí)刻的網(wǎng)絡(luò)的輸出。
當(dāng)序列太長時(shí),普通RNN網(wǎng)絡(luò)存在梯度消失的問題,難以訓(xùn)練。針對此問題,提出很多改進(jìn)版本的RNN,其中最具代表性的是LSTM(long short term memory)網(wǎng)絡(luò),LSTM單元結(jié)構(gòu)如圖2所示。
圖2 LSTM單元結(jié)構(gòu)
LSTM單元通過輸入門、輸出門、遺忘門來控制重復(fù)模塊的輸入與輸出,其前向遞推公式為
(3)
LRDCN由深度卷積神經(jīng)網(wǎng)絡(luò)以及LSTM網(wǎng)絡(luò)組成,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。其中深度卷積神經(jīng)網(wǎng)絡(luò)為VGG16[7],VGG16有13個(gè)卷積層以及3個(gè)全鏈接層,其中前兩個(gè)全鏈接層都含有4096個(gè)結(jié)點(diǎn),第3個(gè)全鏈接層結(jié)點(diǎn)個(gè)數(shù)與待分類問題相關(guān),由于VGG16網(wǎng)絡(luò)僅用于從224*224大小的輸入圖片中提取1*4096維特征,顧只使用前兩個(gè)全鏈接層。與一般CNN網(wǎng)絡(luò)相比,雖然VGG16也是由卷積層以及池化層堆疊而成的,當(dāng)其使用了更小的卷積核,網(wǎng)絡(luò)中所有卷積核大小均為3*3,步長為1。池化窗口大小為2*2,步長為2,但并不是所有卷積層后都有池化層,僅部分卷積層后存在池化層。另外,網(wǎng)絡(luò)中均使用Relu函數(shù)作為非線性映射函數(shù)。
圖3 LRDCN網(wǎng)絡(luò)結(jié)構(gòu)
對于長度為k的視頻序列
k表示輸入到網(wǎng)絡(luò)的視頻序列長度,理論上k可以取任意非零正整數(shù),且希望k能夠涵蓋整個(gè)行為執(zhí)行周期,但隨著k增大,網(wǎng)絡(luò)計(jì)算復(fù)雜度極具增加,使得訓(xùn)練和使用網(wǎng)絡(luò)都變得十分困難,同時(shí)為了與LRCN算法對比,實(shí)際訓(xùn)練與測試時(shí)k值統(tǒng)一設(shè)置為16。
2.2.1 數(shù)據(jù)預(yù)處理
在行為識別領(lǐng)域,RGB圖像和光流數(shù)據(jù)得到廣泛應(yīng)用,在很多算法中,結(jié)合光流數(shù)據(jù)與RGB圖像的結(jié)果會進(jìn)一步提升行為識別的準(zhǔn)確率,因此分別使用RGB圖像以及光流數(shù)據(jù)分別訓(xùn)練LRDCN網(wǎng)絡(luò)。其中RGB圖像以30 fps的幀率從視頻數(shù)據(jù)中抽取,每張圖片大小為320*240,如圖4(a)所示。光流通過opencv中實(shí)現(xiàn)的TVL1算法得到,并采用文獻(xiàn)[5]中的方法構(gòu)建“光流圖”。首先將水平方向光流值和垂直放向光流值放縮到[-128,+128]區(qū)間,然后利用調(diào)整后的水平方向光流值、垂直方向光流值、光流模值構(gòu)建三通道的“光流圖”,如圖4(b)所示。
圖4 輸入數(shù)據(jù)
2.2.2 參數(shù)設(shè)置
孔老一探了探身子,只見一片從來沒見過的黃色大霧從鬼子方向飄了過來,他趕緊脫了上衣,浸透水,把嘴和鼻子緊緊捂上。軍官培訓(xùn)時(shí)教官講過鬼子的毒氣彈,但毒氣彈是國際公約明令禁止的化學(xué)武器,日本也是簽約國,難道他們真的瘋狂到使用毒彈的地步?
使用UCF101數(shù)據(jù)集對LRDCN網(wǎng)絡(luò)進(jìn)行訓(xùn)練、測試。該數(shù)據(jù)集共13 320段視頻樣本,訓(xùn)練樣本只有10 000個(gè)左右,用如此有限的數(shù)據(jù)集訓(xùn)練大規(guī)模深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)非常容易發(fā)生過擬合問題。實(shí)驗(yàn)采取以下幾種策略訓(xùn)練網(wǎng)絡(luò),以降低網(wǎng)絡(luò)過擬合的風(fēng)險(xiǎn):
數(shù)據(jù)增廣:隨機(jī)裁剪是常用的數(shù)據(jù)增廣手段,傳統(tǒng)的隨機(jī)裁剪方法是在輸入圖片中隨機(jī)截取一塊固定大小的圖片,從而增加樣本數(shù)量。與傳統(tǒng)的隨機(jī)裁剪策略不同,使用文獻(xiàn)[4]中的方法,不僅隨機(jī)選擇裁剪區(qū)域,裁剪區(qū)域的寬和高也是從{256,224,192,168}這4個(gè)數(shù)中隨機(jī)選則的。最后將裁剪得到的圖片調(diào)整至224*224,作為VGG16網(wǎng)絡(luò)的輸入。
預(yù)訓(xùn)練:通過預(yù)訓(xùn)練,可以提高收斂速度、降低網(wǎng)絡(luò)過擬合風(fēng)險(xiǎn)。首先使用UCF101數(shù)據(jù)集優(yōu)調(diào)在ImageNet上訓(xùn)練好的VGG16模型,然后用優(yōu)調(diào)過的VGG16初始化LRDCN網(wǎng)絡(luò)的CNN部分。由于光流數(shù)據(jù)經(jīng)過調(diào)整,可以將光流當(dāng)作RGB圖像處理,所以在用光流數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)時(shí),用光流數(shù)據(jù)優(yōu)調(diào)通過RGB圖像訓(xùn)練得到的LRDCN模型。
學(xué)習(xí)率以及迭代次數(shù):由于網(wǎng)絡(luò)已經(jīng)預(yù)訓(xùn)練過,使用更小的學(xué)習(xí)率可以減弱過擬合現(xiàn)象。當(dāng)輸入RGB圖像時(shí),基礎(chǔ)學(xué)習(xí)率設(shè)置為0.001,每迭代8000次,學(xué)習(xí)率縮小10倍,迭代20 000次時(shí)停止訓(xùn)練。當(dāng)輸入光流數(shù)據(jù)時(shí),基礎(chǔ)學(xué)習(xí)率設(shè)置為0.001,每迭代20 000次,學(xué)習(xí)率縮小10倍,迭代70 000次時(shí)停止訓(xùn)練。
Dropout值設(shè)置:Dropout是指在模型訓(xùn)練時(shí)隨機(jī)讓網(wǎng)絡(luò)某些隱含層節(jié)點(diǎn)的權(quán)重不工作,不工作的節(jié)點(diǎn)可以暫時(shí)認(rèn)為不是網(wǎng)絡(luò)的一部分,訓(xùn)練過程中通過一定的概率隨機(jī)抽選不工作的節(jié)點(diǎn),從而增加網(wǎng)絡(luò)的泛化能力。當(dāng)使用RGB圖像訓(xùn)練網(wǎng)絡(luò)時(shí),將VGG16網(wǎng)絡(luò)的全鏈接層和LSTM層的dropout值設(shè)分別設(shè)置為0.9和0.5;當(dāng)使用光流數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)時(shí),將VGG16全連接層和LSTM層的dropout值分別設(shè)置為0.7和0.5。
定義同一視頻中連續(xù)的16幀作為一個(gè)測試單元,以8幀為步長,則長度為T的視頻序列中共含有(T-16)/8+1個(gè)測試單元。將每個(gè)測試單元分別輸入到LRDCN網(wǎng)絡(luò)中,最后取(T-16)/8+1個(gè)測試結(jié)果的平均值作為該段視頻的最終標(biāo)簽。
UCF101[8]數(shù)據(jù)集包含101類行為,行為涵蓋體育運(yùn)動、樂器演奏、人與人的日常交互等方面,每類行為至少有100段視頻,一共包含13 320段視頻。UCF101數(shù)據(jù)集官方將這13 320段視頻采用3種不同的劃分方式,從而獲得3組不同的訓(xùn)練、測試集合。每組訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集分別含有10 000段和3000段左右視頻,在使用時(shí),訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集必須成對使用,不得交叉使用。最終取在3組測試數(shù)據(jù)集合上的平均準(zhǔn)確率作為最終結(jié)果,為與其它文獻(xiàn)對比,準(zhǔn)確率以均值方式給出。
(1)特爾至強(qiáng)處理器E5-2603 v4;
(2)NVIDIA Tesla K80 GPU;
(3)Ubuntu 14.04;
(4)CUDA7.5。
3.2.1 VGG16網(wǎng)絡(luò)fc6與fc7層特征對精度的影響
VGG16網(wǎng)絡(luò)的fc6層與fc7層均提取得到1*4096維的特征,但實(shí)驗(yàn)發(fā)現(xiàn),無論使用RGB圖像或者使用光流數(shù)據(jù),fc6層特征要好于fc7層特征。如表1所示,當(dāng)使用RGB圖像時(shí),fc6特征比fc7特征高0.7%;當(dāng)使用光流數(shù)據(jù)時(shí),與fc7特征相比,使用fc6特征準(zhǔn)確率會提高1.6%,因此,后續(xù)實(shí)驗(yàn)中均使用fc6層特征。
表1 卷積特征對結(jié)果影響
3.2.2 LSTM單元隱含層維度對精度的影響
LSTM單元隱含層維度對識別精度影響較大,實(shí)驗(yàn)分析隱含層維度從128提高到1024對精度的影響,實(shí)驗(yàn)結(jié)果見表2。當(dāng)輸入RGB圖像時(shí),LSTM隱含層維度從128增加到1024,其識別準(zhǔn)確率提高4.94%。對于光流數(shù)據(jù),當(dāng)LSTM隱含層維度從128增加到512時(shí),識別率提高4.7%,但當(dāng)從512增加到1024時(shí),準(zhǔn)確率并沒有明顯區(qū)別。由于隨著隱含層維度的提高會導(dǎo)致訓(xùn)練時(shí)間的增加,并且存在過擬合風(fēng)險(xiǎn),因此在輸入RGB圖像時(shí),LSTM單元隱含層維度設(shè)為1024,當(dāng)輸入光流數(shù)據(jù)時(shí),設(shè)置為512。
3.2.3 綜合RGB與光流圖
RGB圖像與光流圖像在信息上存在很好的互補(bǔ)性,結(jié)合RGB圖像與光流圖像的預(yù)測結(jié)果會進(jìn)一步提高識別精度,見表3。將RGB圖像與光流圖像預(yù)測結(jié)果進(jìn)行1∶1融合后,準(zhǔn)確率提高到83.43%;進(jìn)一步將預(yù)測結(jié)果進(jìn)行1∶2 融合后,準(zhǔn)確率提高到84.68%。結(jié)果均好于改進(jìn)前的LRCN算法。
表2 不同LSTM隱層維度對精度影響
表3 不同LSTM隱層單元數(shù)對精度影響
為了驗(yàn)證算法的性能,表4給出與其它算法在UCF101數(shù)據(jù)集上的識別精度對比結(jié)果,從表中可以看出,改進(jìn)算法在UCF101數(shù)據(jù)集上取得了84.68%的平均識別率,高于其它算法。
表4 不同算法綜合對比
對長效遞歸卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),提出LRDCN算法。使用預(yù)訓(xùn)練、數(shù)據(jù)增廣等手段克服訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)模型帶來的過擬合問題。并通過實(shí)驗(yàn)分析了VGG16的fc6層與fc7層特征對識別精度的影響,以及LSTM單元隱含層維度對識別精度的影響。當(dāng)結(jié)合RGB與光流信息時(shí),在UCF101數(shù)據(jù)集上取得了84.68%的準(zhǔn)確率,明顯高于LRCN,驗(yàn)證了本算法的有效性。
算法中僅使用單層的LSTM網(wǎng)絡(luò),對獲取視頻序列的時(shí)域特征存在一定局限性,通過疊加LSTM層可以增強(qiáng)網(wǎng)絡(luò)對時(shí)域信息的表達(dá)能力,未來會研究使用多層LSTM網(wǎng)絡(luò)對行為識別精度的影響。