李浩宇,楊超宇
(安徽理工大學(xué) 經(jīng)濟(jì)與管理學(xué)院,安徽 淮南 232000)
煤礦井下工作環(huán)境復(fù)雜且存在大量煤炭粉塵,井下工作人員長(zhǎng)期吸入煤炭粉塵會(huì)對(duì)身體健康造成巨大危害,因此佩戴防塵口罩是非常必要的.但因?yàn)榈V井下高溫的原因,一些煤礦員工經(jīng)常不佩戴防塵口罩,此種行為違反了煤礦安全規(guī)章.人工24小時(shí)監(jiān)視違規(guī)行為并不現(xiàn)實(shí),因此需要將深度學(xué)習(xí)技術(shù)與視頻監(jiān)控相結(jié)合,對(duì)違章行為進(jìn)行實(shí)時(shí)檢測(cè).一些學(xué)者對(duì)口罩佩戴檢測(cè)做出了研究,丁洪偉等[1]將改進(jìn)的空間金字塔赤化結(jié)構(gòu)引入YOLOV3中,并對(duì)DarkNet53骨干網(wǎng)絡(luò)進(jìn)行改進(jìn),對(duì)口罩的檢測(cè)速度為39FPS,檢測(cè)精度精度為90.2%.秦亞亭等[2]針對(duì)目前幾種主要的輕量級(jí)檢測(cè)模型:Pyram模型、基于SSD算法的Keras模型和基于CenterFace的口罩檢測(cè)模型,在不同數(shù)據(jù)集下做綜合測(cè)試,最后分析了各種方法的優(yōu)劣以及口罩檢測(cè)技術(shù)的優(yōu)化方案.從目前的研究成果來(lái)看,口罩檢測(cè)效率不能達(dá)到實(shí)際應(yīng)用需求.因此,本文提出一種基于YOLOV5算法的煤礦防塵口罩檢測(cè)方法[3],最終實(shí)現(xiàn)了對(duì)防塵口罩的精確檢測(cè).
YOLOV5目標(biāo)檢測(cè)模型是基于Pytorch實(shí)現(xiàn)的[4],由Ultralytics在2020年6月25日正式發(fā)布的,是現(xiàn)今最先進(jìn)的對(duì)象檢測(cè)技術(shù)[5],并在推理速度上是目前最快的.YOLOV5官方代碼中,給出的權(quán)重文件一共有四個(gè)版本,分別是YOLOV5S、YOLOV5M、YOLOV5L、YOLOV5X,其中YOLOV5S是深度最小[6],特征圖寬度最小的權(quán)重,后面三種權(quán)重在此基礎(chǔ)上深度不斷加深,特征圖寬度不斷加寬.本文使用YOLOV5S權(quán)重后的檢測(cè)速度最快可達(dá)0.012 s[7].YOLOV5采用GIOU_LOSS做Bounding Box的損失函數(shù),GIOU_Loss計(jì)算公式如下,出現(xiàn)眾多目標(biāo)框的篩選采用NMS加權(quán)方式獲得最優(yōu)目標(biāo)框.
(1)
YOLOV5模型使用Sigmoid函數(shù)為網(wǎng)絡(luò)激活函數(shù),使用LeakyReLU函數(shù)處理深度學(xué)習(xí)中網(wǎng)絡(luò)階梯消失的問(wèn)題.[8]Sigmoid函數(shù)及LeakyReLU函數(shù)公式如下:
(2)
F(x)=max(0.1x,x)
(3)
本文的目標(biāo)檢測(cè)流程如圖1所示,通過(guò)煤礦井下工作面監(jiān)控?cái)z像頭獲取視頻流.使用OpenCV對(duì)視頻進(jìn)行單幀提取,建立數(shù)據(jù)集后進(jìn)行預(yù)處理,并利用K-means算法自適應(yīng)優(yōu)化anchor box,利用YOLOV5算法的網(wǎng)格法分割圖像,分別輸出特征圖.學(xué)習(xí)圖像中防塵口罩深層語(yǔ)義信息及淺層位置信息,利用特征尺度融合后實(shí)現(xiàn)對(duì)防塵口罩的精確實(shí)時(shí)檢測(cè)[9],最后輸出實(shí)驗(yàn)結(jié)果.
圖1 算法工作流程圖
(1)數(shù)據(jù)集建立
本文的數(shù)據(jù)集通過(guò)淮南某煤礦井下攝像頭獲取,包括不同工作環(huán)境、不同光照等多種情況下的視頻.分析數(shù)據(jù)特點(diǎn)后從視頻流中截取3 000張圖片作為訓(xùn)練數(shù)據(jù)集,其中2 000張圖片作為訓(xùn)練集,500張圖片作為測(cè)試集,500張圖片作為驗(yàn)證集并將數(shù)據(jù)集標(biāo)注為mask和none兩類,圖片標(biāo)注軟件使用labelImg.YOLOV5算法的下采樣為32倍,因此輸入圖片的寬高要能被32整除.在多尺度訓(xùn)練中一般最小尺寸為320×320,最大為640×640,在模型訓(xùn)練之前將數(shù)據(jù)集尺寸調(diào)整為640×640,對(duì)小目標(biāo)物體檢測(cè)的準(zhǔn)確性可提升2%.最后可通過(guò)修改datasets.py文件中的letterbox函數(shù),使YOLOV5模型可適應(yīng)圖片的縮放,較好地處理了因圖像縮放后兩端產(chǎn)生的黑邊過(guò)多而導(dǎo)致信息冗雜等問(wèn)題.[10]
(2)預(yù)處理數(shù)據(jù)
在實(shí)際的應(yīng)用場(chǎng)景下,采集的數(shù)據(jù)集并不能完全滿足模型訓(xùn)練的需求,重新獲取更多的數(shù)據(jù)則會(huì)增加成本和工作量.為解決這一問(wèn)題,本文在模型訓(xùn)練之前進(jìn)行數(shù)據(jù)預(yù)處理,包括標(biāo)簽平滑處理和數(shù)據(jù)增強(qiáng)兩部分.[11]
標(biāo)簽平滑處理的本質(zhì)是正則化處理,通過(guò)減少過(guò)擬合訓(xùn)練提升分類器性能,從而使得訓(xùn)練模型對(duì)數(shù)據(jù)集的預(yù)測(cè)概率更加接近真實(shí)情況.數(shù)據(jù)增強(qiáng)的主要目標(biāo)是通過(guò)增加訓(xùn)練基礎(chǔ)數(shù)據(jù)和噪聲來(lái)提高模型的泛化能力和魯棒性.數(shù)據(jù)增強(qiáng)方法包括:圖像縮放、圖像裁剪、圖像平移、數(shù)據(jù)旋轉(zhuǎn)、數(shù)據(jù)翻轉(zhuǎn)、覆蓋噪聲、修改對(duì)比度等.原始數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)增強(qiáng)拓展后可獲得大量新的數(shù)據(jù)集,可有效提升目標(biāo)檢測(cè)效果.本文提出一種馬賽克拼接法,即截取多個(gè)圖像的可有效檢測(cè)部分合并成一張新的待檢測(cè)圖像,這種方法能夠有效降低微小或大量擾動(dòng)數(shù)據(jù)對(duì)目標(biāo)檢測(cè)精度的影響.
YOLOV5算法將輸入的圖像分成若干網(wǎng)格,檢測(cè)目標(biāo)中心區(qū)域處于某個(gè)網(wǎng)格中,此網(wǎng)格就負(fù)責(zé)預(yù)測(cè)這個(gè)目標(biāo),如圖2所示.
圖2 目標(biāo)預(yù)測(cè)示意圖
在實(shí)際目標(biāo)識(shí)別環(huán)境中,目標(biāo)實(shí)際尺寸和默認(rèn)anchor box尺寸存在差異,如果使用默認(rèn)anchor box尺寸可能會(huì)導(dǎo)致?lián)p失函數(shù)下降方向發(fā)生偏離.使用K-means聚類算法可有效解決上述問(wèn)題,K-means聚類算法的流程如下:
(1)防塵口罩的數(shù)據(jù)集像素大小為n,設(shè)置迭代的次數(shù)為m,聚類個(gè)數(shù)為K,并會(huì)隨機(jī)產(chǎn)生K個(gè)初始聚類中心Cj(r).YOLOV5網(wǎng)絡(luò)對(duì)每個(gè)網(wǎng)格的預(yù)測(cè)需要9個(gè)先驗(yàn)框,因此K=9.
(2)計(jì)算數(shù)據(jù)集樣本與初始聚類中心Cj(r)相似度D(Xi,Cj(r)),進(jìn)而形成空間簇Wj,如果(4)成立,則存在Xi∈Wj,本文閥值設(shè)置為0.005,即ε=0.005.
(4)
(3)根據(jù)K得到新的聚類中心,計(jì)算公式如下:
(5)
(4)中心簇的收斂情況如下:
(6)
(5)判斷聚類是否可達(dá)到最小收斂條件:
|E(r+1)-E(r)|<0.005
(7)
(5)最小收斂條件成立時(shí)停止迭代,否則重新返回步驟(2)重新進(jìn)行迭代,輸出防塵口罩分割圖.
最后經(jīng)計(jì)算得到適合防塵口罩檢測(cè)的先驗(yàn)框的尺寸如下:22×27,59×86,76×70,100×110,108×127,111×98,113×94,229×207,231×205.
本文的實(shí)驗(yàn)平臺(tái)為L(zhǎng)inux,采用的深度學(xué)習(xí)框架為Tensorflow19.0,OpenCV版本為3.3.0,使用NVIDIA GeForce RTX 2060顯卡進(jìn)行運(yùn)算,并使用Cuda10.0對(duì)訓(xùn)練過(guò)程進(jìn)行加速.在模型訓(xùn)練階段,網(wǎng)絡(luò)參數(shù)配置設(shè)置如下:epochs設(shè)置為100,batch-size設(shè)置為16,初始學(xué)習(xí)率為0.02,權(quán)重衰減設(shè)為0.000 5,動(dòng)量設(shè)為0.95.
模型訓(xùn)練結(jié)束后目標(biāo)識(shí)別結(jié)果如圖3所示.從識(shí)別結(jié)果可以看出,本文算法對(duì)單目標(biāo)和多目標(biāo)檢測(cè)都能獲得不錯(cuò)的效果[12],并準(zhǔn)確地區(qū)分出有無(wú)口罩佩戴的情況.
圖3 檢測(cè)結(jié)果
利用mAP評(píng)估本文算法檢測(cè)準(zhǔn)確度,因本文的檢測(cè)目標(biāo)只有防塵口罩一類物體,所以在數(shù)值上mAP等于AP,AP的計(jì)算公式如式(8)所示,即算法對(duì)每張圖片各類別檢測(cè)的準(zhǔn)確率(Accuracy)求和后除以該圖片中各類別檢測(cè)目標(biāo)和N.模型訓(xùn)練結(jié)束后使用Tensorboard可視化工具查看訓(xùn)練過(guò)程中損失函數(shù)收斂曲線、mAP曲線、recall曲線,如圖4所示.
圖4 模型性能評(píng)估
(8)
將本文算法與其他算法進(jìn)行對(duì)比,結(jié)果如表1所示,從對(duì)比結(jié)果可以看出本文算法的檢測(cè)準(zhǔn)確率為92.5%.檢測(cè)精度高于其他算法的同時(shí),得益于YOLOV5S較小的權(quán)重?cái)?shù)據(jù),使得檢測(cè)速度有大幅度提升,能夠滿足實(shí)際應(yīng)用需求.
表1 不同網(wǎng)絡(luò)模型的檢測(cè)效果對(duì)比
本文提出一種基于YOLO算法的煤礦井下員工防塵口罩佩戴實(shí)時(shí)檢測(cè)方法,加強(qiáng)了算法對(duì)不同尺寸防塵口罩的識(shí)別能力.從實(shí)驗(yàn)結(jié)果可以看出對(duì)防塵口罩具有很好的識(shí)別效果,且算法檢測(cè)速度較快,能夠滿足實(shí)際應(yīng)用需求.另一方面,本文的研究也存在著不足,存在人員或者物體遮擋面部的情況時(shí),對(duì)防塵口罩的識(shí)別較為困難.未來(lái)將對(duì)算法進(jìn)一步改進(jìn)使其更加適用于實(shí)際應(yīng)用場(chǎng)景.