李冠儒,萬宇杰
(淮北師范大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽淮北 235000)
隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的發(fā)展,人們可以很便捷地利用手機(jī)來拍攝記錄生活,并分享至相關(guān)網(wǎng)絡(luò)平臺(tái),如抖音、快手等. 根據(jù)抖音平臺(tái)發(fā)布的數(shù)據(jù)報(bào)告,截止2020 年12 月,抖音平均每天的視頻搜索量超過4 億. 這些海量視頻通過互聯(lián)網(wǎng)平臺(tái)傳播到人們手中,一方面滿足了人們精神需要,另一方面也對視頻內(nèi)容的監(jiān)管提出了更高要求. 因此這些互聯(lián)網(wǎng)平臺(tái)需要一種高效、智能的視頻分析手段來管理,對視頻進(jìn)行分類就成為解決問題的關(guān)鍵一步. 近年來,在圖像和視頻領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)(CNN)憑借優(yōu)秀的視覺表現(xiàn)學(xué)習(xí)能力正在快速興起. 然而視頻與圖像不同,視頻是一連串圖像幀的集合,比圖像變化更多更復(fù)雜,因此普通的神經(jīng)網(wǎng)絡(luò)模型很難學(xué)習(xí)出強(qiáng)大的通用時(shí)空特征. 人們提出了很多視頻時(shí)空信息編碼方法,其中最基本的是將CNN 網(wǎng)絡(luò)中的卷積核從二維膨脹至三維,從而訓(xùn)練出3D-CNN 網(wǎng)絡(luò)模型,增加的一維即是時(shí)間維度,因此3D-CNN網(wǎng)絡(luò)不僅可以捕獲每個(gè)視頻幀的圖像信息,還可以得到不同視頻幀之間蘊(yùn)含的運(yùn)動(dòng)信息. 雖然視頻分類研究取得了長足的發(fā)展,但很多準(zhǔn)確性的提高來自于新的強(qiáng)大架構(gòu)的引入[1-5],而很多架構(gòu)都是建立在開銷高昂的三維時(shí)空卷積之上的,且參數(shù)量、模型尺寸、運(yùn)算時(shí)間也比2D-CNN 大幅上漲,以人們熟知的C3D 網(wǎng)絡(luò)為例,僅11 層的3D-CNN,竟然比2D 網(wǎng)絡(luò)中的ResNet-152 還大,這就導(dǎo)致在訓(xùn)練3D-CNN時(shí)變得非常吃力.
因此,現(xiàn)在許多算法嘗試使用不同的方法來簡化網(wǎng)絡(luò)模型,例如P3D[3]、R(2+1)D[2]、S3D[4]、X3D[6]、SmallBigNet[7]、TSM[8]、multigrid[9]. 在二維靜態(tài)圖像領(lǐng)域中,MobileNet[10]使用深度可分離卷積對2D 的k×k濾波器進(jìn)行分解,先進(jìn)行k×k的深度卷積,再進(jìn)行1×1 的逐點(diǎn)卷積. 通過使用深度卷積來降低參數(shù)量,從而達(dá)到簡化網(wǎng)絡(luò)模型、加快計(jì)算的效果. MobileNet 指出,當(dāng)卷積的通道數(shù)遠(yuǎn)大于k時(shí),卷積的參數(shù)量將減少k2倍,從而大大減少整個(gè)網(wǎng)絡(luò)模型的運(yùn)算量.
受MobileNet 的深度可分離卷積啟發(fā),本文提出一種基于3D 深度可分離卷積的算法,通過把3D卷積[11]分解成3×3×3 的深度卷積和1×1×1 的點(diǎn)卷積,從而降低3D 卷積中龐大的參數(shù)量,并加入注意力機(jī)制以提高模型的準(zhǔn)確性.
深度卷積神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)分類領(lǐng)域應(yīng)用廣泛并且取得了巨大突破,尤其是在圖像和視頻方面,但深度卷積神經(jīng)網(wǎng)絡(luò)也存在3 個(gè)問題:①常規(guī)的神經(jīng)網(wǎng)絡(luò)并不是網(wǎng)絡(luò)層數(shù)越多,效果就越好;②神經(jīng)網(wǎng)絡(luò)層數(shù)過深,容易造成梯度消失,使得網(wǎng)絡(luò)無法傳播、學(xué)習(xí),從而導(dǎo)致訓(xùn)練效果不好;③層數(shù)太淺的網(wǎng)絡(luò)識(shí)別效果往往不好. 為了解決上述3 個(gè)問題,He 等[12]提出了殘差網(wǎng)絡(luò)ResNet,該算法通過給淺層網(wǎng)絡(luò)附加一個(gè)恒等映射從而達(dá)到加深網(wǎng)絡(luò)層數(shù)的目標(biāo),構(gòu)建出一個(gè)殘差模塊. 通過學(xué)習(xí)殘差,將部分原始輸入的信息經(jīng)過恒等映射層直接輸?shù)较乱粚樱谝欢ǔ潭壬媳苊饬司矸e層在進(jìn)行信息傳遞時(shí)的特征丟失,在保留輸入特征的同時(shí),可以學(xué)習(xí)到新的特征,有效避免網(wǎng)絡(luò)因?qū)訑?shù)過深而出現(xiàn)性能退化的現(xiàn)象.
搭建深層神經(jīng)網(wǎng)絡(luò)模型的基本條件是更深層網(wǎng)絡(luò)誤差應(yīng)該比淺層網(wǎng)絡(luò)誤差更低. 因此在構(gòu)建深層模型時(shí),很自然地用到恒等映射,即H(X)=X. 但當(dāng)網(wǎng)絡(luò)層數(shù)較深時(shí),容易出現(xiàn)梯度消失問題,并且深層網(wǎng)絡(luò)難以直接擬合H(X),從而導(dǎo)致模型退化,因此ResNet提出了“shortcut”跳連接,這就把擬合恒等映射H(X)變?yōu)閿M合殘差映射F(X),此時(shí)實(shí)際映射H(X)就變成了H(X)=F(X)+X. 當(dāng)F(X)=0 時(shí),就重新變成恒等映射H(X)=X,所以作為殘差函數(shù)的F(X)=H(X)-X應(yīng)最小化,從而模型可以模擬出實(shí)際映射,也不會(huì)因?yàn)榫W(wǎng)絡(luò)層數(shù)過深使得模型退化,并且殘差函數(shù)F(X)也比恒等映射更容易訓(xùn)練.
本文用L層殘差塊來模擬連接,假設(shè)輸入的第l個(gè)殘差塊為x(l),則該殘差塊的輸出可表示為x(l+1),即也是第l+1 個(gè)殘差塊的輸入. 那么第l個(gè)殘差塊的輸出為:
由式(1)可知,在殘差網(wǎng)絡(luò)中,下層網(wǎng)絡(luò)總在積累上層網(wǎng)絡(luò)的殘差特征,因此l+1 層所包含的特征信息比l層更多,所以L層擁有的信息會(huì)最多. 在梯度反向傳播時(shí),淺層網(wǎng)絡(luò)的第l個(gè)殘差塊所對應(yīng)的誤差損失loss的計(jì)算公式為:
本文的主干網(wǎng)絡(luò)即采用ResNet模型.
注意力機(jī)制,常被運(yùn)用在圖像處理和自然語言處理領(lǐng)域. 本文以CBAM (Convolutional Block Attention Module,CBAM)[13]為基礎(chǔ)構(gòu)建3D-CBAM 注意力模塊并嵌入三維可分離網(wǎng)絡(luò)中.
3D自適應(yīng)注意力模塊完整結(jié)構(gòu)如圖1所示.
圖1 注意力機(jī)制
由于3D 卷積比2D 卷積多一個(gè)維度,輸入特征F3D結(jié)構(gòu)為F3D∈RW×H×D×C,3D-CBAM 會(huì)按照順序計(jì)算出通道注意力特征圖Mc3D∈R1×1×1×C,以及空間注意力特征圖Ms3D∈R1×H×W×D,整個(gè)過程公式如下所示:
不同通道對3D 網(wǎng)絡(luò)模型分類效果的貢獻(xiàn)不同. 在3D-CBAM 中,通道域的注意力模塊就是對這些不同貢獻(xiàn)的通道進(jìn)行篩選,選出對結(jié)果分類貢獻(xiàn)更高的通道,篩選過程如圖2所示.
圖2 通道注意力
算法首先基于深度D、寬度W以及高度H對輸入特征圖F3D進(jìn)行均值池化和最大值池化操作,再基于對應(yīng)元素分別把通過MLP 的特征進(jìn)行加和操作,使用激活函數(shù)sigmoid 激活,最后把輸入特征圖F3D與上述操作生成的通道特征圖Mc3D(F3D)相乘,從而得到通道特征圖F′3D,計(jì)算公式為:
式中:W0∈RC/r×C,W1∈RC×C/r. 使用激活函數(shù)Relu對W0進(jìn)行激活操作,σ是sigmoid操作,減少率r選擇16,則通過均值池化和最大值池化后,通道數(shù)量由C減少至C16,參數(shù)量變少,最后通過全連接操作將通道數(shù)量恢復(fù)至C.
最后,知識(shí)產(chǎn)權(quán)評議是優(yōu)化財(cái)政性資金資助的科技項(xiàng)目和科技成果管理的核心裝置。在科技項(xiàng)目立項(xiàng)環(huán)節(jié),通過知識(shí)產(chǎn)權(quán)評議,可以及時(shí)發(fā)現(xiàn)和防范科技項(xiàng)目的知識(shí)產(chǎn)權(quán)風(fēng)險(xiǎn),避免因知識(shí)產(chǎn)權(quán)問題而導(dǎo)致重大經(jīng)濟(jì)損失或重大科技項(xiàng)目的重復(fù)研究;而在項(xiàng)目實(shí)施過程中,通過建立知識(shí)產(chǎn)權(quán)評議機(jī)制,可以實(shí)現(xiàn)項(xiàng)目管理部門和項(xiàng)目承擔(dān)者對科技成果的全過程管理,規(guī)范科技成果的創(chuàng)造、運(yùn)用、保護(hù)和流轉(zhuǎn)過程。
同樣,RGB 圖像中不同位置的像素對3D 網(wǎng)絡(luò)模型分類效果的貢獻(xiàn)也不相同. 在3D-CBAM 中,空間域的注意力模型就是對這些不同位置的像素進(jìn)行篩選,選出對結(jié)果分類貢獻(xiàn)更高的區(qū)域,篩選過程如圖3所示.
圖3 空間注意力
其中空間域注意力模塊的輸入就是通道域注意力模塊的輸入,即F′3D,然后基于通道對其分別做最大值池化形成特征圖F smax和均值池化形成特征圖F savg,接著基于通道將兩個(gè)特征圖F savg與F smax合并,再使用卷積核為7×7 的卷積對其降維,得到的特征圖使用sigmoid 激活,然后將激活后的特征圖與第一步的輸入特征圖F′3D按元素進(jìn)行相乘,從而得到最終的空間域特征圖F′′3D,計(jì)算公式為:
3D 深度可分離卷積,是一種通過對3D 卷積神經(jīng)網(wǎng)絡(luò)的卷積進(jìn)行分解從而減少網(wǎng)絡(luò)參數(shù)、提高網(wǎng)絡(luò)訓(xùn)練速度的算法,它將標(biāo)準(zhǔn)3D卷積分解為對應(yīng)的深度卷積和1×1×1 的點(diǎn)卷積. 對于卷積神經(jīng)網(wǎng)絡(luò),深度卷積將輸入特征圖的每個(gè)通道都視為一個(gè)單獨(dú)的特征圖,然后對每個(gè)特征圖都使用一個(gè)濾波器進(jìn)行卷積,并且只卷積一次,得到與輸入特征圖通道數(shù)相同個(gè)數(shù)的輸出特征圖,并將這些特征圖按通道疊加在一起視為一個(gè)完整的輸出特征圖;點(diǎn)卷積則把若干1×1×1 卷積接在深度卷積輸出的特征圖之后,進(jìn)行卷積從而得到最終想要的結(jié)果.一個(gè)標(biāo)準(zhǔn)的3D卷積計(jì)算過程分為兩步,第一步提取輸入特征,第二步將提取的特征合成為新的特征圖輸出. 總的來說深度可分離卷積的計(jì)算過程分為兩步,第一步按通道提取特征,第二步合并特征. 其中提取特征只進(jìn)行一次,合并特征進(jìn)行多次. 而3D 卷積的計(jì)算量主要集中在特征提取上,因而深度卷積可以大幅減少模型的計(jì)算量和尺寸.
對于標(biāo)準(zhǔn)3D 卷積,假設(shè)輸入尺寸為F×F×F×M,其中F為輸入特征圖的長和寬,這是假定兩者是相同的,T為時(shí)序維度,M為通道數(shù).輸出尺寸為F×F×T×N,其中N為輸出通道數(shù),卷積核尺寸為K×K×K.
則標(biāo)準(zhǔn)3D卷積的計(jì)算量為:
對于3D深度可分離卷積,其中深度卷積所包含的計(jì)算量為:
對應(yīng)的點(diǎn)卷積的計(jì)算量為:
3D 深度可分離卷積所包含的計(jì)算量與3D 標(biāo)準(zhǔn)卷積所包含的計(jì)算量之比為:
本文使用101 層的ResNet 網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò),其結(jié)構(gòu)參數(shù)和數(shù)據(jù)流如表1 所示. 網(wǎng)絡(luò)由5 個(gè)隱藏層組成,分別為conv1、conv2_x、conv3_x、conv4_x和conv5_x. 并且每個(gè)block 在點(diǎn)卷積后接3D-CBAM注意力機(jī)制.
表1 網(wǎng)絡(luò)結(jié)構(gòu)
(1)處理器:Inter Core ?i7-9700 CPU,主頻3 GHz.(2)內(nèi)存:32 GB.(3)系統(tǒng)類型:Windows 10 64 位操作系統(tǒng).(4)實(shí)驗(yàn)環(huán)境:Python3.7, Numpy,Opencv等包.
本文選用UCF101 作為實(shí)驗(yàn)使用的數(shù)據(jù)集,它也是動(dòng)作行為識(shí)別算法的公認(rèn)數(shù)據(jù)集,包括101 個(gè)種類,由13 320個(gè)視頻剪輯段組成,大多數(shù)視頻剪輯段的時(shí)間長度在2 ~10 秒內(nèi),并且視頻剪輯段的空間分辨率為240 px × 320 px,幀速為25 幀/秒,總時(shí)長約27 小時(shí). 數(shù)據(jù)集在采集時(shí),由于受到攝像機(jī)運(yùn)動(dòng)、背景混亂、存在遮擋、光線不充足、幀質(zhì)量低等因素影響,所以在視頻分類任務(wù)中具有一定挑戰(zhàn)性.
首先,將數(shù)據(jù)集按照每間隔4幀提取1幀的方式把視頻剪輯段轉(zhuǎn)換成圖像幀數(shù)據(jù)集,當(dāng)部分短視頻剪輯段經(jīng)上述轉(zhuǎn)換后,得到的圖像幀數(shù)少于16 幀時(shí),則將這些短視頻重新剪切,不斷降低間隔幀數(shù),直到滿足剪切后的幀數(shù)大于16幀為止.并將所有得到的圖像幀大小調(diào)整為128 px × 171 px,大約為原圖像幀分辨率的一半. 再將調(diào)整后的圖像幀數(shù)據(jù)集按照6∶2∶2 的比例劃分成訓(xùn)練集、驗(yàn)證集和測試集.同時(shí)為了增強(qiáng)模型的穩(wěn)定性和提高模型精度,在向模型輸入數(shù)據(jù)前,使用112 px × 112 px 的隨機(jī)裁剪來處理圖像幀. 最后按概率50%對每個(gè)輸入數(shù)據(jù)進(jìn)行水平翻轉(zhuǎn).
實(shí)驗(yàn)中網(wǎng)絡(luò)模型的相關(guān)超參數(shù)的設(shè)置見表2,其中學(xué)習(xí)率的初始值設(shè)為0.000 01,迭代衰減率為0.1,訓(xùn)練時(shí)批量大小設(shè)為16,Dropout 取值為0.8,L2正則化lambda取值為0.005.
表2 模型定義參數(shù)
在UCF101 數(shù)據(jù)集上訓(xùn)練了100 個(gè)epoch,準(zhǔn)確率的變化曲線如圖4 所示,最終模型的識(shí)別準(zhǔn)確率可達(dá)到90.8%.
圖4 模型準(zhǔn)確率
表3 表示各網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)量. 相比于原來的ResNet3D 網(wǎng)絡(luò),本文構(gòu)建的網(wǎng)絡(luò)在不同深度下,參數(shù)量和計(jì)算量都有明顯的下降,算法的時(shí)間復(fù)雜度大大降低,從而加快訓(xùn)練速度.
表3 不同模型的網(wǎng)絡(luò)參數(shù)量
表4表示在UCF101數(shù)據(jù)集上,常見算法的準(zhǔn)確率. 本文算法比C3D 在準(zhǔn)確率上提高5.6%,主要原因是因?yàn)楸疚牟捎昧烁顚哟蔚木W(wǎng)絡(luò)結(jié)構(gòu).
表4 不同模型的準(zhǔn)確率
本文通過優(yōu)化3D 神經(jīng)網(wǎng)絡(luò),將普通3D 卷積替換成深度卷積和點(diǎn)卷積,并結(jié)合注意力機(jī)制,一方面有效降低網(wǎng)絡(luò)參數(shù),加快學(xué)習(xí)速度;另一方面通過結(jié)合CBAM,讓網(wǎng)絡(luò)關(guān)注更有價(jià)值的區(qū)域,從而提升網(wǎng)絡(luò)準(zhǔn)確率. 因?yàn)闇p少了參數(shù),所以速度有所提升,但由于參數(shù)的減少,損失了一些知識(shí),模型準(zhǔn)確率還有待進(jìn)一步提升.