編者按在電力行業中,異常危險行為報警對于防范安全事故至關重要。傳統人工視頻監控方法需耗費大量人力,且存在準確度低與實時性較差的問題。近年來,基于圖像的人體行為識別算法研究成為熱點,相關技術逐步在醫療、安防、人機交互等領域得到應用。這些為行為識別算法在電力行業中的應用,為開展電力人員異常行為監測提供了可能性。《中國電力》2023年第11期刊發了周震震等人撰寫的《基于分組查詢注意力的可擴展電力人員行為分類方法》一文。文章提出了一種基于姿態估計和Transformer的編碼器解碼器架構的行為識別算法,構建基于深度學習的人體姿態估計模型,根據姿態估計結果輸入基于Transformer的行為分類模型并判斷人員行為。電力人員行為識別是電力系統安全運維的重要環節,現有的人員行為識別算法主要采用支持向量機和多層感知機進行行為分類,存在識別精度低、未考慮人體骨架之間交互關系、遷移性、通用性差等問題。針對上述問題,提出一種基于自注意力與交叉注意力機制的行為分類解碼器,充分考慮了人體骨架之間的關聯。其分類精度相比傳統分類方法提升10%~20%,較深度學習多層感知機(multilayer perceptron,MLP)分類方法提升2%以上。該方法運用編碼器-解碼器架構的二階段方法進行行為識別,使得解碼器可以適用于任意姿態估計,網絡后端具有很強的可擴展性。此外,采用分組解碼的方式克服了注意力機制帶來的二次方復雜度,使得該解碼器可以擴展到更多行為類別,具有更好的普適性。該行為識別算法能夠在基于變電站工作場景下的人員圖像數據集驗證中達到優異的識別效果,綜合識別率達91.1%,驗證了所提電力人員行為分類方法的有效性和適用性。
本文所提出的基于姿態估計的行為分類方法,其通用性主要表現在2個方面:一是第1階段算法的可擴展設計;二是行為識別類別的可擴展設計。一方面,由于整體算法結構可以認為是2階段網絡結構,而第1階段可以選用任意姿態估計算法,將其輸出按照特定形式輸入本文提出的行為分類模型即可實現人員行為識別,無須對其進行復雜的改進,從而有效避免算法實現過程煩瑣的問題。同理,第2階段算法也可使用行人重識別等特征提取網絡,使用本文分類方法也可完成行為分類任務。另一方面,在方法應用驗證方面,本文主要以電力人員行為識別為例,實現了若干電力場景下的人員行為的準確識別,但實際上該行為分類方法可以通過在各類行為數據集上訓練來適應更多類別的行為識別任務。因此,其行為識別方法本身在應用領域方面具有可擴展性。除電力人員安全管控外,城市安防監控、人機交互等多個領域也是本文所提算法的潛在應用場景。在圖像領域中獲取全局感受野可以幫助提取更有表征意義的特征,自注意力機制的核心是捕捉全局的信息來獲得更大的感受野,但注意力機制的缺點也很明顯,隨著輸入序列長度的增加呈現二次復雜度O(n2)為

式中:n為序列長度;d為每個頭的維度;h為頭的數量。為了解決行為分類解碼器(BC-Decoder)的計算復雜度隨著行為分類的增加呈現二次方增長,本文提出了分組解碼算法以減少參數量和計算量。在全解碼中,一個查詢對應一個行為類別,而在分組解碼中,一個查詢通過仿射變換和池化操作對應若干個行為類別。通過分組解碼操作,提出的行為解碼器和行為類別之間呈現線性復雜度,在一些需要實際落地的應用場景中有較大的優勢(如邊緣終端)。同時,在一些行為類別較多且類別之間差異較小的場景中,本文所提的行為解碼器相比傳統行為分類方法有更大的優勢,通過注意力機制重點關注不同身體關節點之間的相互關系以提高算法識別精度。
本文的整體網絡采用Encoder(編碼器) + Decoder(解碼器) 架構。如圖1所示,Encoder可以是任意姿態估計網絡,Decoder部分即本文提出的BC-Decoder。Encoder部分編碼出圖片中所有人員的關鍵點特征向量,輸入BC-Decoder后,其通過自注意力與交叉注意力機制將特征向量解碼出人員的行為類別。

Fig.1 Overall structure of the algorithm
本文受到DETR基于查詢的設計范式啟發,允許設置可學習的查詢,每個查詢解碼一個不同的行為類別。為了進一步降低解碼器的復雜性,采用了分組解碼的方法。這種設計選擇有利于實現更高效和有效的解碼過程。因為所使用的查詢數量可以調整到較低的數量以減少計算時間和內存使用,使BC-Decoder成為實時應用的合適選擇。此外,可學習的查詢允許BC-Decoder不斷適應輸入數據的變化,并隨著時間的推移提高其準確性。學習的查詢,每個查詢解碼不同的行為類別。
姿態估計任務具有位置敏感性,為了獲得更精準的位置信息,算法需要得到高分辨率特征,很多網絡使用下采樣得到語義信息后上采樣回復位置信息的做法,但這樣會丟失大量的有效信息。HRNet采用了多層分辨率分支并行計算的方法,并且在不同分支中跨分辨率連接進行特征交流,同時維持強語義信息和位置信息,使得預測熱圖在空間上更準確。其網絡可分為基部(stem)、主體(backbone)、回歸頭(head)3個部分。基部將原圖分辨率縮小到1/4原圖大小,減少后續的計算量;回歸頭則將最后一個階段得到的各個特征融合轉化成需要的輸出形式;而主體又分為階段層和過渡層,用于提取特征。階段層(stage)主要起到圖像特征提取和多特征融合作用。特征提取模塊使用殘差連接結構,重復4次,以便更充分地提取特征。多特征融合則由最近鄰上采樣和卷積下采樣實現。過渡層(transition)在原有分支基礎上增加下采樣分支。對已有的特征圖進行卷積下采樣操作,進一步得到具有更豐富語義信息的特征圖。
多個階段層級聯能夠更好地獲得全局和局部的信息。為保持參數量和精度的平衡,本文將HRNet網絡結構設置4個階段層和3個過渡層,其網絡主要部分結構如圖2所示。

Fig.2 Structure of the HRNet
與其他深度學習算法類似,損失函數為均方誤差損失。預測的是熱力圖,如果直接使用數據集中的單個真實標記點(ground truth,GT)進行計算,會由于負樣本過多導致訓練難以收斂,因此需要對GT作二維高斯分布擴展成GT熱力圖。由于不同關鍵點預測難度不同,在計算總損失的時候需要對不同關鍵點取對應的權重進行計算。
本文實現電力人員行為識別的整體思路為采用姿態估計算法結合相應的分類方法。現有研究采用的方法可分為基于傳統方法的分類方法和基于深度學習的分類方法。前者存在明顯的準確率低及參數依賴性高的缺點,而后者僅停留在采用MLP作為分類模塊進行方法設計,難以達到理想效果。本文采用基于注意力機制和轉換器(Transformer)的分類方法,參考DETR在目標檢測任務中對查詢模塊(query)的使用方式,設計了基于query的行為分類解碼器。該解碼器主要依賴于多頭注意力模塊,而每個模塊有3個輸入:查詢向量Q、分組鍵向量K、查詢值向量V。注意力操作可定義為

式中:QKT為查詢向量和鍵向量的點積;dk為向量的維度;fs表示Softmax函數。

式中:為可學習轉換矩陣,fc表示多個特征的拼接,得到結果MHA(Q, K,V)即多頭注意力輸出。BC-Decoder的結構如圖3所示,模塊有2個輸入,空間嵌入張量E和一組N個可學習的Query Q,每一個查詢分別對應一個行為類別。BC-Decoder通過4個連續的階段處理模塊的輸入,分別為自注意力模塊(self-attention)、交叉注意力模塊(cross-attention)、前饋層(feed-forward network,FFN)和序列池化層(token-pooling)。其中,FF為前饋全連接層。另外,標記池階段是在序列嵌入的維度D上進行簡單的池化,以產生N個輸出。

Fig.3 Structure of the BC-Decoder
一個查詢往往對應一個行為類別,但在一些極端行為分類場景下,類別數量較多。隨著類別數量的增加,具有二次復雜度的解碼器將會消耗大量計算資源,并可能會使模型性能受限。為了減少模型的二次復雜度,本文提出了分組解碼方法,具體而言,使用交叉注意力模塊和前饋全連接層,并固定分組查詢數量M,在前饋全連接層之后,通過仿射變換層將分組查詢轉換為輸出分類。2)沿著嵌入維度池化。定義分組因子g=N/M,那么仿射變換層產生的輸出是logitsLi,即
式中:為第k個查詢矩陣;第k個可學習的轉換矩陣,仿射變換層結構如圖4所示。

Fig.4 Affine layer and pool layer (g= 4)
本文方法的可擴展行為分類解碼器可用如式(7)~(10)所示,其中,Gq為輸入分組查詢數,SA表示將Q1、Q2、Q3通過式(2)(3)得到多頭注意力結構的輸出;CA表示Gq、E、E經過多頭注意力機制的輸出。FF表示Gq1在網絡中的前向傳播得到Gq2,GMP表示對Gq2分組進行池化,得到輸出結果L。

觀察式(7)~(10)可知,可擴展行為分類解碼器有以下特點。1)當g=1時,稱為全解碼,這意味著每個查詢對應一個行為類別;對應的當g≠1時,稱為分組解碼,這意味著每個查詢對應幾個行為類別。本文選擇將行為分類隨機地分成幾組。2)就計算復雜度而言,放射變換層計算量等于全連接層,池化層計算量是N×D次乘法,可見兩者的計算量都與分類類別數N呈現線性關系。
3)本文所提解碼器計算量主要來自自交叉注意力模塊,因為交叉注意力模塊會在2個不同的輸入序列之間進行注意力計算。可以將編碼器的輸出空間池化到固定的大小,用來減少圖片尺寸對計算復雜度的影響。
本文采用預訓練微調的方式對整體行為識別算法進行訓練。具體來說,姿態估計算法部分即Encoder部分本文采用COCO2017公開數據集作為訓練數據集。MSCOCO數據集為姿態估計的主流數據集,其中包括豐富的具有單/多人、大中小目標的圖像,相關研究都將其作為訓練和測試數據集使用。
BC-Decoder部分,本文主要基于私有數據集進行訓練。該數據集以變電站等電力場景為主,共有12510張樣本圖片,包含多種室內外場景、多種人員工作姿態(攀爬、跨越、打電話、倒地、托舉),不同人數分布(單人、多人)等情況,以模擬實際現場的多種場景,私有數據集樣本數量如表1所示。
Table 1 Number of private data set samples
4.2 實現細節
本文所提方法的試驗環境配置基于以下平臺條件:Intel Xeon Gold 6242R處理器(內存754 GB)、單張NVIDIA A100(顯存80 GB),Ubuntu18.04操作系統和PyTorch深度學習框架。在預訓練階段,訓練編碼器解碼器不加入訓練,訓練輸入圖片大小為384像素×288像素,batch size大小為24,采用Adam優化器,初始學習率設置為1×10–3,學習率的調整方式為MultiStep,下降點為170和200,下降率設置為0.1,一共訓練了210個周期。在微調階段,固定編碼器僅訓練解碼器,學習率設置為1×10–5,學習率的調整方式為余弦退火,batch size大小為128,權重衰減為1×10–8,一共訓練30個周期,其余超參數均與預訓練階段相同。
數據增強通過創建新的訓練樣本來擴大現有數據集的大小,以提高模型的準確性,可以有效地防止過擬合,并且可以讓模型更好地泛化,從而使算法在實際應用中更加準確和可靠。本文使用了隨機角度水平翻轉、改變亮度、改變對比度、改變飽和度等方法對原始圖像以0.5的概率進行數據增強,其中,圖像的亮度、對比度、飽和度分別在一定的變化區間內隨機以一定的倍數進行變化,具體增強方式如表2所示。
Table 2 Settings for different data enhancement methods

實驗對比的分類模型涉及傳統機器學習算法KNN和SVM,深度學習算法MLP和本文提出的可擴展行為分類解碼器BC-Decoder。其中,所提BC-Decoder采用HRNet-W48作為姿態估計的骨干網絡對常見電力人員的5類行為識別準確率混合矩陣Top1精度如圖5所示。從分類精度來看,所提的BC-Decoder容易識別出倒地(falling)和跨越(crossing)2個類別,從圖6的可視化效果圖來看也驗證了這點,2個骨架相對其他類別具有明顯的特征;對于打電話(calling)和托舉(carrying)這類容易混淆的行為上精度會稍微降低,但相對傳統分類算法和基于深度學習算法,所提的BC-Decoder方法均達到了最佳的行為識別準確率。

Fig.5 Mixed matrix of behavior recognition accuracy
圖6

Fig.6 Power personnel behavior recognition effect
為了證明所提方法在行為分類任務上的優越性,對不同的Encoder和Decoder進行了消融實驗。從表3中可以看出傳統分類方法KNN和SVM在行為識別速度上有較大優勢,但分類精度上相比深度學習方法低10%~20%;在深度學習分類方法中,本文提出的BC-Decoder相比MLP在精度更加突出,同時得益于分組解碼的設計方法,參數量和計算量和MLP并相差不大。
Table 3 Comparative experiment results of different algorithms

本文從電力人員行為安全管控的現實應用需求出發,提出了一種基于姿態估計和注意力機制電力人員行為分類方法及相應的行為識別算法,該方法具有良好的可擴展性。相比傳統人員行為分類方法,如SVM、MLP等,本文所設計的基于Query解碼器BC-Decoder能夠結合姿態更精確地分析人員行為。而通過在解碼端采用的分組解碼方式,在保持相當速度的基礎上,識別準確度也得到了有效提升。同時,本文還設計了人員行為識別算法整體結構與實現流程,得益于Encoder + Decoder網絡架構,所提BC-Decoder可適用于任意姿態估計算法,具有很強的通用性。通過實驗對比分析,證明了本文所提方法的有效性。