侯艷文,姚有利,賈澤琳,蘇 丹,王曉義,郭 康
(山西大同大學(xué) 煤炭工程學(xué)院,山西 大同 037003)
據(jù)統(tǒng)計(jì)約95%的礦山事故發(fā)生都直接與人的不安全行為有關(guān)[1]。此外在煤礦井下,員工的不安全行為是事故發(fā)生的直接原因[2]。同時(shí),隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,監(jiān)控視頻進(jìn)入各個(gè)行業(yè),煤礦井下人員安全管理進(jìn)入智能化階段。雖然視頻監(jiān)控系統(tǒng)已經(jīng)在礦工不安全行為監(jiān)測(cè)中發(fā)揮一定作用,但智能化水平較低[3],還需要靠人在監(jiān)控室里面觀察,然而在長(zhǎng)時(shí)間的工作環(huán)境中,工作人員的注意力無(wú)法一直保持較高狀態(tài),所以人工監(jiān)控效率極低。因此對(duì)視頻數(shù)據(jù)進(jìn)行智能實(shí)時(shí)分析,可以很大程度提高監(jiān)控效率。
現(xiàn)今,對(duì)煤礦井下人員的不安全行為研究主要是針對(duì)人員的自身行為和安全著裝兩方面進(jìn)行的。人員自身行為識(shí)別主要是通過(guò)對(duì)圖像中特征信息的提取,通過(guò)特征以達(dá)到圖像分類(lèi)的結(jié)果,如佟瑞鵬等[4]提出將3種人工智能技術(shù)融合應(yīng)用在礦工不安全行為識(shí)別,提高了識(shí)別礦工跌倒行為的效果;溫廷新等[5]通過(guò)遷移學(xué)習(xí)與參差網(wǎng)絡(luò)建立模型用于識(shí)別礦工的跌倒及投擲不安全行為。另一方面也有很多學(xué)者利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)安全帽進(jìn)行識(shí)別檢測(cè),不斷將算法優(yōu)化改進(jìn)以提高安全帽檢測(cè)效率及準(zhǔn)確率。但由于煤礦井下情況復(fù)雜多變,僅僅是單個(gè)行為或者單個(gè)物體檢測(cè)不能達(dá)到預(yù)期的效果。OpenPose人體姿態(tài)模型,能更好地定位人的關(guān)鍵點(diǎn),并可利用這些關(guān)鍵點(diǎn)設(shè)定標(biāo)準(zhǔn),來(lái)識(shí)別人員的行為特征[6],對(duì)監(jiān)控復(fù)雜的煤礦井下人員有重要意義。
根據(jù)上述描述,文章提出一種基于視頻數(shù)據(jù)對(duì)煤礦井下不安全行為的識(shí)別方法。利用目標(biāo)檢測(cè)算法,OpenPose人體姿態(tài)算法,提出一種實(shí)時(shí)分析物的不安全狀態(tài)和人的不安全行為的方法,并利用OpenPose算法設(shè)定了分析人的行為的判定方法,可以分析視頻數(shù)據(jù)中的物的不安全狀態(tài)和人的不安全行為,并及時(shí)上報(bào)進(jìn)行預(yù)警。該方法對(duì)煤礦井下人員的不安全行為及物的不安全狀態(tài)進(jìn)行智能化分析,為礦工不安全行為智能識(shí)別和預(yù)警提供新的思路和方法。
視頻數(shù)據(jù)整體檢測(cè)流程如圖1所示。

圖1 視頻分析框架整體流程
將視頻分析物的不安全狀態(tài)和人的不安全行為的過(guò)程分為以下流程:
1) 獲取視頻文件并打開(kāi)視頻流;
2) 從視頻流中取得視頻幀;
3) 運(yùn)用YOLOv5目標(biāo)檢測(cè)算法進(jìn)行分析,獲取目標(biāo)類(lèi)型和位置;
4) 判斷目標(biāo)類(lèi)別中是否含有人類(lèi);
5) 若目標(biāo)類(lèi)型中包含人員信息,則利用OpenPose算法對(duì)視頻幀進(jìn)行人體姿態(tài)估計(jì)操作,然后進(jìn)行物的不安全狀態(tài)分析以及人的不安全行為分析;
6) 如果目標(biāo)中不含人類(lèi)則進(jìn)行物的不安全狀態(tài)分析,判斷其是否安全;
7) 如果是不安全行為或者是不安全場(chǎng)景則上報(bào)警告;
8) 一張視頻幀的分析到此結(jié)束,然后返回第二步開(kāi)始運(yùn)行,依照上述流程不斷分析返回結(jié)果。
視頻分析框架中一個(gè)重要模塊是基于YOLOv5的目標(biāo)檢測(cè)算法研究,其多用于在視頻或圖像中識(shí)別和定位物體。通過(guò)模型訓(xùn)練快速識(shí)別圖像類(lèi)別。目標(biāo)檢測(cè)常用于從圖像中找到感興趣的目標(biāo),并獲取物體的位置以及對(duì)物體進(jìn)行分類(lèi)。目標(biāo)檢測(cè)算法應(yīng)用廣泛,目標(biāo)檢測(cè)模型也有多種系列,下面主要使用YOLOv5進(jìn)行目標(biāo)檢測(cè)。
YOLOv5是一種目標(biāo)檢測(cè)模型,用于在視頻或圖像中識(shí)別和定位物體。它是在YOLOv4的基礎(chǔ)上進(jìn)行了改進(jìn)。且YOLOv5是一種端到端的深度學(xué)習(xí)模型,可以直接從原始圖像中檢測(cè)和定位目標(biāo)。它使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)學(xué)習(xí)圖像中物體的特征,并使用多尺度預(yù)測(cè)和網(wǎng)格分割來(lái)檢測(cè)和定位目標(biāo)。YOLOv5的優(yōu)勢(shì)在于它可以在高速運(yùn)行,并且可以在不同的圖像分辨率上很好地工作。總的來(lái)說(shuō),YOLOv5是一種高效的目標(biāo)檢測(cè)模型,可以應(yīng)用于許多不同的場(chǎng)景,包括自動(dòng)駕駛、機(jī)器人感知、圖像分析等。
YOLOv5有4個(gè)模型,但文章選用YOLOv5s模型,因其相對(duì)其他模型深度最小,特征圖寬度最小。YOLOv5s網(wǎng)絡(luò)整體結(jié)構(gòu)圖如圖2所示。YOLOv5模型包含4個(gè)核心模塊,分別是輸入端、Backbone、Neck和輸出端。

圖2 YOLOv5s網(wǎng)路整體結(jié)構(gòu)圖
輸入端(Input):在模型訓(xùn)練階段,對(duì)輸入的圖片進(jìn)行數(shù)據(jù)處理,其處理主要運(yùn)用Mosaic數(shù)據(jù)增強(qiáng),自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放對(duì)圖像進(jìn)行縮放,對(duì)原始圖片添加最少的黑邊。
基準(zhǔn)網(wǎng)路(Backbone):其是提取圖片特征的主干網(wǎng)絡(luò),主要包含F(xiàn)ocus和CSP兩種結(jié)構(gòu),其中CSP結(jié)構(gòu)包含兩種結(jié)構(gòu)分別為:CSP1_X結(jié)構(gòu)和CSP2_X結(jié)構(gòu)。CSP1_X結(jié)構(gòu)應(yīng)用于Backbone中,另一種CSP2_X結(jié)構(gòu)應(yīng)用于Neck中。Focus結(jié)構(gòu)關(guān)鍵的是切片操作。
頸網(wǎng)絡(luò)(Neck):其采用FPN+PAN結(jié)構(gòu),并且上述中提到的CSP2_X結(jié)構(gòu)也應(yīng)用其中。FPN層自頂向下傳達(dá)強(qiáng)語(yǔ)義特征,而特征金字塔是自底向上傳達(dá)強(qiáng)定位特征,雙向進(jìn)行操作,從不同的主干層對(duì)不同的檢測(cè)層進(jìn)行參數(shù)聚合,大大增強(qiáng)檢測(cè)效果[7]。
輸出端:主要是目標(biāo)最終預(yù)測(cè)及輸出。采用CIOU_Loss做Bounding box的損失函數(shù),對(duì)預(yù)測(cè)框進(jìn)行優(yōu)化,并利用nms非極大值抑制對(duì)很多目標(biāo)框進(jìn)行篩選輸出。
視頻分析框架的另一個(gè)模塊是基于OpenPose對(duì)人體行為進(jìn)行識(shí)別,對(duì)從視頻數(shù)據(jù)中獲取的視頻幀(圖片)進(jìn)行人體姿態(tài)估計(jì)進(jìn)而判斷出人體行為。人體行為識(shí)別是指通過(guò)計(jì)算機(jī)視覺(jué)技術(shù)、人工智能等知識(shí)和技術(shù)對(duì)監(jiān)控視頻中的圖像進(jìn)行分析,從而實(shí)現(xiàn)人體行為識(shí)別。
OpenPose是一個(gè)開(kāi)源庫(kù),可以將檢測(cè)到的人體關(guān)節(jié)點(diǎn)正確聯(lián)系起來(lái),實(shí)現(xiàn)人體動(dòng)作、軀干、手指運(yùn)達(dá)等姿態(tài)估計(jì),以實(shí)現(xiàn)人體姿態(tài)估計(jì)。OpenPose是一種自底向上(Bottom-Up)的算法,首先先得到人體的每一個(gè)關(guān)鍵點(diǎn),其次再通過(guò)部分親和場(chǎng)(PAF Part Affine Field)將關(guān)鍵點(diǎn)分給每個(gè)人[8],并找到當(dāng)前最適合的拼接方式,對(duì)包含人的圖像進(jìn)行人體姿態(tài)估計(jì)。而基于OpenPose算法的人體行為識(shí)別的核心就是行為識(shí)別模型的構(gòu)建,通過(guò)構(gòu)建可達(dá)到識(shí)別視頻數(shù)據(jù)中人體行為特征。根據(jù)提取到的行為特征與數(shù)據(jù)集中的人體行為進(jìn)行對(duì)比識(shí)別,進(jìn)一步加強(qiáng)人體行為的特征提取,例如站立、行走、翻越欄桿等。
OpenPose 的主要流程:圖像輸入后先通過(guò) VGG19 網(wǎng)絡(luò)提取輸入視頻幀的特征,然后將特征圖經(jīng)過(guò)一個(gè)二分支網(wǎng)絡(luò)預(yù)測(cè),一個(gè)CNN分支預(yù)測(cè)獲取人的所有關(guān)鍵點(diǎn)(如頭部,脊柱等),并將這些關(guān)鍵點(diǎn)組成置信圖,另一個(gè)分支通過(guò)CNN網(wǎng)絡(luò)計(jì)算得到所有肢體的部分親和場(chǎng)(Part Affine Field),最后得到了人體姿態(tài)估計(jì)。如圖3所示為OpenPose神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖,識(shí)別人體姿態(tài)的整個(gè)過(guò)程。

圖3 OpenPose神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
OpenPose推斷原理:調(diào)用模型,輸入一張圖片時(shí)輸出特征圖個(gè)數(shù)和人體關(guān)節(jié)點(diǎn)個(gè)數(shù)相同,再利用這些特征圖把人體關(guān)節(jié)的位置和置信度提取出來(lái),然后計(jì)算每一個(gè)關(guān)節(jié)點(diǎn)的親和場(chǎng),選擇親和場(chǎng)特征比較明顯的關(guān)鍵點(diǎn),作為兩個(gè)關(guān)鍵點(diǎn)的肢體連接線(xiàn)。
利用OpenPose方法對(duì)視頻中每一幀人體進(jìn)行姿態(tài)估計(jì):首先回歸人體關(guān)節(jié)點(diǎn),得到每個(gè)人的18個(gè)骨骼關(guān)節(jié)點(diǎn)信息,同時(shí)這18個(gè)骨骼關(guān)節(jié)點(diǎn)分別對(duì)應(yīng)著從0~17的編號(hào),每個(gè)骨骼關(guān)節(jié)點(diǎn)都有1個(gè)編號(hào),例如0為鼻子,1為脖子等;其次找到肢體連接;然后拼接肢體構(gòu)成人體形態(tài)。一種基于視覺(jué)的行為檢測(cè)和活動(dòng)識(shí)別,利用人體骨架估計(jì)可以進(jìn)行人體行為特征提取,所以可利用人體關(guān)節(jié)點(diǎn)信息對(duì)人體行為進(jìn)行分析。OpenPose分析效果如圖4所示。

圖4 OpenPose分析效果圖
不安全分析包括物的不安全狀態(tài)分析和人的不安全行為分析,兩者區(qū)別在于視頻中是否有人員出現(xiàn)是否需要進(jìn)行人體行為分析。如圖1所示,可從視頻分析整體框架流程中得到,如果目標(biāo)檢測(cè)沒(méi)有檢測(cè)到人,則直接進(jìn)行物的不安全狀態(tài)分析,否則對(duì)視頻中所獲取的視頻幀繼續(xù)進(jìn)行人體姿態(tài)估計(jì),之后進(jìn)行人的不安全行為以及物的不安全狀態(tài)分析。其中,物的不安全狀態(tài)分析利用的是目標(biāo)檢測(cè)算法判斷人員,但不包括人體姿態(tài)估計(jì),而人的不安全行為分析可同時(shí)利用兩種算法進(jìn)行分析。
對(duì)物的不安全狀態(tài)分析主要利用的是YOLOv5目標(biāo)檢測(cè)算法。值得注意的是,物的不安全狀態(tài)分析可以利用人體的目標(biāo)檢測(cè),但不包括人體姿態(tài)行為識(shí)別分析??蓮奈磶О踩?、未佩戴口罩等進(jìn)行物的不安全狀態(tài)分析。
3.1.1 未戴安全帽
針對(duì)人員頭部是否帶安全帽,首先訓(xùn)練一個(gè)通用的頭部檢測(cè)模型,然后設(shè)置檢測(cè)框并裁剪頭部區(qū)域,之后訓(xùn)練一個(gè)佩戴安全帽的分類(lèi)器,完成對(duì)安全帽佩戴的分類(lèi)識(shí)別。YOLO模型可以直接判斷人員是否佩戴安全帽,故當(dāng)檢測(cè)到未帶安全帽,就直接上報(bào)警告。
3.1.2 未佩戴口罩
首先針對(duì)人員是否戴口罩,進(jìn)行數(shù)據(jù)集獲取(網(wǎng)絡(luò)開(kāi)源數(shù)據(jù)集),對(duì)采集的數(shù)據(jù)集進(jìn)行標(biāo)注,將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集,將YOLOv5s(預(yù)訓(xùn)練權(quán)重)作為預(yù)訓(xùn)練模型,然后運(yùn)用修改的數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練。然后通過(guò)視頻數(shù)據(jù)檢測(cè)人員是否佩戴口罩,若未帶口罩,則上報(bào)。
對(duì)人體進(jìn)行姿態(tài)識(shí)別并且對(duì)人體不安全行為設(shè)定判定標(biāo)準(zhǔn),用來(lái)識(shí)別礦工的不安全行為。利用OpenPose算法從視頻中獲取視頻流從而得到視頻幀,然后對(duì)每一幀中的人體行為進(jìn)行分析。
3.2.1 人體行走、站立行為判定
正常人脊柱線(xiàn)一般垂直于地面,例如當(dāng)人體站立或者行走時(shí)人體的脊柱線(xiàn)都可能與水平方向的夾角呈90°,所以先判斷脊柱線(xiàn)是否與水平方向呈90°夾角,首先,先得到8(右腰)和11(左腰)中間點(diǎn)a,則脊柱線(xiàn)為人體關(guān)鍵點(diǎn)的1到a的連線(xiàn),若其呈90°夾角可以利用站立與行走時(shí)左右腳踝之間的距離進(jìn)一步進(jìn)行判斷,所使用的關(guān)鍵節(jié)點(diǎn)的編號(hào)為10(右側(cè)腳踝)、13(左側(cè)腳踝)。當(dāng)人體站立時(shí)左右腳踝之間的距離不會(huì)特別大,但當(dāng)人體做出走路姿態(tài)時(shí)人體的左右腳踝之間的距離就會(huì)相差較大。如圖5所顯示的是不同姿態(tài)礦工關(guān)鍵部位識(shí)別。

圖5 不同姿態(tài)礦工關(guān)鍵部位識(shí)別
3.2.2 人體倒地不安全行為判定
由上述可知,正常人體脊柱線(xiàn)一般是與地面垂直的,所以判斷人體是否倒地可以利用人體的脊柱線(xiàn)進(jìn)行識(shí)別判斷。當(dāng)脊柱線(xiàn)與水平方向的夾角小于30°時(shí),可以判定為人體倒地或摔倒。
3.2.3 人體翻越不安全行為判定
當(dāng)人體做出翻越動(dòng)作時(shí)比如翻越護(hù)欄、扒車(chē)等,就會(huì)出現(xiàn)抬腿,跨等動(dòng)作,而這時(shí)就會(huì)出現(xiàn)兩側(cè)腳踝和膝蓋高低不一現(xiàn)象,一側(cè)膝蓋和腳關(guān)節(jié)點(diǎn)位置高于另一側(cè),所以判斷人體是否有翻越動(dòng)作可以利用人體的兩側(cè)腳踝和膝蓋關(guān)鍵點(diǎn)來(lái)進(jìn)行判斷,而所使用的關(guān)鍵點(diǎn)的編號(hào)為9(右側(cè)膝蓋)、10(右側(cè)腳踝)、12(左側(cè)膝蓋)、13(左側(cè)腳踝)。若一側(cè)腳的關(guān)鍵點(diǎn)高于或等于另一側(cè)的膝蓋關(guān)鍵點(diǎn)則判定為有翻越行為。

圖6 人員倒地

圖7 人員翻越
利用這些判定標(biāo)準(zhǔn)以及從視頻幀中獲取到的人體關(guān)鍵點(diǎn)坐標(biāo)信息,可以判斷該視頻中人體行為特征。
文章提出將YOLOv5和OpenPose算法進(jìn)行結(jié)合,提出了另一種分析人體行為的方法,提升了基于視頻監(jiān)控的安全管控效率。文章提出的分析框架將YOLOv5目標(biāo)檢測(cè)算法和OpenPose人體姿態(tài)估計(jì)算法結(jié)合,發(fā)揮了各自的優(yōu)勢(shì),能更好地識(shí)別物的不安全狀態(tài)及人的不安全行為,其具有更廣闊的研究及應(yīng)用前景。未來(lái)可將研究進(jìn)一步推進(jìn),拓展可識(shí)別物的狀態(tài)類(lèi)別及行為類(lèi)別,提高智能礦井預(yù)警系統(tǒng)的實(shí)時(shí)性。