馬 莉,王 卓,代新冠,賈榮豪
(西安科技大學 通信與信息工程學院,陜西 西安 710600)
近年來,隨著深度學習技術的迅猛發(fā)展,行為識別技術廣泛應用于安全、交通及醫(yī)療等領域,利用行為識別技術對建筑工地施工人員行為進行智能監(jiān)察成為廣泛研究的熱點。傳統(tǒng)的人員不安全行為識別主要采用前端視頻采集并結合云端檢測識別的模式,而邊緣計算具有實時處理的優(yōu)勢,能減少網(wǎng)絡傳輸帶來的檢測時延,并降低因網(wǎng)絡傳輸帶來的隱私數(shù)據(jù)泄露風險[1]。因此,設計并實現(xiàn)人員不安全行為的邊緣檢測模型具有重要的現(xiàn)實意義。
由于云端的行為識別模型主要基于GPU進行推理,對處理器性能有較高要求,大量網(wǎng)絡參數(shù)也會占用較多存儲空間。識別模型受限于處理器性能與內(nèi)存空間無法直接在邊緣端設備上實時運行,因此,需開展模型輕量化設計,在保證模型識別準確率的前提下降低模型計算復雜度和模型大小,解決識別模型在邊緣設備上的部署問題。
基于深度學習的人員行為識別方法由于具有高效和高識別率的特點而被廣泛使用。目前行為識別模型主要分為3類:雙流CNN,3D CNN和CNN-LSTM。SIMONYAN等提出雙流卷積神經(jīng)網(wǎng)絡[2](two stream convolutional neural network),通過將視頻流劃分為時間流和空間流,分別提取時間特征和空間特征,識別精度較傳統(tǒng)方法有了明顯提升,并且視頻處理速度更快。雙流CNN分別利用RGB圖像和堆疊光流圖像進行分析處理[3],能夠有效地利用視頻中的時間信息,但是對于長時動態(tài)信息利用率不高[4]。長短時記憶網(wǎng)絡(long short-term memory,LSTM)網(wǎng)絡適合處理長時序列,因此GAMMULLE等提出融合LSTM的雙流CNN網(wǎng)絡用于行為識別,利用雙流CNN提取單幀圖像的時空流特征,將得到的特征按時間順序輸入LSTM,最終得到視頻數(shù)據(jù)的行為特征,且取得了很好的效果[5]。JI等提出利用3D卷積核[6]提取視頻序列的時空間特征進行行為識別,由于采用了端到端的方式,具有處理速度快,但存在模型參數(shù)量大,識別準確率不高的問題。DONAHUE等提出長時循環(huán)卷積神經(jīng)網(wǎng)絡[7],將LSTM與CNN相結合,利用CNN提取單幀圖像的卷積特征,將得到的特征按時間順序輸入LSTM,最終得到視頻數(shù)據(jù)的行為特征,該方法處理速度較快,但也存在準確率不高的問題。
模型輕量化設計其中一個重要的技術路線是設計高效的網(wǎng)絡結構,以犧牲部分準確率為代價,減少網(wǎng)絡參數(shù),以滿足實時性與低內(nèi)存的要求。近些年,輕量化的CNN模型相繼被提出,最具代表性的有SqueezeNet,MobileNet,ShuffleNet等。SqueezeNet[8]將單個卷積運算進行拆分,拆分為為1×1大小的卷積核以及由3×3和1×1大小卷積核2部分,其比例可通過參數(shù)調(diào)節(jié),能大幅降低模型參數(shù)。MobileNetV1[9]引入深度可分離卷積替換普通卷積降低模型計算復雜度和參數(shù)量,MobileNetV2[10]在此基礎上借鑒殘差網(wǎng)絡引入反向殘差和線性瓶頸,以提高模型的準確率,MobileNetV3[11]通過引入通道注意力進一步提高模型準確率。ShuffleNetV1[12]引入分組卷積,大幅降低計算量。ShuffleNetV2[13]針對大量的1×1卷積和元素級加法引入通道分離,避免元素級加法,降低計算復雜度。
如圖1所示,文中提出的基于雙流CNN與Bi-LSTM的施工人員不安全行為輕量級識別模型,主要包含雙流特征提取模塊、特征融合模塊和行為分類模塊。模型在傳統(tǒng)雙流CNN的基礎上進行改進,通過使用輕量化網(wǎng)絡ShuffleNetV2結構代替?zhèn)鹘y(tǒng)CNN結構達到降低模型計算復雜度和模型參數(shù)量的目的。與此同時,為了保證模型識別準確率,模型在雙流特征提取模塊中引入卷積注意力模塊提取時空雙流特征,以較小的計算復雜度提升為代價提高行為識別準確率;在特征融合模塊中引入Bi-LSTM網(wǎng)絡,獲取視頻前后的關聯(lián)信息,充分考慮特征之間的時序關系,更好的融合時空雙流特征,提高識別準確率;在行為分類模塊中利用注意力機制實現(xiàn)自適應分配權重,從而提升人員行為識別準確率。
圖1 基于雙流CNN與Bi-LSTM的施工人員不安全行為輕量級識別模型Fig.1 Lightweight recognition model for unsafe behaviors of construction workers based on two-stream CNN and Bi-LSTM
雙流神經(jīng)網(wǎng)絡利用時間流和空間流分別提取視頻行為特征,空間流網(wǎng)絡將多個RGB圖像幀作為輸入,提取人員動作的空間特征;時間流網(wǎng)絡將多個光流圖作為輸入,提取人員運動的時間特征。基于雙流網(wǎng)絡框架將特征提取網(wǎng)絡替換為引入了卷積注意力模塊的ShuffleNetV2網(wǎng)絡,在保證準確率的前提下大幅提升了行為識別速度。
1.1.1 ShuffleNetV2網(wǎng)絡
傳統(tǒng)雙流特征提取網(wǎng)絡基于CNN,存在特征提取耗時較長、網(wǎng)絡參數(shù)量較大的問題。因此采用輕量化結構ShuffleNetV2替換原有的特征提取網(wǎng)絡,利用有限的計算資源來實現(xiàn)較高的模型精度,實現(xiàn)在速度和準確度之間的平衡,降低模型計算復雜度,提高識別效率。ShuffleNetV2網(wǎng)絡由ShuffleNet網(wǎng)絡升級而來,ShuffleNet的核心是逐點組卷積和通道混洗,ShuffleNetV2在此基礎上又引入了通道分離操作。逐點組卷積即逐點卷積和分組卷積的結合。分組卷積是對輸入的特征圖進行分組,然后對每組分別進行卷積,能夠大幅降低卷積參數(shù)量。逐點卷積為使用卷積核大小為1×1的卷積操作,可以起到一個跨通道聚合的作用,所以進一步可以起到降維(或者升維)的作用,達到減少參數(shù)的目的[14]。分組卷積可用于減少模型參數(shù)量,但是ShuffleNet中使用了過多的分組卷積導致內(nèi)存訪問時間(memory access cost,MAC)增加,也導致通道間信息分離。為了實現(xiàn)特征圖之間的通道信息融合,如圖2所示,ShuffleNetV2在通道混洗操作上又引入了通道分離的操作。網(wǎng)絡通過將輸入特征劃分為2個分支,通道數(shù)分別為C-C1和C1。左邊分支保持不變,右邊分支經(jīng)過多次卷積,再將2個分支合并,經(jīng)過通道混洗操作將每一組的特征分散至不同的組后再進行分組卷積,實現(xiàn)不同通道之間的信息交流。
圖2 ShuffleNetV2單元Fig.2 ShuffleNetV2 unit
1.1.2 卷積注意力模塊
利用輕量化結構ShuffleNetV2提取雙流特征能有效降低網(wǎng)絡的計算量及其大小,但也導致行為識別準確率下降。因此引入卷積注意力模塊(convolutional block attention module,CBAM)以較小的計算開銷提升網(wǎng)絡性能。CBAM[15]是一個輕量級的通用模塊,可以集成到其他CNN框架中。CBAM結合了空間和通道注意力機制,既考慮不同道像素的重要性,又考慮了同一通道不同位置像素的重要性,是一種簡單而有效的注意力模塊。CBAM的結構如圖3所示,模塊的輸入為上一卷積層的輸出特征,通過一個通道注意力模塊,得到加權結果之后,會再經(jīng)過一個空間注意力模塊,最終進行加權得到結果。
圖3 卷積注意力模塊結構Fig.3 Structure of convolutional block attention module
通道注意力模塊結構如圖4所示,其利用平均值池化和最大值池化將輸入特征在空間上進行壓縮得到2個不同的空間信息描述符,再輸入到多層感知機中壓縮輸入特征圖的空間維度,逐元素求和合并得到通道注意力特征圖。
(4)協(xié)作程度(體現(xiàn)為設計方案的鏈長)與方案的平均質量之間有正向關系,但高分方案的鏈長與方案數(shù)量呈近似正態(tài)分布。
圖4 通道注意力模塊Fig.4 Channel attention module
空間注意力模塊結構如圖5所示,其對通道注意力特征圖的通道進行壓縮,在通道維度上分別進行了平均值池化和最大值池化,再將所得到的特征圖合并得到空間注意力特征圖。
圖5 空間注意力模塊Fig.5 Spatial attention module
1.1.3 引入卷積注意力模塊的輕量雙流特征提取模塊的網(wǎng)絡結構
雙流特征提取模塊的網(wǎng)絡結構見表1。表中L為輸入數(shù)據(jù)通道數(shù),空間流中L=30,時間流中L=20;重復次數(shù)表示該模塊在網(wǎng)絡中堆疊個數(shù)。
由于傳統(tǒng)雙流結構提取的時空特征僅在最后的Softmax層進行融合,沒有充分考慮時空特征時序連續(xù)性[16]。因此,在特征融合模塊中引入Bi-LSTM強化時空特征關聯(lián)性與時序性。Bi-LSTM的核心在于引入了可控自循環(huán)[17],以產(chǎn)生讓梯度能夠得以長時間可持續(xù)流動的路徑,克服長序列模型訓練過程中的梯度消失和梯度爆炸問題[18]。由于運動特征是具有時序性的人員行為信息,而在Bi-LSTM中,當前時刻的輸入同時依賴前后的視頻幀,充分考慮視頻幀的時序信息[19],因此考慮將雙流網(wǎng)絡提取的時空特征作為Bi-LSTM網(wǎng)絡的輸入特征。Bi-LSTM網(wǎng)絡結構如圖6所示。
圖6 Bi-LSTM網(wǎng)絡結構Fig.6 Network structure of Bi-LSTM
ht=f(w1xt+w2ht-1+b1)
(1)
(2)
(3)
式中Ot為Bi-LSTM的輸出特征向量;b1,b2為前饋層和反饋層的網(wǎng)絡偏置,f()為tanh函數(shù),g()為Sigmoid函數(shù)。Bi-LSTM通過同時對前向和后向LSTM單元信息的更新,輸出不同時刻的時空融合特征向量,最后將該特征輸入到注意力機制模塊中。
注意力機制模仿人類視覺系統(tǒng)中大腦處理信號的機制,通常被運用在圖像處理和自然語言處理領域。注意力機制通過網(wǎng)絡中不同時刻Bi-LSTM網(wǎng)絡輸出的特征向量動態(tài)分配權重,對識別結果有利的幀賦予更高的權重,提高識別的準確率[20]。利用Bi-LSTM網(wǎng)絡可以提取到視頻中的行為特征,但是當視頻較長時,提取到的行為特征中會包含大量冗余信息,關鍵信息會被淹沒,這會對后續(xù)的行為識別的準確度產(chǎn)生影響。注意力機制結構如圖7所示。
圖7 注意力機制結構Fig.7 Attention mechanism structure
圖7中Ot為Bi-LSTM網(wǎng)絡輸出的第t個特征向量;St為第t個隱藏層的輸出Ot在所有視頻幀中所占的分值;αt為權重系數(shù),表示各個時刻的注意力概率分布值。計算公式如下
St=tanh(wtOt+bt)
(4)
(5)
(6)
式中wt和bt分別為權重和偏置;tanh()為非線性激活函數(shù)。γ為包含特征信息的特征向量,經(jīng)Softmax分類函數(shù)后可以得到行為識別結果。
實驗數(shù)據(jù)使用UCF-101數(shù)據(jù)集和自建建筑工地施工人員數(shù)據(jù)集進行不安全行為識別。UCF-101視頻數(shù)據(jù)集是在行為識別領域被廣泛使用的公開數(shù)據(jù)集,主要來源于YouTube視頻平臺,類別包括人與物的互動、人與人的互動、人員動作、樂器運動和體育運動,共計101種行為類別。UCF-101數(shù)據(jù)集不僅包含多種行為類別,還包含各種的復雜背景,存在光線不足和相機晃動等問題,對于模型的魯棒性有較高要求[21]。自建建筑施工人員數(shù)據(jù)集主要來源于在某建筑工地實拍的施工人員行為視頻,類別主要分為正常行為和危險行為,正常行為包括正常行走、搬運物品、使用推車、駕駛車輛、搭建腳手架、清理工地、施工作業(yè)7類行為,危險行為包括攀爬高處、翻越圍欄、快速奔跑、拋擲物品、打鬧推搡、意外摔倒和使用手機7類行為,正常行為和危險行為共計14種[22]。所提模型只考慮正常施工環(huán)境,對于人員密集場所不做考慮。如圖8所示,自建數(shù)據(jù)集在稀疏場景下進行數(shù)據(jù)采集,采集時人員佩戴安全帽,身穿反光背心。
圖8 自建數(shù)據(jù)集示例Fig.8 Examples of self-built data set
實驗所用數(shù)據(jù)集具體參數(shù)見表2。
表2 實驗所用數(shù)據(jù)集參數(shù)
實驗所需數(shù)據(jù)集需要進行預處理,數(shù)據(jù)集劃分以及數(shù)據(jù)采樣后才可用于模型訓練。實驗首先對數(shù)據(jù)集進行預處理,主要分為3步:①將每段視頻依據(jù)25 fps的幀率進行采集,獲得多幀RGB圖像;②基于OpenCV視覺庫中的稠密光流幀提取方法,分別提取視頻中水平和垂直方向上的光流幀;③通過隨機采樣的方式對數(shù)據(jù)采樣[23],將視頻幀序列共分為十段,每段隨機取一幀RGB圖像幀與光流幀,10幀為一組,并將圖像幀的大小裁剪為244×244。因此,空間流數(shù)據(jù)的輸入大小為244×244×30,時間流數(shù)據(jù)的輸入大小為244×244×20。
實驗基于PyTorch深度學習框架搭建模型,具體實驗環(huán)境為:Intel i7-8700處理器、NVIDIA GTX 2080 Ti顯卡和16G運行內(nèi)存。模型采用交叉熵函數(shù)作為損失函數(shù)進行訓練,用于衡量訓練后樣本分類結果與訓練樣本標簽的相似度。模型訓練采用自適應矩估計(Adam)方法,實現(xiàn)損失函數(shù)收斂到最小值。Adam方法特點在于自適應調(diào)整學習率,適合大規(guī)模數(shù)據(jù)及參數(shù)場景,實現(xiàn)簡單,計算高效,對內(nèi)存需求少。實驗采用遷移學習方法,首先基于UCF101數(shù)據(jù)集進行模型訓練,訓練完成后固定部分模型參數(shù),利用自建建筑施工人員行為數(shù)據(jù)集進行訓練,獲得最終實驗結果。實驗的訓練超參數(shù)設置見表3。
表3 模型超參數(shù)設置
初始學習率用于限制初始時梯度更新時的步長,通常設置為0.001;批量大小受GPU內(nèi)存限制,當大小為8時能夠在內(nèi)存不溢出的情況下最大化提高模型訓練效率;一階矩估計指數(shù)衰減率用于控制動量與當前梯度的權重分配,通常取接近于1的值,默認為0.9。二階矩估計指數(shù)衰減率用于控制梯度平方的對動量的影響,默認為0.999。Epsilon參數(shù)是增加數(shù)值計算的穩(wěn)定性而加到分母里的常數(shù),避免除數(shù)為0,默認為1.0×10-8。
圖9為所提模型在對UCF-101數(shù)據(jù)集訓練過程中的損失函數(shù)曲線與測試集識別準確率變化曲線。從圖中可以看出隨訓練輪數(shù)增加,每輪的平均損失函數(shù)與平均準確率趨于穩(wěn)定,最終損失值下降到0.1左右,測試集識別準確率最高可達94.3%,由此可以分析出所提模型的訓練結果比較理想,具有較高的識別準確率。
圖9 模型訓練中損失與準確率變化Fig.9 Changes of loss and accuracy in model training
模型利用遷移學習方法在自建建筑工地數(shù)據(jù)集上進行二次訓練,固定雙流特征提取網(wǎng)絡中Flatten層及之前的網(wǎng)絡參數(shù),并對其余網(wǎng)絡參數(shù)進行訓練,最終在測試集上得到最高識別準確率為94.8%。模型通過在UCF-101數(shù)據(jù)集上的訓練已經(jīng)具有較高的識別準確率,并且由于自建數(shù)據(jù)集數(shù)據(jù)量較少,場景相對單一,行為類別相對較少,因此在自建數(shù)據(jù)集上具有更高的識別準確率。
考慮到所設計的模型主要應用于邊緣設備,因此,除了識別準確率之外,模型的計算復雜度和模型參數(shù)量也成為評估模型的主要指標,需要對模型的計算量與大小進行評估[24]。模型的計算復雜度使用累加乘積操作次數(shù)作為衡量標準,利用模型所包含乘法操作與加法操作次數(shù)來表征。模型的大小通常利用模型的參數(shù)量來表示,直接決定模型文件的大小,也影響模型推斷時對內(nèi)存的占用量。模型準確率通過統(tǒng)計正確識別行為類別樣本占總分類樣本的比例來表征。模型性能評價指標見表4。
表4 模型性能評價指標
其中,Ci,Co為輸入、輸出特征通道數(shù);Hk,Wk為卷積核大??;H,W為輸入特征圖的大小;TP為將正類預測為正類數(shù);TN為將負類預測為負類數(shù);FP將負類預測為正類數(shù);FN為將正類預測為負類數(shù)。
為了驗證不同方法的性能指標,對多種方法進行實驗。實驗選取多種經(jīng)典雙流CNN結構作為特征提取網(wǎng)絡,分別計算其模型復雜度模型參數(shù)量和識別準確率。由于UCF-101數(shù)據(jù)集樣本較多,同一行為涵蓋多種場景,對模型魯棒性要求較高,因此實驗利用該數(shù)據(jù)集進行不同算法的對比,實驗結果見表5。
由表5可以看出,利用ResNet作為特征提取骨干網(wǎng)絡的雙流CNN網(wǎng)絡參數(shù)量較大,行為識別率也不高,性能表現(xiàn)不佳。利用VGG16提取雙流特征的方法可以較大的提升識別準確率,但是模型參數(shù)量與計算量均較高。所提模型在UCF101上的識別準確率較高,可達94.3%,計算復雜度為7.79 G,模型參數(shù)量為5.38 M,通過對比可以看出,該模型的計算復雜度和參數(shù)量均最小,相較于傳統(tǒng)雙流識別方法具有較大的優(yōu)勢,綜合性能更好。
表5 CNN模型的雙流結構模型性能對比
為了驗證模型所引入輕量化結構的對模型性能的影響,選取多種經(jīng)典的輕量級模型結構引入雙流CNN網(wǎng)絡并在UCF101數(shù)據(jù)集上進行實驗對比,實驗結果見表6。
表6 輕量級CNN模型的雙流結構模型性能對比
由表6可以看出,ShuffleNetV2雖然模型復雜度最高,但模型參數(shù)相對較少,而且具有最高的識別準確率。因此,選取雙流CNN-ShuffleNetV2輕量化模型作為雙流CNN網(wǎng)絡的特征提取網(wǎng)絡。
3.3.1 卷積注意力模塊引入前后性能對比
為了驗證卷積注意力模塊對模型性能的影響,使用雙流CNN-ShuffleNetV2模型作為參照模型在UCF101數(shù)據(jù)集上進行實驗對比,對應表7中基準模型1,實驗結果見表7。
表7 卷積注意力模塊引入前后模型性能對比
由表7可以看出,在引入CBAM后模型計算復雜度與模型參數(shù)量雖均有較小提高,但模型識別準確率有較大提升。實驗結果表明,CBAM的引入以模型參數(shù)量與計算復雜度較小幅度的增加換取了識別準確率0.4%的提升,可滿足文中模型設計的需求,因此,文中將CBAM引入該模型以提高模型識別準確率。
3.3.2 LSTM,Bi-LSTM引入前后性能對比
為了驗證LSTM與Bi-LSTM引入后對網(wǎng)絡性能的影響,以表7中基準模型1+CBAM作為實驗對比的參照模型在UCF101數(shù)據(jù)集上進行實驗對比,對應表8中的基準模型2,實驗結果見表8。
由表8可以看出,將LSTM與Bi-LSTM引入模型后,模型的計算復雜度沒有變化,模型參數(shù)量變化較小,但模型的識別準確率有較大的提升,說明引入Bi-LSTM模型后的識別準確率比引入LSTM的高0.3%,表明Bi-LSTM結構對于長時序列的雙流特征融合具有更好的表現(xiàn)。
3.3.3 注意力機制引入前后性能對比
為了驗證注意力機制引入后對網(wǎng)絡性能的影響,文中使用以基準模型2+Bi-LSTM作為實驗對比的參照模型在UCF101數(shù)據(jù)集上進行實驗對比,對應表9中的基準模型3,實驗結果見表9。
實驗結果表明,引入注意力機制后,模型計算復雜度與模型參數(shù)不變,而模型的識別準確率提升0.2%。
1)采用高效輕量化網(wǎng)絡結構ShuffleNetV2替代傳統(tǒng)CNN能夠大幅降低模型計算復雜度和模型參數(shù)量,且在UCF-101數(shù)據(jù)集上行為識別準確率可達93.1%,相較傳統(tǒng)雙流CNN綜合性能更優(yōu),相比其他輕量級雙流CNN具有最高的識別準確率,適合部署在邊緣設備上。
2)為提高識別準確率,模型引入卷積注意力模塊,以較小的計算復雜度和模型參數(shù)量增加為代價,使得識別準確率提升0.4%。模型針對行為的長時序性引入Bi-LSTM增強時空特征關聯(lián)性,使得識別準確率提升0.6%。模型引入注意力機制自適應分配行為權重,使得識別準確率提升0.2%。
3)所提模型與傳統(tǒng)的雙流CNN網(wǎng)絡相比具有更低的計算復雜度和更小的模型參數(shù)量,累加乘積操作次數(shù)為7.73 G,參數(shù)量為5.38 M,且行為識別率較高,在UCF101數(shù)據(jù)集和自建數(shù)據(jù)集上可達94.3%,94.8%,適合在邊緣設備上部署和運行。