阮進林,高 鵬,孫 源,趙明輝
(1.國能神東煤炭集團公司保德煤礦,山西 忻州 036600;2.同濟大學(xué) 電子與信息工程學(xué)院,上海 201804;3.中煤科工集團上海有限公司,上海 200030)
隨著智能化技術(shù)的普及,智能制造也逐漸成為現(xiàn)代先進制造業(yè)的新方向。大數(shù)據(jù)、人工智能、云計算、互聯(lián)網(wǎng)等新興技術(shù)被深度融合進現(xiàn)代智慧礦山理念[1]中。煤礦井下的工作人員在煤礦行業(yè)中發(fā)揮著重要的作用,這些人員的行為直接關(guān)系到煤礦井下的管理和發(fā)展。近幾年,因為井下人員不安全行為,井下人員受傷事件頻發(fā)[2],如何使用新興技術(shù)保證井下工作人員安全是重中之重。因此需要一種具備動態(tài)檢測,快速分析和實時報警提示功能的智能姿態(tài)檢測系統(tǒng),實時督查人員的不安全行為,并且當(dāng)發(fā)現(xiàn)違規(guī)行為或不安全行為時發(fā)出相應(yīng)的提示,保證煤礦工作的正常運行。
傳統(tǒng)目標(biāo)行為分析主要分為基于模型的方法[3]和基于相似度量的方法[4],然而這些方法復(fù)雜且冗余度很高,普遍實用性差。為了有效分析人員行為,文獻[5]采用長短時記憶網(wǎng)絡(luò)算法對多傳感器采集的現(xiàn)場數(shù)據(jù)進行處理,該算法的訓(xùn)練速度快,并且模型內(nèi)存占用較低,在人體行為檢測上可以取到很好的準(zhǔn)確率。文獻[6]基于慣性傳感器設(shè)計一種自適應(yīng)的誤差四元數(shù)無跡卡爾曼濾波(DAUKF)算法,并引入漸消記憶法自適應(yīng)地調(diào)整觀測噪聲協(xié)方差,以減少系統(tǒng)本身和環(huán)境對姿態(tài)檢測的干擾,所提方法提高了姿態(tài)檢測精度。然而對于多人檢測時,這些方法會面臨著設(shè)備復(fù)雜并且成本相對較高等問題。
目前結(jié)合深度學(xué)習(xí)[7-9]和機器學(xué)習(xí)[10,11]實現(xiàn)人體姿態(tài)檢測的算法,已在很多場景得到了廣泛的運用,并且精度也可以得到保證。其中,OpenPose網(wǎng)絡(luò)結(jié)構(gòu)[12]由于具備有效提取人體骨骼點的能力而被運用于姿態(tài)檢測。鄭雪晨[13]等人使用OpenPose算法獲取視頻中人體的骨骼點,并結(jié)合SVM算法實現(xiàn)人體異常跌倒姿態(tài)的檢測,可以實時檢測老人的姿態(tài)。朱建寶[14]等人在OpenPose多人姿態(tài)估計算法的基礎(chǔ)上,提出了一種人員危險行為檢測模型,該方法可以有效的檢測多人的行為是否是危險行為。伏娜娜[15]等人在 Yolov5s人體目標(biāo)檢測算法的基礎(chǔ)上結(jié)合輕量級OpenPose人體姿態(tài)估計模型,并且通過自定義跌倒檢測算法檢測人員是否摔倒,該算法有較高的特異度并且檢測的誤報率低。除了可以使用自下而上的OpenPose算法進行人體姿態(tài)估計,自上而下的AlphaPose[16]算法也被廣泛的應(yīng)用在人體姿態(tài)檢測中,陳博[17]等人運用AlphaPose人體姿態(tài)檢測算法對人體關(guān)鍵點進行提取,構(gòu)建特征向量,通過支持向量機分類算法得到姿態(tài)類別,再通過滑動窗口法判斷是否有異常行為,當(dāng)發(fā)生異常時進行本地提醒和遠程報警,可以實時實現(xiàn)多人的姿態(tài)檢測。與傳統(tǒng)僅使用單一的骨骼點檢測算法不同,鄧偉男[18]結(jié)合OpenPose和AlphaPose骨骼點檢測算法提出狀態(tài)檢測方法,可以有效地檢測多人的姿態(tài),并且可以判斷出是否有疲勞的風(fēng)險。
目前,面向煤礦井下人員的姿態(tài)檢測應(yīng)用比較少,本文在現(xiàn)有的人體姿態(tài)檢測算法的基礎(chǔ)上設(shè)計了一套智能輔助姿態(tài)檢測管理系統(tǒng),檢測速度達到30 f/s,姿態(tài)識別整體準(zhǔn)確率86.35%,可自動檢測井下工作人員是否有摔倒、攀爬和推搡不安全行為。該系統(tǒng)具備報警信息輸出功能,提示相應(yīng)的工作人員,減少不安全行為的發(fā)生。
OpenPose網(wǎng)絡(luò)結(jié)構(gòu)是由美國卡耐基梅隆大學(xué)的研究人員通過神經(jīng)網(wǎng)絡(luò)和監(jiān)督學(xué)習(xí)提出的自下而上的人體姿態(tài)評估算法??梢詫θ梭w的動作、面部的表情以及手指的運動等姿態(tài)進行估計。OpenPose使用VGG-19卷積神經(jīng)網(wǎng)絡(luò)對輸入圖像進行預(yù)處理,得到特征圖F。然后將特征圖輸入到運算分支ρt和φt,其中分支ρt用于預(yù)測骨骼點置信圖PCM,另一路分支φt用于預(yù)測骨骼點親和域PAF,t為階段即表示串行的模塊,一般取值為5,6,7。
每一階段的骨骼點置信圖PCM與骨骼點親和域PAF的輸出結(jié)果分別記為St和Lt。
在第一階段中輸入的是VGG-19網(wǎng)絡(luò)輸出的特征圖F,其他階段輸入的數(shù)據(jù)為VGG-19輸出的特征圖F和上階段輸出的骨骼點置信圖PCM與骨骼點親和域PAF。
St和Lt表達式見式(1)。
為了提高姿態(tài)檢測模型的計算效率,需要對原始的網(wǎng)絡(luò)模型進行輕量化操作,以期實現(xiàn)在識別精度丟失不大的情況下完成實時姿態(tài)檢測。本文主要是針對骨干網(wǎng)絡(luò)選取輕量化的網(wǎng)絡(luò)進行替代,具體如下:
Backbone改進:輕量級OpenPose網(wǎng)絡(luò)結(jié)構(gòu)[19]是OpenPose網(wǎng)絡(luò)結(jié)構(gòu)的改進版,Daniil Osokin等嘗試使用MobileNet網(wǎng)絡(luò)替換掉VGG-19設(shè)計輕量級OpenPose算法,并進行改進時發(fā)現(xiàn)使用擴張卷積可以顯著提升輕量級OpenPose的識別精度,由37.9 AP提升至42.8 AP。然此精度相對原本OpenPose下降幅度仍然很大。原因可能為Mobilenet在提取特征語義信息方面表現(xiàn)不佳,使用擴張卷積雖然有助于獲取特征語義信息,但提升幅度有限。SUN等人[20]提出一種稱為HRNet的高分辨率網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,該網(wǎng)絡(luò)在整個計算過程中始終保持高分辨率,可以并行連接從高分辨率到低分辨率的卷積流,并且實現(xiàn)了跨層信息交換,因而生成的特征圖包含更豐富語義信息,在空間識別上更精確。 經(jīng)測試發(fā)現(xiàn)HRNet18的計算量僅為3.2 GFLOPS是VGG19(19.2 GFLOPS)的16%,因而可采用HRNet18替換VGG19設(shè)計輕量化的OpenPose。
圖1 HRNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of HRNet network
1)HRNet18在同一個階段中,最后兩層保持兩路分支結(jié)構(gòu),其余的層合并為單路結(jié)構(gòu),能夠?qū)崿F(xiàn)骨骼點置信圖PCM與骨骼點親和域PAF共享參數(shù)。
2)對原版7×7卷積核進行了改良,將其改為1×1、3×3、3×3的組合結(jié)構(gòu)卷積核,并且最后一個3×3卷積核膨脹系數(shù)設(shè)為2,可以保持初始感受視野一致。經(jīng)過這樣改進運算參數(shù)量降為二階OpenPose算法的15%,但是性能和準(zhǔn)確率并沒有受到影響,而且算法的運行速度大大提高。輕量級OpenPose算法改良部分如圖2所示。
圖2 輕量級OpenPose改進結(jié)構(gòu)Fig.2 Improved architecture of the lightweight OpenPose
該輕量OpenPose推理在識別精度稍微下降的情況下推理性能提升了近3倍。不同版本的OpenPose的FLOPS、GPU推理性能、識別精度見表1。
表1 OpenPose性能與精度測試Table 1 Performance and accuracy test of OpenPose
輕量級OpenPose網(wǎng)絡(luò)結(jié)構(gòu)可以將圖像或視頻中人體進行姿態(tài)估計,并實時的輸出眼睛、手臂、膝蓋等18個關(guān)鍵的骨骼點,人體骨架如圖3(a)所示。在獲取到骨骼點后,本文通過自定義的姿態(tài)檢測規(guī)則對摔倒姿態(tài)、攀爬姿態(tài)以及推搡姿態(tài)進行檢測和分類。摔倒姿態(tài)檢測、攀爬姿態(tài)檢測以及推搡姿態(tài)檢測的定義對應(yīng)如圖3所示。
圖3 人體骨架與姿態(tài)對應(yīng)Fig.3 Human skeleton models corresponding to different postures
1.3.1 摔倒姿態(tài)檢測的定義
在判別摔倒姿態(tài)時,本文設(shè)計了兩種檢測摔倒姿態(tài)的算法。
1)當(dāng)視頻中只有一個人,使用以下的方法判別是否摔倒。分別記18個部位的骨骼點在圖像中的坐標(biāo)為(xi,yi),下標(biāo)i表示第i個部位的關(guān)節(jié)點。使用Lbody來表示人體軀干長度,其中x1,x8,x11,y1,y8,y11分別表示頸部、左右腰骨骼點的坐標(biāo)。Lbody的計算見式(2)。
2)當(dāng)視頻中有兩個人以上的人時,使用1)的方法需要加上追蹤,在計算力方面要求比較高,因此本文設(shè)計另一種方法檢測摔倒姿態(tài)。在正常情況下,在煤礦井下的工作人員不會主動躺在崎嶇且潮濕的地面,因此以這個設(shè)想為主體,只需要通過檢測人體脊椎與水平的夾角大小是否小于設(shè)定閾值來判定人員是否摔倒。但是為了防止人彎腰時可能導(dǎo)致脊椎水平夾角變小,另外借助大腿與水平的夾角是否小于設(shè)定的夾角閾值來輔助判定是否摔倒。
判定條件:骨骼點8號和11號的中心點記為C,骨骼點1號和C連成脊椎直線l。骨骼點8號和9號連起來記為大腿直線l1,人體骨骼點11號和12號連起來記為大腿直線l2,直線l與水平的夾角記為γ,直線l1與水平的夾角記為γ1,直線l2與水平的夾角記為γ2。
如果夾角γ<γa和γ1<γb時,或者夾角γ<γa和γ2<γb時,識別為摔倒姿態(tài)。根據(jù)實驗和實際情況,角度γa和γb可設(shè)在30°左右。
1.3.2 攀爬姿態(tài)檢測算法
根據(jù)人員在攀爬的過程中會做出高抬腿的動作,并且攀爬的高度越高,抬腿的動作就會更加明顯的常識,因此基于高抬腿的動作來判斷人員是否存在攀爬的行為。為了能夠更加有效的判別是否有攀爬的行為,在基于高抬腿動作判定攀爬姿態(tài)的同時加入入侵檢測。
判定條件:骨骼點9號和10號連起來記為小腿直線l3,直線l1和直線l3的內(nèi)測的夾角記為αA。同樣,骨骼點12號和13號連起來記為小腿直線l4,直線l2和直線l4的內(nèi)測的夾角記為αB.骨骼點8號和11號的中心點記為C,骨骼點1號和C連成脊椎直線l5。直線l1和直線l的內(nèi)測的夾角記為βA,直線l2和直線l的內(nèi)測的夾角記為βB。