范亞龍, 李琦, 于令君
(內(nèi)蒙古科技大學(xué)信息工程學(xué)院, 包頭 014010)
銅冶煉作為銅產(chǎn)業(yè)鏈中的重要環(huán)節(jié),存在危險性高的作業(yè)環(huán)境,如吹煉渣排出過程中,含有SiO2等黏度較大的物質(zhì),需人工協(xié)助排渣防止出口堵塞,為減少該過程中工人因心存僥幸、穿戴安全著裝不規(guī)范引發(fā)的安全生產(chǎn)事故,傳統(tǒng)方法主要有進行安全教育、加強巡邏監(jiān)管[1-3],但此類事故依舊高發(fā)。
隨著計算機視覺的發(fā)展,越來越多的視頻監(jiān)控技術(shù)應(yīng)用在工業(yè)生產(chǎn)安全領(lǐng)域。吳宏毅等[4]基于Transformer設(shè)計了一套檢測安全帽及工作服的神經(jīng)網(wǎng)絡(luò),但存在小目標(biāo)檢測準(zhǔn)確率低的問題;韓豫等[5-6]使用OpenCV通過檢測工人安全帽、安全帶實現(xiàn)工人作業(yè)前安全裝備檢測。秦子豪等[7]及曹燕等[8]分別使用改進的YOLOv3算法和引入Conv-LSTM(long short-term memory)的SSD(single shot multibox detector)算法來提高工人安全帽檢測的準(zhǔn)確率;劉文強等[9]通過改進Faster RCNN提高了對工人檢測的準(zhǔn)確性;張萌等[10]使用改進的YOLOv4對工人作業(yè)時安全防護裝備進行檢測,但對遮掩目標(biāo)存在漏檢;崔鐵軍等[11]使用Keras框架下YOLOv4算法實現(xiàn)對工人防護面罩高精度且快速的檢測與識別;劉穎等[12]改進YOLOx增強復(fù)雜環(huán)境下對口罩佩戴的識別。以上方法驗證了深度學(xué)習(xí)應(yīng)用工業(yè)生產(chǎn)安全領(lǐng)域的有效性。
針對銅冶煉作業(yè)中因工人著裝導(dǎo)致的安全生產(chǎn)問題,設(shè)計基于深度學(xué)習(xí)的銅冶煉工人安全著裝監(jiān)測系統(tǒng)。首先,使用自制工人安全著裝數(shù)據(jù)集(workers’ safety dressing data, WSD-Data)訓(xùn)練對比YOLOv5五種網(wǎng)絡(luò)結(jié)構(gòu),選擇性能優(yōu)異的YOLOv5l網(wǎng)絡(luò)作為工人安全著裝檢測模型;其次,將模型部署到DeepStream[13]框架中,通過分析每幀檢測結(jié)果的時間空間關(guān)系,判斷工人著裝情況;最后,通過誤檢率和漏檢率驗證本系統(tǒng)對銅冶煉工人著裝情況實時監(jiān)測的準(zhǔn)確性。
本系統(tǒng)以某銅廠吹煉渣處理過程中工人著裝情況為藍本設(shè)計,如圖1所示。吹煉渣從連續(xù)吹煉爐內(nèi)經(jīng)管道流到出渣口,出渣口下方設(shè)渣包接收排出的吹煉渣。出渣口內(nèi)的管道用于分辨現(xiàn)場工作狀態(tài),其垂直時為作業(yè)狀態(tài)、水平時為檢修狀態(tài)。銅廠吹煉渣處理現(xiàn)場處于作業(yè)狀態(tài)時,工人在作業(yè)區(qū)域內(nèi)使用作業(yè)工具協(xié)助排出吹煉渣并清理出渣口,在該流程中工人需正確穿戴防護工裝,防止吹煉渣排出時濺射引發(fā)安全事故。本系統(tǒng)通過在作業(yè)區(qū)域正面、側(cè)面安置攝像頭,多角度監(jiān)測作業(yè)區(qū)域內(nèi)工人著裝情況,并設(shè)置聲光報警裝置對違規(guī)現(xiàn)象及時報警。
圖1 監(jiān)測系統(tǒng)應(yīng)用現(xiàn)場構(gòu)圖Fig.1 Site composition of monitoring system application
銅冶煉工人安全著裝監(jiān)測系統(tǒng)總體架構(gòu)如圖2所示,系統(tǒng)由基于YOLOv5工人安全著裝目標(biāo)檢測模型、基于時空關(guān)系分析工人安全著裝推理算法和基于DeepStream智能視頻流分析的監(jiān)測系統(tǒng)設(shè)計三部分組成。系統(tǒng)利用兩路高清攝像頭采集現(xiàn)場作業(yè)的視頻數(shù)據(jù),經(jīng)過解碼、圖像預(yù)處理后,使用TensorRT[14]對YOLOv5深度學(xué)習(xí)模型推斷加速,實時檢測工人著裝穿戴情況,檢測結(jié)果經(jīng)編碼后顯示實時監(jiān)測畫面。通過對作業(yè)區(qū)域內(nèi)的檢測結(jié)果進行時空關(guān)系分析,對工人著裝出現(xiàn)的違規(guī)現(xiàn)象,實現(xiàn)聲光報警、記錄報警原因、錄制違規(guī)視頻,同時設(shè)計移動端遠程查看報警詳情,方便銅冶煉安全管理人員查證。
本次采用的工人安全著裝圖像來源于內(nèi)蒙古自治區(qū)某銅冶煉企業(yè)。通過固定攝像頭采集工人連續(xù)四天的作業(yè)視頻,為降低數(shù)據(jù)集圖像的重復(fù)性,根據(jù)視頻內(nèi)工人動作頻率設(shè)置4 s抽取一幀,使用LabelImg工具進行標(biāo)注,最終得到分辨率為1 920×1 080的10 005張工人安全著裝圖像作為本次研究的數(shù)據(jù)集WSD-Data。該數(shù)據(jù)集包含11類檢測目標(biāo),具體類別與其數(shù)量如表1所示,其中工人類別用于判別著裝類別所屬工人,水平管道和垂直管道用于判別當(dāng)前作業(yè)狀態(tài)(水平管道處于檢修狀態(tài),垂直管道處于作業(yè)狀態(tài)),其余八類檢測目標(biāo)為安全著裝類別。
圖2 基于深度學(xué)習(xí)銅冶煉工人安全著裝監(jiān)測系統(tǒng)總體架構(gòu)Fig.2 Overall architecture of monitoring system for safety dress of copper smelting workers based on deep learning
YOLOv5作為深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)中檢測速度較快、準(zhǔn)確率較高的算法,它根據(jù)網(wǎng)絡(luò)的深度和寬度可分為YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x五種網(wǎng)絡(luò)結(jié)構(gòu)。YOLOv5算法的檢測流程為先對工人安全著裝圖像進行Mosaic數(shù)據(jù)增強和自適應(yīng)錨定框計算,并將工人安全著裝圖像尺寸(Resize)為640×640,再將圖片放入主干網(wǎng)絡(luò)進行主要信息提取,然后通過卷積加強特征融合,最后對圖像特征進行預(yù)測,生成邊界框和預(yù)測類別。
YOLOv5算法程序基于主流的深度學(xué)習(xí)開源框架PyTorch,使用Python語言開發(fā)。實驗的軟件環(huán)境為Ubuntu 18.04 操作系統(tǒng);硬件環(huán)境GPU為 Intel(R) NVIDIA GeForce GTX 3 090×2,運行內(nèi)存為 64 GB。
本實驗使用自制工人安全著裝數(shù)據(jù)集WSD-Data按9∶1比例分為訓(xùn)練集、測試集,設(shè)置epoch為400, batchsize為16,學(xué)習(xí)率為0.01,最后使用mAP@0.5(mean average precision)、精確率(precision)、召回率(recall)、F1值(F1-Score)和平均單幀檢測時間作為模型評價指標(biāo)。為使工人安全著裝監(jiān)測模型性能更好,對比YOLOv5系列的五類網(wǎng)絡(luò)結(jié)構(gòu),測試結(jié)果如表2所示。
由表2可知YOLOv5l網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練的mAP@0.5、精確率、召回率、F1效果最好,分別為84.3%、90.8%、94%、85%,從平均單幀檢測時間來看,YOLOv5n和YOLOv5s兩種網(wǎng)絡(luò)結(jié)構(gòu)的性能最好??紤]到雙攝像頭視頻流幀率和為50 f/s,YOLOv5l模型推斷單張工人防護圖像時間為13ms,即每秒推斷76張(大于50張),滿足系統(tǒng)對實時性的要求,因此選取準(zhǔn)確性更高的YOLOv5l網(wǎng)絡(luò)作為工人安全著裝檢測的模型。YOLOv5l對應(yīng)的精確率、召回率、AP(average precision)如表3所示。
表1 檢測種類中英文名Table 1 Information of test type
由表3可知,工人、安全帽、防護服等特征明顯的工人著裝類型檢測效果好,各類評價指標(biāo)均在90%以上。但防護鞋、防護手套和安全面罩這三類特征不明顯的工人著裝類型檢測效果差,AP分別為65.5%、61.6%和71.2%,三者現(xiàn)場情況如圖3所示。由圖3可知安全面罩透明,檢測時受強光影響,而防護手套與防護鞋檢測目標(biāo)小,防護鞋顏色還與地板顏色相近,除此之外三者都易被遮擋,這些原因?qū)е聶z測效果一般。
表2 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)測試結(jié)果Table 2 YOLOv5 network structure test results
表3 YOLOv5l的檢測結(jié)果Table 3 Test results of YOLOv5l
圖3 安全面罩、防護手套與防護鞋現(xiàn)場圖Fig.3 Map of mask, gloves and shoes
為彌補檢測部分對于安全面罩、防護手套、防護鞋等目標(biāo)檢測效果不佳的狀況,通過增加正面和側(cè)面雙攝像頭,以多角度的方式收集更多工人作業(yè)時的著裝信息,再設(shè)計基于時空關(guān)系的推理算法提高工人安全著裝監(jiān)測效果,算法具體流程如圖4所示。
圖4 工人安全著裝推理算法Fig.4 Analysis algorithm of worker protective equipment
首先,通過正面攝像頭拍攝的底吹渣排出口內(nèi)的管道狀態(tài)來判別現(xiàn)場工作狀態(tài),檢修狀態(tài)判斷下一幀,作業(yè)狀態(tài)則結(jié)合側(cè)面攝像頭分析監(jiān)測信息,若正面攝像頭未檢測到管道導(dǎo)致作業(yè)狀態(tài)無法進行判斷,則沿用上一幀判定的管道工作狀態(tài)。
其次,統(tǒng)計監(jiān)測信息中各監(jiān)測目標(biāo)數(shù)量并分析目標(biāo)位置,先歸屬不同工作人員穿戴的安全著裝,再分析每個工人的著裝是否出現(xiàn)違規(guī)?;诎祟惏踩b類別,根據(jù)不同的違規(guī)情況設(shè)置不同的違規(guī)類別,包含未檢測到安全面罩或未正確佩戴安全面罩(安全面罩置于安全帽上方)、未檢測到防護工鞋或防護鞋和未檢到其余五類安全著裝違規(guī)情況,共七種違規(guī)類別。
最后,算法設(shè)定每一類違規(guī)類別的報警初始值,檢測到違規(guī)現(xiàn)象,相應(yīng)違規(guī)類別報警初始值減一,反之加一,報警閾值設(shè)為零,最大為設(shè)定初始值。初始值到達報警閾值且5 min內(nèi)未監(jiān)測到同類型報警時,恢復(fù)初始值并發(fā)送報警指令。每類違規(guī)類別初始值如表4所示。
表4 設(shè)定的報警初始值Table 4 Set alarm initial value
DeepStream框架是NVIDIA設(shè)計的支撐端到端的實時視頻流分析框架,是目前主流的實現(xiàn)深度學(xué)習(xí)的框架之一。通過對比YOLOv5五種網(wǎng)絡(luò)結(jié)構(gòu),選取效果優(yōu)異的YOLOv5l轉(zhuǎn)換為相應(yīng)的引擎文件,部署到DeepStream框架中構(gòu)建工人安全著裝監(jiān)測系統(tǒng)。系統(tǒng)先對兩個攝像頭流入的視頻流進行解碼,再對數(shù)據(jù)批量處理,然后使用TensorRT加速的YOLOv5l工人安全著裝檢測模型對視頻流實時檢測,使用DeepStream框架內(nèi)Nvdsanalytic插件配置感興趣區(qū)域(region of interest,ROI)[15],過濾攝像頭拍攝的非作業(yè)區(qū)域內(nèi)的檢測結(jié)果,最后將過濾后的結(jié)果通過Kafka[16]發(fā)送給工人安全著裝推理算法來判斷是否存在違規(guī)現(xiàn)象,若推理算法判定出現(xiàn)違規(guī),則將錄制命令信息通過Kafka反向傳輸給DeepStream。DeepStream依據(jù)信息中開始、結(jié)束的時間對兩路視頻同時執(zhí)行錄像命令,并將錄像的路徑和文件名保存到日志文件。除此之外,系統(tǒng)將現(xiàn)場監(jiān)測的結(jié)果實時顯示在移動端,方便監(jiān)管人員查看,如圖5所示。
為了及時提醒著裝存在違規(guī)的工人,現(xiàn)場安裝工業(yè)級聲光報警裝置,根據(jù)七種違規(guī)類別提前設(shè)計不同編號的語音報警提示。聲光報警裝置通過RS485通信協(xié)議接收對應(yīng)的報警編號,重復(fù)播報三次提示音并閃爍紅燈。需要注意的是,報警期間不接受其他報警信號。
為方便現(xiàn)場監(jiān)管人員實時查看現(xiàn)場作業(yè)的具體情況,監(jiān)測系統(tǒng)設(shè)計手機移動端,如圖6所示。其中圖6(a)為移動端報警頁面,在報警頁面上顯示報警時間、報警地點、報警類型和兩個攝像頭對同一報警事件錄像的視頻;圖6(b)為移動端查看頁面,顯示銅冶煉作業(yè)現(xiàn)場的實時畫面,且配備一鍵截圖和錄像功能。
圖5 實時監(jiān)控畫面在服務(wù)器端的顯示Fig.5 Display of real-time monitoring screen on the service end
圖6 移動端頁面Fig.6 Mobile page
系統(tǒng)部署以后,連續(xù)7 d監(jiān)測工人作業(yè),發(fā)現(xiàn)存在187次著裝違規(guī),人工復(fù)檢(實際違規(guī))核查出183次著裝違規(guī)。通過對比查證,系統(tǒng)監(jiān)測結(jié)果有9次誤報、5次漏報,如表5所示。誤檢率和漏檢率的計算方法為
誤報次數(shù)/監(jiān)測次數(shù)=誤檢率
漏檢次數(shù)/復(fù)檢次數(shù)=漏檢率
代入表5數(shù)據(jù)得誤檢率為4.8%、漏檢率為2.7%。誤檢原因均為兩攝像頭未檢測到安全面罩報警,如圖7所示,圖7(a)報警原因為安全面罩被其他工人遮擋;圖7(b)報警原因為工人將頭部探入底吹渣排出口內(nèi)導(dǎo)致安全面罩被遮擋。如圖8所示,漏報原因均為工人在作業(yè)區(qū)域內(nèi)將防護手套脫下但仍持在手中,導(dǎo)致系統(tǒng)能夠檢測到防護手套,對該違規(guī)現(xiàn)象未發(fā)送報警指令。
表5 穿戴違規(guī)監(jiān)測結(jié)果Table 5 Monitoring results of wearing violations
圖7 誤報畫面Fig.7 False alarm screen
圖8 漏報畫面Fig.8 Missing report screen
(1)針對銅冶煉作業(yè)中工人著裝不規(guī)范導(dǎo)致的安全生產(chǎn)問題,應(yīng)用深度學(xué)習(xí)YOLOv5l算法對銅冶煉作業(yè)工人著裝情況進行檢測,設(shè)計工人安全著裝推理算法提高工人安全著裝檢測效果,利用DeepStream框架構(gòu)建監(jiān)控系統(tǒng),現(xiàn)場通過安裝聲光報警裝置對違規(guī)現(xiàn)象及時報警、設(shè)計移動端遠程顯示報警詳情。最后,通過誤檢率和漏檢率驗證系統(tǒng)實際部署的有效性。
(2)YOLOv5l訓(xùn)練得到的工人安全著裝監(jiān)測模型對銅冶煉工人安全著裝數(shù)據(jù)集WSD-Data中11類檢測目標(biāo)的mAP@0.5、Precision、Recall、F1-Score、平均單幀檢測時間分別為84.35%、90.8%、94%、85%、13 ms。應(yīng)用工人安全著裝推理算法,構(gòu)建工人安全著裝監(jiān)測系統(tǒng),誤檢率為4.8%、漏檢率為2.7%。
(3)深度學(xué)習(xí)應(yīng)用于工人安全著裝監(jiān)測領(lǐng)域有著廣闊的研究空間及應(yīng)用場景,本文設(shè)計的銅冶煉工人安全著裝監(jiān)測方法,能為此類安全監(jiān)管提供良好的參考價值。