崔鐵軍,王凌霄
(遼寧工程技術大學 安全科學與工程學院,遼寧 葫蘆島 125105)
我國是世界上最主要的煤炭消費國和生產國,煤礦工人要面對無處不在的矽塵、煤塵等,只靠除塵器除塵或噴水噴泡降塵等除塵方法是遠遠不夠的,佩戴防塵口罩是煤礦工人對抗職業性塵肺病的最后一道防線。由于防塵口罩舒適性差以及人員有僥幸心理和從眾心理,許多工人不愿佩戴防塵口罩。且傳統的煤礦井下作業現場具有安全管理水平低、安全員的主觀干擾大、不能全面監控等問題。對其進行巡檢費時費力且不符合實際。因此,將深度學習技術應用于監測煤礦工人的口罩佩戴情況對預防職業性塵肺病具有十分重要的意義。
自2016年AlphGo戰勝職業棋手李世石之后,學者們掀起了一波將深度學習與各自領域結合研究的浪潮[1]。在口罩佩戴檢測方面,一些學者應用深度學習技術進行了研究,牛作東等[2]利用Retina Face算法對公共場所下的口罩佩戴進行了研究;張修寶等[3]采用數據增強等方法對自然場景下的人臉口罩識別進行了研究;曹城碩等[4]改進并提出1種YOLO-Mask算法對公共場合的人員進行口罩檢測;魏麗等[5]利用級聯卷積神經網絡對遮擋條件下的人臉檢測與遮擋物屬性判識;王藝皓等[6]改進了YOLOv3目標檢測算法,對復雜場景下口罩佩戴進行了檢測。目前大多都是針對新冠肺炎疫情下的日常口罩佩戴識別的研究。相比于日常環境,煤礦井下具有作業環境惡劣、光線昏暗等特點,目前利用深度學習技術針對煤礦井下復雜環境的檢測研究較少。在安全領域學者們主要將人工智能技術應用于人的不安全行為識別和故障檢測。趙江平等[7]利用支持向量機(SVM)對有限空間作業中人員跌倒進行了研究;佟瑞鵬等[8]利用融合特征進行分類,對礦工跌倒行為進行識別檢驗;施輝等[9]改進了YOLOv3算法,對施工現場作業人員不佩戴安全帽進行了研究;車暢暢等[10]利用深度學習的故障融合診斷模型對航空發動機故障進行診斷;康高強[11]、周雙林等[12]利用Faster R-CNN算法對故障進行研究;李千登等[13]利用深度學習算法對叉車危險操作行為進行了檢測。
針對傳統煤礦井下作業現場的安全管理不到位,安全員巡檢工作量巨大、效率低且費時費力、不能全程監控等問題,本文利用Keras框架搭建YOLOv4模型,收集煤礦工人佩戴口罩和未佩戴口罩的圖像數據,制作數據集,然后進行模型訓練測試,最后對算法的識別精準度進行評估。此外,采用MTCNN和FaceNet構成的人臉識別算法對未佩戴口罩的作業人員的人臉進行識別,并設計對比實驗測試本文算法對煤礦工人口罩佩戴識別監測的實用性。
本文基于Keras框架對煤礦井下作業現場圖像中佩戴口罩和未佩戴口罩的作業人員進行檢測并識別。首先收集作業人員圖像并制作模型的數據集,對其進行預處理后構建YOLOv4目標檢測算法,根據模型訓練和測試結果微調其參數使其在煤礦井下復雜環境下有更好的適用性。通過算法檢測出未佩戴口罩的作業人員后,基于MTCNN和FaceNet構成的人臉識別算法對其進行人臉識別,以達到追根溯源的目的,進而有利于提高安全管理水平,具體流程如圖1所示。
圖1 智能監管的具體流程Fig.1 Specific process of intelligent supervision
煤礦工人口罩佩戴檢測系統的總體框架主要由監控和提醒2部分組成。監控部分是由YOLOv4目標檢測算法進行口罩檢測,MTCNN與FaceNet完成人臉識別;提醒部分是通過算法識別出未按規定佩戴口罩的人的名字再由計算機控制喇叭系統進行智能提醒,并將未戴口罩的煤礦工人納入考核,進行安全教育,從而保障煤礦工人的肺部健康,預防職業性塵肺病。要實現煤礦工人口罩檢測的全覆蓋,實現自動提醒作業人員佩戴防塵口罩的任務,就需要對入口處和作業環境內增添相關設施,以實現檢測系統的各項功能正常運行,如圖2所示。
圖2 檢測系統的結構組成Fig.2 The structure of the detection system
1)監控智能化
監控智能化即無需煤礦工作人員直接接觸,即可檢測未佩戴口罩人員的身份。在礦井入口處安裝檢測用的單目攝像頭,將其與閘機人臉身份識別系統合二為一,在檢測出未佩戴防塵口罩則閘機關閉,防止未佩戴口罩的作業人員進入工作區。利用安保使用的攝像頭,在粉塵嚴重的作業區安裝檢測用的單目攝像頭。與安保系統融為一體,減少單獨設立設備的成本,保證監控的全覆蓋。
2)提醒自動化
提醒自動化即在沒有安全員或者監督人員的情況下通過喇叭系統督促煤礦工人佩戴好防塵口罩。利用MTCNN和FaceNet組成的人臉識別算法進行人臉識別,確定未佩戴口罩作業人員的身份,由計算機控制喇叭系統播報語音,從而督促作業人員佩戴好防塵口罩。同時將未佩戴口罩的煤礦工人納入考核,之后對其進行安全教育,以防再次違反安全規定。
本文采用的是Keras深度學習框架。Keras框架與其他框架相比具有API簡單易用、擴展性好、易于使用等優點,也是目前主流的用來實現神經網絡的機器學習框架之一。
YOLOv4[14]模型是由AlexeyAB等在YOLOv3的基礎上改進而來,目前YOLO發展到第4代,將檢測速度和精度完美的結合,是目前最先進、使用最廣泛的目標檢測算法之一。對比Faster RCNN[15]目標檢測方法,YOLOv4網絡是one-stage網絡,它只需對圖像做1步運算,即可完成對圖像的檢測和識別,具有速度更快,幀數更高等優勢。YOLOv4的主干特征提取網絡CSPDarknet53[16]是在YOLOv3的主干特征提取網絡Darknet53上進行了改進,而增強特征提取網絡則使用了SPP和PANet結構。
YOLOv4網絡結構如圖3所示。當輸入圖片是416×416的大小時,傳入YOLOv4網絡中,依次被劃分13×13,26×26,52×52的網格分別對應著大物體、中物體、小物體。網絡預測的結果會判斷網格點的右下角是否有物體以及其種類,并且對先驗框進行調整而后獲得預測框。相比于前代YOLOv3目標檢測算法,YOLOv4目標檢測算法的AP值提高了10%,fps值提高了12%。
圖3 YOLOv4模型結構Fig.3 YOLOv4 model structure
MTCNN(Multi-task convolutional neural network)即多任務卷積神經網絡,它為計算機檢測人臉提供了非常有效的思路,是1種輕量級的卷積神經網絡組成的人臉檢測算法。MTCNN的網絡結構主要由O-Net(Output Network),R-Net(Refine Network),P-Net(Proposal Network)3層組成。為了檢測不同大小的人臉,圖像進入MTCNN中會被分組成不同大小,然后將獲得的圖像金字塔再傳入P-Net中,P-Net會生成許多相對于原圖坐標的人臉候選框,從中截取不同區域傳入R-Net中,通過R-Net網絡可以初步判斷人臉框的位置,再次截取框中區域傳入MTCNN中最精細的網絡O-Net中,最終得出人臉位置實現人臉檢測。
FaceNet是谷歌公司于2015年提出的基于人臉特征的提取網絡的人臉檢測算法,它可以有效地識別人臉。如圖4所示FaceNet把人臉圖像通過深度神經網絡和L2標準化編碼成128維的數字矢量并作為提取特征。利用歐式距離將這2個向量的距離進行比較,得出圖像是否為同一個人,從而實現人臉識別。
圖4 FaceNet算法流程Fig.4 Flow chart of FaceNet algorithm
YOLOv4目標檢測算法采用的是Mosaic數據增強方法,每次運算讀取4張圖片,將這4張圖片經過翻轉、縮放、色域變化等操作按照4個位置對號入座,拼接組合成1張帶有框的新圖片,有著豐富檢測物體的背景的優點。
由于煤礦井下環境惡劣,光照灰暗,因此,為提高模型對煤礦井下灰暗場景圖像的魯棒性,將圖像進行色域扭曲,將HSV(Hue,Saturation,Value)顏色模型中的色調(H)、飽和度(S)、明度(V)進行調整,從而模擬出在井下的情況,如圖5所示。
圖5 色域扭曲數據增強Fig.5 Color gamut distortion data enhancement
目前,由于沒有1個完整的關于煤礦井下工人口罩佩戴的檢測數據集。本文從互聯網公開數據集、煤礦作業區錄像視頻文件截取圖像和網絡圖中篩選出人員已佩戴防塵口罩和人員未佩戴防塵口罩的圖像總共6 834張。其中圖像總數的10%作為測試集,圖像總數的90%作為訓練集。在收集完這些圖像后,利用圖像注釋工具Labelimg對這些圖像進行標注。數據集標注示例如圖6所示。標注的標簽共2個,煤礦工人佩戴口罩(Face_mask)和煤礦工人未佩戴口罩(Face)。最后的標注結果保存為VOC格式的XML文件即為數據集,以便之后使用。
圖6 數據集標注示例Fig.6 Data set annotation example
本文選取交疊率IOU(Intersection Over Union)、精確度P(precision)、召回率R(recall)、平均精度AP(Average Precision)和所有類AP值的平均值mAP這5種指標衡量模型對煤礦工人是否佩戴防塵口罩的檢測性能。
3.3.1 交疊率IOU
IOU即衡量預測框和真實框的重合程度。候選區中防塵口罩的預測框和真實框重合度越大,證明煤礦工人是否佩戴防塵口罩檢測的效果越好,交疊率公式如式(1)。
(1)
式中:S交為重疊域;S并為總域。交域與總域之比即為交疊率IOU。
3.3.2 精確度P
精確度P即模型判定正確并且確實正確的樣本占模型判定正確的總樣本的比例,在文中表示為煤礦工人是否佩戴防塵口罩被正確分類的概率,如式(2)。
(2)
式中:TP(True Positives)為正樣本預測出正樣本的數量;FP(False Positives)為負樣本預測出負樣本的數量。
3.3.3 召回率R
召回率R即有多少正例被預測正確,如式(3)。
(3)
式中:FN(False Negatives)為該樣本是正樣本,但被分為負樣本而且錯誤的概率。
3.3.4 平均精度AP(Average Precision)
平均精度AP(Average Precision)即不同P和R的值所組成圖形的面積,計算公式如式(4)。
(4)
3.3.5 所有目標類的平均精度的平均值mAP(Mean Average Precision)
所有目標類的平均精度的平均值mAP(Mean Average Precision)公式如式(5),其中C為目標類個數,ci表示第i個目標類。
(5)
本文算法在Visual Studio Code中編程實現,編程語言為Python3.6,深度學習框架為tensorflow-gpu1.13.2,keras2.1.5,實驗平臺為16 GB內存、AMD Ryzen 5 3500X CPU,GeForce GTX 1660 SUPER GPU,并用Python語言編譯實驗。模型初始的學習率設置為0.001,batchsize為2,共訓練60輪。
本次實驗測試集包含683張圖片,其中煤礦工人已佩戴防塵口罩檢測的平均精度為0.98,煤礦工人未佩戴防塵口罩檢測的平均精度為0.83,mAP計算為90.73%。檢測到煤礦作業人員未佩戴防塵口罩如圖7所示。檢測到煤礦作業人員已佩戴防塵口罩圖8所示。檢測到煤礦作業人員未佩戴防塵口罩隨后進行人臉識別如圖9所示。
圖7 煤礦工人未佩戴防塵口罩的檢測示例Fig.7 An example of detection of coal mine workers not wearing dust masks
圖8 煤礦工人已佩戴防塵口罩的檢測示例Fig.8 An example of detection of coal mine workers wearing dust masks
圖9 煤礦工人未佩戴防塵口罩的人臉識別示例Fig.9 Face recognition example of coal mine staff without dust mask
從圖7~8中可以看出對于正常煤礦工作時作業人員是否佩戴防塵口罩的檢測識別,本文算法取得了不錯的檢測精度,mAP值達到92.21%。由圖7可以看出,當煤礦工人作業未佩戴防塵口罩時,則可由YOLOv4目標檢測算法檢測而出。而由圖8可以看出,當煤礦工人作業時佩戴防塵口罩時,不管其佩戴的是普通的口罩還是防塵面具,YOLOv4模型都可以較好地識別其佩戴了防塵口罩。由圖9可以看出,當檢測到煤礦工人未佩戴口罩后,基于MTCNN和FaceNet相結合的人臉識別算法對其進行人臉識別,并成功識別出煤礦工人William。
本文基于YOLOv4目標檢測算法實現了煤礦工人口罩佩戴的檢測,同時與Faster-RCNN,SSD[17],YOLOv3[18]算法做對比實驗。然后在測試集上分別對其進行訓練測試評估,以平均精度AP、平均精度均值mAP作為模型性能的評估指標,得到數據見表1。
表1 不同檢測算法性能指標對比Table 1 Comparison of performance indexes of different detection algorithms
本文算法與Faster-RCNN,SSD等目前主流的目標檢測算法相比具有更高的檢測精度。與它的上一代YOLOv3算法相比,YOLOv4目標檢測算法在2種類別檢測目標的平均檢測精度上分別提高了2.74%和2.57%。由此可知,相比于其他3種算法,YOLOv4目標檢測算法在性能上有一定的優勢,檢測精度更高。
1)針對煤礦工人口罩佩戴問題,本文將深度學習算法應用于安全領域,基于Keras框架利用YOLOv4算法對煤礦工人佩戴防塵口罩情況進行檢測與識別,并與MTCNN和FaceNet構成的人臉識別算法相結合進行應用研究。通過6 834張圖像組成的數據集進行訓練并測試評估,驗證了該系統的適用性和有效性,有助于提升煤礦井下作業的安全管理水平。
2)YOLOv4目標檢測算法對煤礦工人已佩戴口罩檢測的平均精度為92.78%,對未佩戴防塵口罩檢測的平均精度為91.63%。與Faster-RCNN,SSD和YOLOv3算法進行了模型的對比實驗并進行了評估,結果表明本文算法的mAP值分別高了14.8%,17.64%,2.66%。證明本文算法總體性能最佳,對煤礦工人是否佩戴口罩有著更高的識別準確度。
3)圖像識別方法應用于安全領域具有很大的研究空間以及應用前景。下一步工作將研究目標檢測算法如何與實際作業場景深入的結合,并將繼續采用深度學習理論知識和目標檢測技術,研究煤礦井下危險源的辨識。