王 鴻,陳明舉,熊興中,張勁松
(1.四川輕化工大學(xué)自動化與信息工程學(xué)院,四川 宜賓 644000;2.人工智能四川省重點實驗室,四川 宜賓 644000)
自電力系統(tǒng)問世以來,電力事故時有發(fā)生[1]。監(jiān)管人員管理責(zé)任缺失及作業(yè)人員的安全意識不強(qiáng)為主要原因[2-3]。因此,提升所有電力工作者的安全意識,保證工人安全成為亟需解決的重要問題[4-5]。當(dāng)前機(jī)器視覺技術(shù)已應(yīng)用于電力作業(yè)現(xiàn)場的檢測中。劉瑩旭等[6]利用智能安全帽實現(xiàn)對工人的實時定位、視頻傳輸?shù)裙δ埽U犀F(xiàn)場人員和電網(wǎng)設(shè)備的安全。朱建寶等[7]檢測人體關(guān)鍵點并對變電站的安全區(qū)域標(biāo)定,判斷作業(yè)人員的雙腳是否在標(biāo)定區(qū)域內(nèi),確定作業(yè)人員是否處于安全狀態(tài)。戴喬旭等[8]針對電力高空作業(yè)車的缺點,設(shè)計了一種高空作業(yè)車防撞預(yù)警系統(tǒng)。這些研究對穿戴、位置以及工器具狀態(tài)等實現(xiàn)了識別,卻未能實現(xiàn)對作業(yè)人員行為狀態(tài)的識別。
近年來,基于深度學(xué)習(xí)原理的人體姿態(tài)估計方法能有效提取人體骨架圖,提高了檢測的準(zhǔn)確率[9]。多人姿態(tài)估計分為自頂向下和自底向上兩種[10],前者先檢測出每個人的位置,然后識別每個人的關(guān)鍵點進(jìn)行姿態(tài)估計,相關(guān)模型主要有Mask R-CNN 等;后者則先檢測出人體的所有關(guān)節(jié)點位置,然后判斷其是否屬于同一個體,相關(guān)模型主要是OpenPose。Emanuel[11]建立了基于單個圖像或視頻捕捉快照的人體動作識別系統(tǒng),對比深度學(xué)習(xí)和傳統(tǒng)算法分類器對人體動作識別分類,但僅是對簡單的神經(jīng)網(wǎng)絡(luò)算法識別動作進(jìn)行分析,且準(zhǔn)確率較低。文獻(xiàn)[12]通過OpenPose 提取電力作業(yè)人員的骨骼圖,利用深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)工人的行為姿態(tài)感知,但計算量大,需要的特征數(shù)多。曾文獻(xiàn)等[13]基于人體骨骼關(guān)鍵點信息,實現(xiàn)對士兵訓(xùn)練視頻的高效分類。由于人體骨架的多樣性及肢體動作復(fù)雜性[14],時空圖卷積網(wǎng)絡(luò)[15](Spatial Temporal Graph Convolutional Networks, STGCN)采用圖卷積對人體骨架特征提取,能夠有效實現(xiàn)對人體動作識別。顧嘉暉[16]在STGCN 基礎(chǔ)上提出了一種新的劃分關(guān)節(jié)點分區(qū)策略,有效改善了訓(xùn)練模型的收斂性及穩(wěn)定性。劉耀等[17]將STGCN 應(yīng)用在建筑工人不安全動作識別技術(shù)中,實現(xiàn)了對工人的動作實時識別。電力作業(yè)場景復(fù)雜,存在遮擋、干擾等因素的影響,上述算法在實際應(yīng)用中識別的誤差較大。
為實現(xiàn)對電力作業(yè)現(xiàn)場工人行為的精確識別,采用OpenPose 提取其骨架圖,將時間和空間注意力機(jī)制融入到STGCN 網(wǎng)絡(luò)中構(gòu)建融入注意力機(jī)制的時空圖卷積網(wǎng)絡(luò)(Attentiion Spatial Temporal Graph Convolutional Networks,AT-STGCN),以實現(xiàn)對工人的行為精確識別,防止作業(yè)現(xiàn)場安全事故的發(fā)生[18]。
本設(shè)計通過骨架提取與行為識別兩個步驟實現(xiàn)對作業(yè)人員行為識別。OpenPose 采用計算機(jī)視覺組(Visual Geometry Group,VGG)提取作業(yè)人員的特征,得到關(guān)鍵點及骨骼圖。AT-STGCN 網(wǎng)絡(luò)引入的時空注意力機(jī)制提高網(wǎng)絡(luò)對時間維度和空間維度信息的提取,增強(qiáng)對時空特征有效地捕獲。電力作業(yè)人員行為識別整體技術(shù)流程如圖1 所示。首先,將作業(yè)視頻幀圖像輸入OpenPose 模型中,通過該算法提取得到電力作業(yè)人員的關(guān)節(jié)點位置及連接的骨骼圖;然后,采用AT-STGCN 網(wǎng)絡(luò)對骨骼信息建模處理,在構(gòu)建的骨架時空圖上提取特征信息,進(jìn)而對作業(yè)人員的行為進(jìn)行識別。
圖1 電力作業(yè)人員行為識別整體技術(shù)流程
OpenPose 人體姿態(tài)估計采用自底向上關(guān)鍵點檢測方法[19],完成從人體關(guān)鍵點檢測到關(guān)節(jié)點與關(guān)節(jié)點之間的連接過程。OpenPose 的輸入是一幅人體姿態(tài)的圖像,輸出是該算法檢測到的所有人體的骨骼。人體骨骼圖共提取18 個關(guān)節(jié),包括眼睛、鼻子、手臂和腿等,18 個關(guān)鍵點如圖2(a)所示,作業(yè)人員的人體骨骼關(guān)鍵點如圖2(b)所示。
圖2 關(guān)鍵點序號及人體骨骼關(guān)鍵點
OpenPose 模型分為兩個階段識別關(guān)鍵點[20],圖3 所示為其模型結(jié)構(gòu)圖。第一階段:VGG 前10 層為輸入圖像創(chuàng)建特征映射F(feature map)。第二階段:將第一階段得到的特征圖作為輸入,包括二分支多階段卷積神經(jīng)網(wǎng)絡(luò)迭代訓(xùn)練,其中一個分支輸出為S的集合S=(S1,S2,…,Sn),預(yù)測關(guān)節(jié)點位置的一組2D 置信圖(Part Confidence Map,PCM);另一個分支輸出為L的集合L=(L1,L2,…,Ln),預(yù)測部分親和度的2D 矢量場,表示關(guān)節(jié)間的局部區(qū)域親和力(Part Affinity Field,PAFs),如式(1)~(2)所示:
圖3 OpenPose模型結(jié)構(gòu)圖
其中,S1和St表示第一階段和第t階段的2D置信度;L1和Lt表示第一階段和第t階段的2D 矢量場;ρt()表示PCM預(yù)測網(wǎng)絡(luò);?t()表示PAFs的預(yù)測網(wǎng)絡(luò)。
OpenPose 模型的每個階段都是串行模塊,通過多階段的卷積神經(jīng)網(wǎng)絡(luò)的反復(fù)預(yù)測,實現(xiàn)漸進(jìn)優(yōu)化的過程,使得到的預(yù)測結(jié)果更加準(zhǔn)確[21]。部位親和場網(wǎng)絡(luò)描述關(guān)鍵點之間的聯(lián)系,保存位置和方向信息,如圖4 所示。L*c,k(p)表示為第k個人的肢干c是否位于在像素點p上,若存在,則該值為肢干c的單位向量v,反之為0。其公式為:
圖4 OpenPose肢體親和度計算
v表示肢體方向上的單位向量,其表達(dá)式為:
其中,xj1,k和xj2,k表示對于圖中人物k的肢干c,其身體 節(jié) 點j1和j2的 真 實 位 置,p點 位 于j1指 向j2平 面向量上,故點p的關(guān)節(jié)點親和場值為j1和j2的向量和。
計算出肢體上一個點的親和度無法判斷骨骼關(guān)鍵點連接的有效性,故通過計算相應(yīng)的關(guān)鍵點連線上的積分來表示其取值,通過關(guān)節(jié)點對dj1和dj2之間的PAF 判斷關(guān)鍵點之前的連接是否正確[22],若計算值結(jié)果越大,則表示與關(guān)鍵點連線方向一致性越高,關(guān)鍵點連接的可能性越高,如式(5)所示:
其中,dj1和dj2表示兩個連續(xù)的像素點;而p(u)表示連續(xù)像素點之間的像素點,如式(6)所示:
時空圖卷積網(wǎng)絡(luò)(STGCN)[23-24]首次將GCN 網(wǎng)絡(luò)應(yīng)用于骨骼序列的行為動作識別任務(wù)中,其模型如圖5所示。為了提高現(xiàn)有的基于骨骼的動作識別的算法精度,引入了一些包括鄰接關(guān)節(jié)點的相連關(guān)系或者身體部位等空間結(jié)構(gòu)信息,領(lǐng)接的關(guān)節(jié)點構(gòu)成了一個自然的圖結(jié)構(gòu),STGCN 則利用這些圖結(jié)構(gòu)對動作識別分類。首先對原始的視頻數(shù)據(jù)進(jìn)行姿態(tài)估計得到人體骨骼點,代表每幀的骨骼連接,然后把相鄰幀之間的同一關(guān)節(jié)連通成時間圖,代表關(guān)節(jié)的行為軌跡,將空間和時間上的數(shù)據(jù)輸入到多層STGCN 中以提取到高層次的特征,得到視頻中人體動作的分類結(jié)果。
圖5 STGCN模型結(jié)構(gòu)
注意力機(jī)制(Attention Mechanism)是資源分配機(jī)制的數(shù)據(jù)處理方式,廣泛使用在圖像處理、自然語言處理等多類別的機(jī)器學(xué)習(xí)工作中,增強(qiáng)網(wǎng)絡(luò)對特征信息的提取。在動作序列的時間維度上加入時間注意力機(jī)制,提取同一關(guān)節(jié)點在不同幀之間的時間信息,選取整個時間維度上更有代表性的重要幀,增強(qiáng)網(wǎng)絡(luò)對時間運動信息的捕獲。同樣在空間維度上引入空間注意力機(jī)制,學(xué)習(xí)不同關(guān)節(jié)對當(dāng)前空間特征的重要程度,提取空間維度上各關(guān)節(jié)點之間的相關(guān)聯(lián)性,增強(qiáng)網(wǎng)絡(luò)對節(jié)點信息的捕獲。本文將時間和空間注意力相結(jié)合,進(jìn)一步加強(qiáng)對骨骼序列時空特征的提取。
本文在STGCN 的基礎(chǔ)上融入時間和空間注意力機(jī)制,其網(wǎng)絡(luò)結(jié)構(gòu)由9 層時空圖卷積組成。前3層包括64 個輸出通道,中間有128 個輸出通道,最后3 層有256 個輸出通道,且每一層都包括圖卷積網(wǎng)絡(luò)和時間卷積網(wǎng)絡(luò),AT-STGCN 網(wǎng)絡(luò)模型結(jié)構(gòu)如圖6所示。
圖6 AT-STGCN網(wǎng)絡(luò)模型結(jié)構(gòu)示意圖
本次實驗在Windows 系統(tǒng)下進(jìn)行操作,采用深度學(xué)習(xí)的開源框架Pytorch。通過調(diào)用Python 環(huán)境下的各種學(xué)習(xí)包,對實驗進(jìn)行訓(xùn)練和測試,所用軟件為Pycharm2019,采用python3.7 的框架。硬件環(huán)境:處理器 Intel(R) Core(TM) i7-10700 CPU@2.90 GHz;運行內(nèi)存為16.0 GB。
近年來,隨著人體行為動作識別算法的快速發(fā)展,各種動作數(shù)據(jù)集也相繼公開,進(jìn)一步推進(jìn)動作識別算法的研究,促進(jìn)了更多優(yōu)秀的動作識別算法提出。本文基于骨骼動作識別算法采用NTU RGB+D公開數(shù)據(jù)集,其動作種類多、應(yīng)用范圍廣,滿足在電力作業(yè)場景下作業(yè)人員的動作識別需求。數(shù)據(jù)集共包含60 個種類的動作,有56 880 個樣本視頻片段,使用3 個不同角度的攝像機(jī)對目標(biāo)采集包括深度信息、3D 骨骼信息、RGB 幀以及紅外序列的數(shù)據(jù)形式,采用兩種不同標(biāo)準(zhǔn)劃分訓(xùn)練集和測試集:1)交叉對象X-Sub:按照實驗對象劃分訓(xùn)練集和測試集,其中訓(xùn)練集和測試集的視頻樣本數(shù)分別為40 320和16 560;2)交叉視覺X-View:按照不同拍攝角度劃分訓(xùn)練集和測試集,其中訓(xùn)練集和測試集的視頻分別為相機(jī)1 拍攝的18 960 個樣本和相機(jī)2、相機(jī)3拍攝的37 920個樣本。
Openpose 是標(biāo)注人體關(guān)節(jié)(頸部、肩膀等)開源的關(guān)鍵點檢測工具,將輸入視頻分割為多個幀,對每一幀進(jìn)行關(guān)鍵點檢測,并將其打包,用于后續(xù)操作??偟膩碚f,視頻的骨骼標(biāo)注結(jié)果維數(shù)較高,在一個視頻中,可能有很多幀,每個幀中,可能存在很多人,且每個人又有很多關(guān)節(jié),包括不同的位置、置信度特征。人體骨架序列通常由每個幀中每個人體關(guān)節(jié)的2D或3D坐標(biāo)表示。而人體骨骼圖的表示可以分為兩種:第一種是使用卷積網(wǎng)絡(luò)對骨骼動作識別,串聯(lián)所有關(guān)節(jié)的坐標(biāo)向量,以形成每幀的單個特征向量;第二種是利用圖卷積進(jìn)行行為識別,通過時空圖分層來表示骨骼序列。本研究采用第二種方式,在一個骨架序列上構(gòu)造無序時空圖G=(V,E),具有N個關(guān)節(jié)點和T幀骨骼序列,同時具有人體的關(guān)節(jié)點、體內(nèi)關(guān)節(jié)點自然連接組成的骨架邊以及不同幀中相同關(guān)節(jié)點連接而成的時間邊,即時間-空間圖。
在無序時空圖中,節(jié)點集包括骨架序列中的所有關(guān)節(jié),表示為V={vti|t= 1,…,T;i= 1,…,N}。其中,N為人體關(guān)節(jié)點的總數(shù),T代表幀數(shù),vti由第t幀的第i個關(guān)節(jié)點上的(x,y)坐標(biāo)位置和置信度組成,每個節(jié)點都包含一個特征向量。形式上,邊緣集E由兩個子集組成,即ES和EF,第一個子集ES={vtivtj|(i,j) ∈H}描述每個幀的骨架內(nèi)連接,其中H是自然連接的人體關(guān)節(jié)集;第二個子集EF={vtiv(t+1)i}包含幀間邊緣,連接相鄰幀間的相同關(guān)節(jié),對于關(guān)節(jié)點vti,連接所有EF則表示該關(guān)節(jié)點的運動軌跡。首先根據(jù)人體結(jié)構(gòu)的連通性,將一個框架內(nèi)的關(guān)節(jié)與邊緣連接,然后將每個關(guān)節(jié)連接到連續(xù)幀中的同一關(guān)節(jié),即可在骨架序列上構(gòu)建時空圖,如圖7 所示。圖7 中圓點表示人體關(guān)鍵點,關(guān)鍵點之間的連線表示人體自然結(jié)構(gòu)的連接。因此該設(shè)置中的連接自然定義,無需人工分配,使網(wǎng)絡(luò)架構(gòu)可以在具有不同關(guān)節(jié)數(shù)或關(guān)節(jié)連接的數(shù)據(jù)集上工作。
圖7 骨架序列的時空圖
空間圖卷積是指在單一幀內(nèi)對圖像進(jìn)行的圖卷積操作,但是對時間維度上沒有作進(jìn)一步的處理。網(wǎng)絡(luò)中的時空圖卷積由時空卷積和圖卷積組成,其中圖卷積的表達(dá)式如式(7)所示:
其中,fin為輸入特征圖,fout為輸出特征圖,Zti(vtj)為歸一化項,p(vti,vtj)為采樣函數(shù),w(vti,vtj)為權(quán)重函數(shù)。在圖像上,一般根據(jù)中心位置x的相鄰像素定義抽樣函數(shù)p(h,w) ,仿照圖像上的抽樣函數(shù)定義,在節(jié)點vti的鄰域集B(vti)={vti|d(vtj,vti)≤D}上定義抽樣函數(shù),其中d(vtj,vti)表示從節(jié)點vtj到節(jié)點vti的最短路徑,當(dāng)步長D= 1 時,表示其鄰域范圍為到關(guān)節(jié)點最小長度為1 的所有節(jié)點的集合,簡稱1-鄰域集合;圖卷積的B(vti)采用空間法,每個子集都有唯一的標(biāo)簽,將一個節(jié)點的領(lǐng)域集合劃分為3個子集:根節(jié)點、向心節(jié)點以及離心節(jié)點,每類節(jié)點對應(yīng)權(quán)重分別為1、2、3,其空間劃分法如式(8)所示:
其中,dj表示關(guān)節(jié)點到骨架重心的平均距離,di表示所有骨架時空圖中關(guān)節(jié)點到骨架重心的平均距離。故可以構(gòu)建相鄰點集的映射B(vti) →(0,1,…,K- 1),并且利用張量(c,K) 構(gòu)建權(quán)重函數(shù):
在空間圖卷積的基礎(chǔ)上,對圖像的骨骼序列進(jìn)行時空建模。在圖的構(gòu)造中,圖的時間域是通過連接相鄰幀的相同節(jié)點來構(gòu)成的,所以要將空間圖卷積拓展到時空域,需要擴(kuò)展鄰域的概念,即時空圖卷積中鄰域的范圍如式(10)所示:
其中,參數(shù)?控制了要包含在鄰域中的圖的時間范圍。為了在時空圖上完成卷積運算,需重新定義權(quán)重函數(shù),因時間軸是有序的,在定義權(quán)重函數(shù)時需修改vti的時空鄰域標(biāo)簽,如式(11)所示:
其中?ti(vtj)是單幀情形下節(jié)點vti處的鄰域。
本實驗主要對電力作業(yè)現(xiàn)場工作人員的行為進(jìn)行識別,包括站立、行走、彎腰等動作。實驗設(shè)置訓(xùn)練模型的迭代次數(shù)Epoch 為50,訓(xùn)練集和測試集的批次大小都為64,起始學(xué)習(xí)率設(shè)置為0.001,引入Dropout 防止訓(xùn)練過擬合。通過計算模型分類結(jié)果的Top_1 和Top_5 準(zhǔn)確率來評價模型的性能,其中Top_1 識別率指網(wǎng)絡(luò)模型預(yù)測輸出排名最高的類別與實際標(biāo)簽一致的概率。Top_5 準(zhǔn)確率為網(wǎng)絡(luò)模型預(yù)測輸出排名前五的類別中包含實際標(biāo)簽的概率。每5 個訓(xùn)練輪回保存一次訓(xùn)練好的模型參數(shù)。圖8所示為模型在NTU RGB+D數(shù)據(jù)集上Top_1和Top_5的識別率對比。從圖8 中可以看出,隨著模型訓(xùn)練迭代次數(shù)的增加,Top_1 和Top_5 的識別率逐漸增加,且本文提出的AT-STGCN 算法較STGCN 算法在兩個指標(biāo)中均有一定程度的改進(jìn)。
圖8 NTU RGB+D數(shù)據(jù)集上Top_1和Top_5的識別率
將本文算法與基準(zhǔn)STGCN 算法進(jìn)行對比實驗,實驗結(jié)果見表1。從表1 中可以看出,相比STGCN算法,本文提出的AT-STGCN 算法在Top_1和Top_5的識別率上明顯提高,Top_1 精度由81.50%提升到82.16%,Top_5 精度由96.80%提升到97.70%,較基準(zhǔn)的識別算法上分別提升0.66%和0.90%,其主要原因是引入的時間注意力機(jī)制在時間維度上增強(qiáng)了關(guān)節(jié)在不同幀的關(guān)聯(lián)性,空間注意力機(jī)制在空間維度上增強(qiáng)了不同關(guān)節(jié)點之間的關(guān)聯(lián)性,提高了對動作的識別。
表1 模型在NTU X-Sub訓(xùn)練集上的實驗對比 %
比較文獻(xiàn)[12]和STGCN 算法的準(zhǔn)確度、參數(shù)量及浮點運算數(shù)(Floating-point Operations,F(xiàn)LOPs) 3個評價指標(biāo),其結(jié)果見表2,其中FLOPs 用來衡量算法的復(fù)雜程度。從表2可見,OpenPose+DNN 的參數(shù)量和FLOPs均優(yōu)于STGCN,但其準(zhǔn)確率較STGCN 減少4.33%,本文提出的算法準(zhǔn)確率最高,相比STGCN高0.90%,且浮點運算數(shù)降低6.45 G。綜上,本文所提出的算法在整體指標(biāo)上優(yōu)于其他兩種算法,能更準(zhǔn)確地檢測電力作業(yè)人員的行為動作。
表2 不同模型的評價指標(biāo)
使用本文提出的算法在電力作業(yè)人員數(shù)據(jù)集上進(jìn)行測試,輸入作業(yè)現(xiàn)場視頻樣本,通過模型驗證結(jié)果。圖9所示為檢測出作業(yè)人員站立和行走的姿態(tài),其中圖9(a)所示為原始圖像,圖9(b)所示為OpenPose+DNN 算法對應(yīng)的檢測效果,圖9(c)所示為本文提出的基于OpenPose+AT-STGCN 算法檢測的圖像骨骼圖以及檢測動作。從圖9 中可以看出,第一行中原圖顯示當(dāng)前作業(yè)人員行為處于行走狀態(tài),而OpenPose+DNN 算法檢測的作業(yè)人員行為為站立,OpenPose+AT-STGCN 算法對作業(yè)人員的姿態(tài)能準(zhǔn)確地識別為行走;第二行中,OpenPose+DNN 算法未能識別出電力作業(yè)人員行為,本文提出的算法準(zhǔn)確地檢測出圖中兩個作業(yè)人員的行為動作均為站立;第三行中,OpenPose+DNN 算法無法識別檢測到電力作業(yè)人員,發(fā)生漏檢情況,而本文提出的算法能夠檢測站立及彎腰的行為動作。
圖9 檢測的電力作業(yè)人員行為姿勢圖
由圖9可知,OpenPose+DNN 算法對作業(yè)人員的行為動作檢測時會出現(xiàn)誤檢和漏檢,無法對作業(yè)人員有效監(jiān)督,在相同情況下,OpenPose+AT-STGCN算法能準(zhǔn)確無誤地檢測出當(dāng)前作業(yè)人員的行為,并顯示當(dāng)前工人動作地可行度大小,實現(xiàn)對作業(yè)場工作人員行為有效監(jiān)測,確保作業(yè)人員的人身安全和電力作業(yè)順利開展。
本文針對電力作業(yè)現(xiàn)場人員行為檢測的方法進(jìn)行分析,為了更好地保證現(xiàn)場電力作業(yè)人員的人身安全以及電力系統(tǒng)的穩(wěn)定性算法,通過2D人體姿態(tài)估計OpenPose 提取電力作業(yè)人員的骨骼圖,避免電力場的復(fù)雜環(huán)境下無法較好地提取目標(biāo)的抽象特征的情況;將提取的骨骼信息輸入到改進(jìn)后的STGCN 網(wǎng)絡(luò)中進(jìn)行骨骼動作識別,引入時間注意力機(jī)制和空間注意力機(jī)制有效計算了不同幀之間的時間關(guān)聯(lián)程度以及同一幀關(guān)節(jié)點之間的關(guān)聯(lián)程度,利用龐大豐富的數(shù)據(jù)量,通過對該網(wǎng)絡(luò)模型的訓(xùn)練,使得該模型的魯棒性與泛化能力有所提升。實驗結(jié)果表明本文提出的OpenPose+AT-STGCN 算法能有效識別電力作業(yè)人員的行為動作,較基準(zhǔn)STGCN 的準(zhǔn)確率有一定的提高。因此,本文提出的改進(jìn)STGCN模型具有很好的應(yīng)用前景。