,,
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
現(xiàn)階段,監(jiān)控領(lǐng)域中往往需要專人在監(jiān)控顯示器前監(jiān)視,或在異常事件發(fā)生后進(jìn)行人工篩選視頻,這樣做不僅效率低下,且不能對(duì)可能發(fā)生的危險(xiǎn)視做出快速反應(yīng)并及時(shí)報(bào)警。如何對(duì)視頻內(nèi)容的識(shí)別,自動(dòng)化分析處理視頻數(shù)據(jù),成了一個(gè)亟需待解決的問(wèn)題。[1]
對(duì)視頻內(nèi)容的識(shí)別,首先需要提取視頻中有效的特征信息。目前,深度學(xué)習(xí)已成功應(yīng)用于圖片分類,人臉識(shí)別,物體檢測(cè)等靜止圖像的識(shí)別領(lǐng)域中[2],已被證明可以有效提取圖像的特征信息。但在視頻領(lǐng)域中,通常的深度卷積神經(jīng)網(wǎng)絡(luò)表現(xiàn)并不突出,主要由于視頻不僅具有圖像信息還具有時(shí)間運(yùn)動(dòng)信息,因此會(huì)受到光照,視角,背景,動(dòng)作快慢等眾多因素的影響。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)只能有效提取單一、靜止圖片的特征,而面對(duì)視頻這種,前后具有很強(qiáng)的時(shí)間相關(guān)性和空間相關(guān)性的時(shí)空特征,很難有效提取視頻的表達(dá)特征。
為了能同時(shí)提取時(shí)間與空間信息,一種直觀的做法是將2D卷積替換為3D卷積。Du等人提出了3D卷積神經(jīng)網(wǎng)絡(luò)[3],將連續(xù)幾幀圖片作為輸入。他們的工作表明了3D卷積比2D卷積更加適合于視頻視覺(jué)任務(wù)中,但是3D卷積只能提取很短一段時(shí)間(幾幀)內(nèi)的時(shí)間信息。為了提取解決這個(gè)問(wèn)題Simonyan等人提出了一種雙流網(wǎng)絡(luò)結(jié)構(gòu)[4],在3D卷積網(wǎng)絡(luò)的基礎(chǔ)上又加入了人體運(yùn)動(dòng)的光流信息作為輔助。作者把兩種網(wǎng)絡(luò)結(jié)構(gòu)的輸出,通過(guò)簡(jiǎn)單的損失函數(shù)進(jìn)行特征合并。這對(duì)于長(zhǎng)視頻來(lái)說(shuō)這不是一種很好的聚合信息的方法。為了解決這個(gè)問(wèn)題,Diba等人提出了在時(shí)間軸上進(jìn)行編碼,隨后壓縮到低維空間中[5]。通過(guò)這種方法可以在較長(zhǎng)時(shí)間內(nèi)聚合時(shí)間信息。在動(dòng)作過(guò)程中,時(shí)間和動(dòng)作是相輔相成的,空間與時(shí)間的交互信息對(duì)動(dòng)作識(shí)別來(lái)說(shuō)也是一種非常重要的信息。但是雙流結(jié)構(gòu)是兩個(gè)獨(dú)立的網(wǎng)絡(luò)結(jié)構(gòu),即一個(gè)網(wǎng)絡(luò)只提取空間信息,另一個(gè)網(wǎng)絡(luò)只提取時(shí)間信息,缺少了兩種信息的交互。為了使兩種網(wǎng)絡(luò)能相互傳遞信息,F(xiàn)eichtenhofer等人提出了一種位于兩個(gè)網(wǎng)絡(luò)之間的融合層[6],通過(guò)這個(gè)層,可以使得時(shí)間信息與空間信息相互交換。另一種解決方法是,在卷積神經(jīng)網(wǎng)絡(luò)頂層加入循環(huán)神經(jīng)網(wǎng)絡(luò)組成的混合網(wǎng)絡(luò),充分利用了兩種網(wǎng)絡(luò)的優(yōu)勢(shì)。Danhue等人在多幀卷積神經(jīng)網(wǎng)絡(luò)之后加入了長(zhǎng)短期記憶模型(LSTM)循環(huán)神經(jīng)網(wǎng)絡(luò)[7],使得可以處理較長(zhǎng)時(shí)間的依賴時(shí)間關(guān)系,相比于原始的雙流網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)更加緊湊,計(jì)算效率更高。
過(guò)去的研究方法都是針對(duì)于如何有效提取視頻的表達(dá)特征,但是一張圖片中往往暗含了多個(gè)提示信息。在動(dòng)作識(shí)別中,場(chǎng)景信息也是另一種重要的提示信息,例如在湖上的場(chǎng)景更有可能是劃船,而不太可能是在打籃球。因此可以將場(chǎng)景信息作為一種提示信息加入識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)中。基于此,本文提出了一種基于場(chǎng)景識(shí)別的雙流網(wǎng)絡(luò)結(jié)構(gòu)模型,充分考慮了場(chǎng)景信息對(duì)識(shí)別的提示作用。本文提出的場(chǎng)景識(shí)別雙流網(wǎng)絡(luò)模型總體結(jié)構(gòu)如圖1所示,下面具體詳細(xì)說(shuō)明。
圖1 網(wǎng)絡(luò)總體結(jié)構(gòu)圖
本章主要的講述了文所采用的網(wǎng)絡(luò)結(jié)構(gòu),以及詳細(xì)的參數(shù)設(shè)置。
淺層網(wǎng)絡(luò)的模型泛化能力有限,網(wǎng)絡(luò)越深,提取的特征越抽象,對(duì)識(shí)別的結(jié)果也有很大的改善,但同時(shí)參數(shù)成倍增加,消耗大量的計(jì)算資源,變得難以訓(xùn)練。為了解決這個(gè)問(wèn)題GoogLeNet網(wǎng)絡(luò)提出了inception模塊[8],使得在網(wǎng)絡(luò)層數(shù)增加的同時(shí),而不大量增加參數(shù)。
由于視頻幀與幀之間圖像基本相似,直接使用GoogLeNet網(wǎng)絡(luò)會(huì)收斂于一個(gè)局部最優(yōu)值,無(wú)法將特征最大化區(qū)分。為了解決這個(gè)問(wèn)題,本文在網(wǎng)絡(luò)中加入了批歸一化層(batch normalization)[9]。批歸一化層可以使得這一層的特征進(jìn)行約束,使得相似的特征盡可能減少之間的距離,從而最大化不同特征間的距離,同時(shí)也避免了因?yàn)閿?shù)據(jù)產(chǎn)生的微小變動(dòng),經(jīng)過(guò)數(shù)層網(wǎng)絡(luò)層而影響不斷變大,從而產(chǎn)生梯度爆炸或梯度消失的問(wèn)題。批歸一化層的算法如下:
輸入:m維數(shù)據(jù):X={x_(i...m)}
訓(xùn)練的參數(shù):γ,β
輸出:{yi=BNγ,β(x)}
計(jì)算樣本的均值
(1)
(2)
(3)
(4)
本文將批歸一化層加入inception模塊中,加入后的inception模塊結(jié)構(gòu)如圖2所示。加入了批歸一化層后的GoogLeNet的詳細(xì)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
圖2 加入批歸一化層后的inception模塊結(jié)構(gòu)圖
表1 加入批歸一化層之后的GoogLeNet詳細(xì)參數(shù)
將深度學(xué)習(xí)技術(shù)運(yùn)用于場(chǎng)景識(shí)別中也是未來(lái)的趨勢(shì)所在。本文采用了監(jiān)督學(xué)習(xí)方法。先對(duì)每個(gè)視頻按照室外,屋內(nèi),體育場(chǎng),馬場(chǎng),湖上等進(jìn)行人為分為11類場(chǎng)景。場(chǎng)景識(shí)別網(wǎng)絡(luò)應(yīng)該選取較小型的網(wǎng)絡(luò),主要的原因在于:1.不造成整個(gè)動(dòng)作識(shí)別網(wǎng)絡(luò)參數(shù)量過(guò)大。參數(shù)量過(guò)大,不容易訓(xùn)練,并且可能會(huì)造成過(guò)擬合等問(wèn)題。2.若場(chǎng)景識(shí)別網(wǎng)絡(luò)復(fù)雜,會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)傾向于場(chǎng)景識(shí)別,而不是動(dòng)作識(shí)別。因此,本文選取簡(jiǎn)單的5層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型,如圖3所示。
圖3 場(chǎng)景識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)圖
循環(huán)神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)最大的不同是,循環(huán)神經(jīng)網(wǎng)絡(luò)引入了狀態(tài)變量。在一個(gè)序列中,循環(huán)神經(jīng)網(wǎng)絡(luò)當(dāng)前時(shí)刻的狀態(tài)不僅保存了過(guò)去時(shí)刻的信息,還與當(dāng)前時(shí)刻的輸入共同決定了當(dāng)前時(shí)刻的輸出,適合用于處理序列數(shù)據(jù),在自然語(yǔ)言處理中也有被大量使用。但是循環(huán)神經(jīng)網(wǎng)絡(luò)缺少了遺忘的設(shè)計(jì),使得早期的信息隨著時(shí)間推移而逐漸消失,從而導(dǎo)致了梯度往往消失或爆炸,這使得基于梯度的優(yōu)化方法變得非常困難,難以捕捉時(shí)間跨度較大的依賴關(guān)系。目前主要有兩種解決方法,一種是發(fā)現(xiàn)更好的優(yōu)化算法例如使用梯度裁剪等等[10]。第2種是設(shè)計(jì)一個(gè)更優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),也是當(dāng)前的研究重點(diǎn)。這方面第一個(gè)嘗試是SakH提出的長(zhǎng)短期記憶模型(LSTM)[11]。與之前循環(huán)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)最大的不同是,長(zhǎng)短期記憶模型加入了遺忘門和輸出門,信息不再是簡(jiǎn)單輸入,而是通過(guò)遺忘門進(jìn)行控制。一旦LSTM發(fā)現(xiàn)了重要的信息,可以攜帶這些信息跨越較長(zhǎng)時(shí)間,從而避免了一些較早期的信息丟失。
與LSTM類似,Kyunghyun等人提出了門控遞歸單元(GRU)模型[12]。GRU和LSTM主要的區(qū)別在于輸入門的位置。LSTM的輸入門只針對(duì)輸入進(jìn)行單獨(dú)控制,而GRU的更新門是前一步的隱狀態(tài)與輸入共同決定更新門的狀態(tài)。在視頻內(nèi)容識(shí)別這個(gè)任務(wù)中,GRU相比于LSTM更加合適,主要的原因之一是大部分的空間特征是相似的,對(duì)識(shí)別來(lái)說(shuō)這些信息是冗余的。GRU可以根據(jù)前一步的隱狀態(tài),對(duì)輸入的信息流進(jìn)行只提取區(qū)別較大的特征,進(jìn)而減少這些冗余的信息量,加快了收斂的速度,提高了訓(xùn)練的效率。GRU的網(wǎng)絡(luò)示意圖如圖4所示。
圖4 門控遞歸單元結(jié)構(gòu)圖
門控遞歸單元的算法過(guò)程如下:
輸入:Xt,上一步的隱狀態(tài)H(t-1)。
輸出:當(dāng)前時(shí)刻隱狀態(tài)Ht。
第一步:計(jì)算重置門和更新門的狀態(tài):
Rt=σ(XtWxr+Ht-1Whr+br) //計(jì)算重置門的狀態(tài)
(5)
Zt=σ(XtWxz+Ht-1Whz+bz) //計(jì)算更新門的狀態(tài)
(6)
其中σ為sigmoid函數(shù)使得重置門和更新門的值都在[0,1]之間,作為門的開(kāi)關(guān)程度。其中(Wxr,Whr,br)和(Wxz,Whz,bz)分別為重置門和更新門所需訓(xùn)練的參數(shù)
第二步:計(jì)算候選隱狀態(tài):
(7)
這里使用到了第一步計(jì)算的重置門,若重置門為0則將上一個(gè)隱藏狀態(tài)全部丟棄。這個(gè)設(shè)計(jì)有助于捕捉時(shí)間序列里短期的依賴關(guān)系。
第三步:計(jì)算當(dāng)前隱狀態(tài):
(8)
Zt為第一步計(jì)算的更新門,更新門控制了當(dāng)前隱狀態(tài)應(yīng)當(dāng)如何與包含當(dāng)前的時(shí)間信息的候選隱狀態(tài)所更新,若更新門為1則將這一時(shí)刻的信息全部丟棄,沿用上一個(gè)時(shí)刻的隱狀態(tài)。這個(gè)設(shè)計(jì)可以減少循環(huán)神經(jīng)網(wǎng)絡(luò)中的梯度衰減問(wèn)題,并更好的捕捉時(shí)間序列中時(shí)間跨度較大的依賴關(guān)系。
本章重點(diǎn)講述了本文的訓(xùn)練過(guò)程與結(jié)果,并對(duì)結(jié)果進(jìn)行分析與比較
本文實(shí)驗(yàn)數(shù)據(jù)采用幾個(gè)公開(kāi)的視頻動(dòng)作識(shí)別數(shù)據(jù)集UCF50,UCF101和HMDB51。UCF50是采集了來(lái)自于網(wǎng)絡(luò)的真實(shí)視頻一共有6680個(gè)視頻,每段視頻的像素分辨率較低,一共含有50類動(dòng)作。UCF101數(shù)據(jù)集是對(duì)UCF50的擴(kuò)充,將視頻數(shù)量擴(kuò)充到了13320個(gè)視頻,并將動(dòng)作擴(kuò)展到了101類,包含了諸如,化妝,剪頭發(fā),打太極,游泳等幾個(gè)常見(jiàn)動(dòng)作。視頻中存在相機(jī)運(yùn)動(dòng),對(duì)象外觀和姿勢(shì),對(duì)象尺度,視點(diǎn),雜亂的背景,照明條件等的大變化,是最具有挑戰(zhàn)性的數(shù)據(jù)集之一。HMDB51數(shù)據(jù)集,共有6849個(gè)視頻,大部分來(lái)自于電影片段,包含了人與人交互類,比如擁抱,親吻等,人與物交互類如拔劍,騎馬等51類動(dòng)作。
本文在Linux系統(tǒng)下利用tensorflow平臺(tái)搭建網(wǎng)絡(luò)結(jié)構(gòu)。與通常訓(xùn)練神經(jīng)網(wǎng)絡(luò)不同的地方在于,本文對(duì)動(dòng)作識(shí)別網(wǎng)絡(luò)和場(chǎng)景識(shí)別網(wǎng)絡(luò)單獨(dú)訓(xùn)練,而不是聯(lián)合在一起訓(xùn)練。主要的原因在于:1.場(chǎng)景信息是作為提示信息,需要盡可能給予正確信息。2.場(chǎng)景信息與動(dòng)作識(shí)別信息屬于不同層次信息,損失函數(shù)值代表的意義不同,因此采取對(duì)兩個(gè)網(wǎng)絡(luò)單獨(dú)訓(xùn)練法。
場(chǎng)景識(shí)別網(wǎng)絡(luò)的訓(xùn)練使用了ImageNet的參數(shù)作為初始化參數(shù),并對(duì)數(shù)據(jù)隨機(jī)采取了旋轉(zhuǎn),平移,縮放等數(shù)據(jù)擴(kuò)充方法。最后對(duì)每張圖片裁成224x224大小,方便卷積計(jì)算。訓(xùn)練采用Adam優(yōu)化算法,最優(yōu)化交叉熵?fù)p失函數(shù)。訓(xùn)練結(jié)果如圖5所示。可以看到當(dāng)?shù)螖?shù)達(dá)到600多次時(shí),損失函數(shù)值趨向于穩(wěn)定。此時(shí)準(zhǔn)確率為98%,并將此時(shí)的參數(shù)固定。隨后訓(xùn)練動(dòng)作識(shí)別網(wǎng)絡(luò)。
圖5 場(chǎng)景識(shí)別網(wǎng)絡(luò)的損失函數(shù)值與準(zhǔn)確率
本文將80%的數(shù)據(jù)集用于訓(xùn)練動(dòng)作識(shí)別網(wǎng)絡(luò),剩余的20%數(shù)據(jù)集用于測(cè)試。以視頻幀作為網(wǎng)絡(luò)的輸入,每次送入16個(gè)視頻作為一個(gè)batch,對(duì)每個(gè)數(shù)據(jù)集完整訓(xùn)練20遍。為了選取最好的學(xué)習(xí)率,本文分別測(cè)試了學(xué)習(xí)率為10-3,10-4,10-53種情況收斂時(shí)的loss值,如表2所示,可以看到當(dāng)學(xué)習(xí)率為10-4時(shí) loss函數(shù)最低,因此本文的學(xué)習(xí)率采取10-4。
表2 不同學(xué)習(xí)率對(duì)loss值的影響
兩種不同的網(wǎng)絡(luò)會(huì)存在兼容性的問(wèn)題,為了探究動(dòng)作識(shí)別網(wǎng)絡(luò)與場(chǎng)景識(shí)別網(wǎng)絡(luò)最好的加權(quán)權(quán)值。本文對(duì)每個(gè)網(wǎng)絡(luò)的置信度分別設(shè)置為1:0.5,1:1及1:2其結(jié)果如表3所示。從第一行,第二行可以看出,隨著場(chǎng)景識(shí)別信息的增多,識(shí)別的準(zhǔn)確率有較大的提升,從而說(shuō)明了場(chǎng)景信息對(duì)動(dòng)作識(shí)別的準(zhǔn)確率有促進(jìn)作用。當(dāng)場(chǎng)景信息增大到1:2時(shí),準(zhǔn)確率略有下降,過(guò)多的場(chǎng)景信息反而可能會(huì)影響動(dòng)作的識(shí)別。從表4中的結(jié)果可以得到動(dòng)作識(shí)別網(wǎng)絡(luò)與場(chǎng)景識(shí)別網(wǎng)絡(luò)最佳的權(quán)值為1:1。
表3 動(dòng)作識(shí)別網(wǎng)絡(luò)與場(chǎng)景識(shí)別網(wǎng)絡(luò)不同加權(quán)值的準(zhǔn)確率
表4 本文方法與其他一些典型方法比較
表4給出了本文的方法和動(dòng)作識(shí)別中其他一些典型的方法在UCF50,UCF101和HMDB51數(shù)據(jù)集上的識(shí)別準(zhǔn)確率比較。C3D是典型的使用3D卷積神經(jīng)網(wǎng)絡(luò),所以準(zhǔn)確率在UCF101等大型數(shù)據(jù)集上表現(xiàn)較差。Two Stream是通過(guò)構(gòu)建時(shí)空與光流的雙流網(wǎng)絡(luò)結(jié)構(gòu),相比于直接使用3D神經(jīng)網(wǎng)絡(luò)有了較大的提升。C3D+lstm是在C3D網(wǎng)絡(luò)的基礎(chǔ)上,在其頂部加入了循環(huán)神經(jīng)網(wǎng)絡(luò)組成的混合網(wǎng)絡(luò),改善了Two Stream的缺點(diǎn)。從表的結(jié)果可知,本文的方法相比于一些其他的方法,在動(dòng)作識(shí)別準(zhǔn)確率上有更好的性能。
為了探究場(chǎng)景識(shí)別信息對(duì)動(dòng)作識(shí)別準(zhǔn)確率的影響。本文也分別測(cè)試了一些典型方法加入場(chǎng)景識(shí)別信息后的準(zhǔn)確率,其結(jié)果如圖6所示??梢钥吹郊尤雸?chǎng)景識(shí)別信息之后,網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率均有不同程度的提升,從而證明了本文提出的加入場(chǎng)景信息可以有效改善動(dòng)作識(shí)別網(wǎng)路的準(zhǔn)確率。
圖6 加入了場(chǎng)景信息后與原來(lái)的網(wǎng)絡(luò)識(shí)別準(zhǔn)確率對(duì)比
在人體動(dòng)作識(shí)別任務(wù)上,本文提出了一種基于場(chǎng)景識(shí)別的雙流網(wǎng)絡(luò)結(jié)構(gòu)。通過(guò)加入場(chǎng)景信息,可以有效改善網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率。本文提出的方法在UCF101和HMDB51數(shù)據(jù)集上分別取得了93.81%和65.72%的準(zhǔn)確率,優(yōu)于一些典型的神經(jīng)網(wǎng)絡(luò)識(shí)別方法。由于現(xiàn)在網(wǎng)絡(luò)還需要大量的參數(shù),需要消耗很大的計(jì)算資源,還無(wú)法運(yùn)用于攝像頭等嵌入式設(shè)備中進(jìn)行實(shí)時(shí)的識(shí)別,未來(lái)會(huì)在模型壓縮方面與運(yùn)算效率方面做深入研究。