孫世丹,鄭佳春,趙世佳,黃一琦
(1.集美大學(xué)海洋信息工程學(xué)院,福建 廈門(mén) 361021;2.集美大學(xué)航海學(xué)院,福建 廈門(mén) 361021)
新冠肺炎疫情,讓人們認(rèn)識(shí)到佩戴口罩的重要性;而在工地、危險(xiǎn)區(qū)域進(jìn)行作業(yè)活動(dòng),佩戴安全帽是安全規(guī)范要求。因此,為了確保安全,同時(shí)檢測(cè)安全帽和口罩佩戴的問(wèn)題應(yīng)運(yùn)而生。目前,針對(duì)口罩佩戴的檢測(cè)主要采用人臉檢測(cè)算法,例如,牛作東[1]等采用改進(jìn)retinaface算法,通過(guò)人臉關(guān)鍵的三位分析,提高了口罩佩戴的檢測(cè)速度。由于復(fù)雜場(chǎng)景中目標(biāo)遮擋、人群密集、小尺度等問(wèn)題,造成使用目標(biāo)檢測(cè)算法檢測(cè)是否佩戴口罩的效果并不理想。對(duì)安全帽佩戴的檢測(cè)研究主要采用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)模型,通過(guò)訓(xùn)練和優(yōu)化各種深度學(xué)習(xí)模型算法[2-4]來(lái)實(shí)現(xiàn)圖像特征提取,獲得安全帽的顏色、形狀及佩戴是否正確等信息。
Girshick等提出的區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)[5]、快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast R-CNN)[6]和超快區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster R-CNN)[7]大大提高了檢測(cè)速度;Liu等[8]提出的端到端多尺度檢測(cè)算法SSD(Single ShotMultiBox Detector),在檢測(cè)精度和檢測(cè)時(shí)間上取得了良好的效果;Redmon等[9-11]提出了YOLOv1、v2、v3檢測(cè)算法。YOLOv3由于融合了不同的特征尺度,可進(jìn)行分別檢測(cè),加上在檢測(cè)效率、精確性的優(yōu)勢(shì),在工程應(yīng)用上更適合用于多種不同小目標(biāo)的同時(shí)檢測(cè)[12-13]。YOLOv3是在YOLOv2算法基礎(chǔ)上進(jìn)行一系列改進(jìn)而成的:YOLOv3采用Darknet-53網(wǎng)絡(luò)進(jìn)行特征提取,利用一系列的卷積和上采樣對(duì)提取的特征進(jìn)行解析并標(biāo)記輸出;加入了FPN網(wǎng)絡(luò)[14]中的多尺度網(wǎng)絡(luò)架構(gòu),融合了不同尺度的特征圖以提高預(yù)測(cè)效果;通過(guò)K-means[15]對(duì)數(shù)據(jù)集標(biāo)簽進(jìn)行聚類(lèi)分析得到默認(rèn)框的尺寸;將ResNET[16]架構(gòu)融合進(jìn)Darknet-19中改變其網(wǎng)絡(luò)的背景架構(gòu);采取平均交并比作為度量標(biāo)簽相似性的指標(biāo);每一個(gè)卷積層后都會(huì)有批量歸一化操作[17]和去除dropout操作,防止出現(xiàn)過(guò)擬合現(xiàn)象;使用全卷積結(jié)構(gòu),在每個(gè)比例尺上,輸出層后都會(huì)跟隨著3×3和1×1的卷積層,以簡(jiǎn)化損失函數(shù)的計(jì)算,提高檢測(cè)速度;采用上采樣和融合做法將三個(gè)不同尺度的特征圖融合然后對(duì)目標(biāo)進(jìn)行檢測(cè),提高算法對(duì)小目標(biāo)檢測(cè)的精確度。
綜上所述,YOLOv3是適合用于安全帽、口罩等尺寸中偏小物體的檢測(cè)與識(shí)別的,但是,還需要進(jìn)一步優(yōu)化。因而,針對(duì)安全帽、口罩佩戴的同時(shí)檢測(cè)問(wèn)題以及實(shí)際情況,本文提出一種以YOLOv3算法為基礎(chǔ),以YOLO算法為one-stage網(wǎng)絡(luò)架構(gòu)的目標(biāo)檢測(cè)算法。由于其不需要先檢測(cè)待測(cè)物體的位置而是直接進(jìn)行特征檢測(cè),大大提高了檢測(cè)速度。
為了提升安全帽、口罩佩戴的同時(shí)檢測(cè)性能,本文對(duì)YOLOv3算法做了聚類(lèi)算法優(yōu)化和Darknet特征網(wǎng)絡(luò)層優(yōu)化。
YOLOv3運(yùn)用K-means聚類(lèi)算法[15]對(duì)輸入端的數(shù)據(jù)集進(jìn)行處理,以達(dá)到優(yōu)化網(wǎng)絡(luò)內(nèi)部初始瞄框選取的目的。對(duì)數(shù)據(jù)集通過(guò)目標(biāo)框的大小進(jìn)行分類(lèi),得到9個(gè)先驗(yàn)框的大小。而先驗(yàn)框的大小與其尺度有關(guān),尺度越大時(shí)得到的先驗(yàn)框越小,因而可以以此來(lái)獲得更細(xì)致的目標(biāo)邊緣信息。聚類(lèi)算法本質(zhì)是計(jì)算每個(gè)樣本點(diǎn)簇中心的距離。選取距離各點(diǎn)的均值最小的點(diǎn)作為新的點(diǎn)簇中心,之后依照新的點(diǎn)簇中心作為判斷依據(jù),將各點(diǎn)分配到距離最近的點(diǎn)簇中的一類(lèi),依次迭代循環(huán)直到點(diǎn)簇中心穩(wěn)定收斂,收斂結(jié)果即是最后的聚類(lèi)效果。核方法(kernel methods)[18]則是將輸入空間映射到高維的特征空間上來(lái)劃分類(lèi)別。將二維平面中的樣本特征映射到高維的特征空間,使得在平面上無(wú)法分類(lèi)或無(wú)法正確分類(lèi)的特征變得線性可分,以此來(lái)區(qū)分不同類(lèi)別的樣本中心,等分類(lèi)完成后映射回二維平面上。加權(quán)核K-means算法則是在核函數(shù)的基礎(chǔ)上對(duì)不同占比的類(lèi)別進(jìn)行權(quán)重的分配,選取更加合適的瞄框。
YOLOv3通常將公開(kāi)數(shù)據(jù)集coco所訓(xùn)練得到的瞄框的尺寸作為默認(rèn)框,其大小為(10,13),(16,30),(33,23),(30,61),(62,45),(59,119),(116,90),(156,198),(373,326)。在實(shí)際的安全帽、口罩佩戴的檢測(cè)中,由于安全帽的目標(biāo)尺寸與coco數(shù)據(jù)集的差異較大,使用YOLOv3默認(rèn)框的檢驗(yàn)效果并不好。而使用改進(jìn)的聚類(lèi)算法對(duì)自制安全帽數(shù)據(jù)集進(jìn)行分析后,得到了9組先驗(yàn)框的大?。?5,7),(10,13),(12,15),(18,23),(24,30),(33,50),(57,72),(113,127),(221,201),再按照先驗(yàn)框的尺度分配規(guī)律分別分配給3個(gè)尺度的特征圖。經(jīng)實(shí)驗(yàn)驗(yàn)證,優(yōu)化后的K-means算法的檢測(cè)效果提升明顯。
YOLOv3將Darknet53作為骨架網(wǎng)絡(luò)對(duì)輸入圖片進(jìn)行特征提取,提取后的特征圖經(jīng)過(guò)一系列的解析操作得到最后的多尺度輸出。其借鑒了FPN網(wǎng)絡(luò)中多尺度預(yù)測(cè)的方法來(lái)提高檢測(cè)結(jié)果。輸入目標(biāo)在 Darknet53網(wǎng)絡(luò)中經(jīng)過(guò)5次降采樣,分別以8倍、16倍、32倍的降采樣結(jié)果傳輸,再經(jīng)過(guò)上采樣和張量拼接出的特征圖最終被輸出檢測(cè)。這樣的網(wǎng)絡(luò)對(duì)于小目標(biāo)的檢測(cè)能力是不足的,當(dāng)檢測(cè)目標(biāo)小于8×8像素時(shí),特征網(wǎng)絡(luò)將會(huì)很難檢測(cè)出來(lái)。為了提高網(wǎng)絡(luò)對(duì)于頭盔、口罩這類(lèi)小目標(biāo)物體的檢測(cè)率,將4倍降采樣的特征信息進(jìn)行一次上采樣,之后與上一層的2倍下采樣信息進(jìn)行特征融合,得到融合后的2倍下采樣融合圖作為52×52的尺度特征圖檢測(cè),融合圖與之后的降采樣信息進(jìn)行卷積,將融合之后的4倍、8倍、16倍降采樣一同輸送到后續(xù)網(wǎng)絡(luò)中,以提高小目標(biāo)的檢測(cè)特征,進(jìn)而增大小目標(biāo)特征的占比,最終增加小目標(biāo)的檢測(cè)率。
由于缺少公開(kāi)的安全帽和口罩佩戴的數(shù)據(jù)集,研究團(tuán)隊(duì)通過(guò)整合各種資源,自建一份安全帽和口罩佩戴的數(shù)據(jù)集,共10664張圖。其中:戴有安全帽的圖4604張,主要為施工工地工人佩戴環(huán)境;戴有口罩的圖2023張,主要為口罩佩戴展示及公共場(chǎng)所行人佩戴環(huán)境;同時(shí)戴有安全帽和口罩的對(duì)比圖2782張,主要為疫情期間工人佩戴;未佩戴兩者的對(duì)比圖1255張。采用平均準(zhǔn)確率(mean average precision,mAP) 作為評(píng)價(jià)指標(biāo),與原網(wǎng)絡(luò)進(jìn)行比較實(shí)驗(yàn)。
本實(shí)驗(yàn)環(huán)境配置在UBUNTU18.04操作系統(tǒng)、TITAN RTX2080GPU、CUDA10.1、CUDNN、128GB內(nèi)存平臺(tái)上,采用pytorch1.2.0框架進(jìn)行訓(xùn)練。為了驗(yàn)證算法的有效性,本研究進(jìn)行了以下三種不同情況的實(shí)驗(yàn)。
1)實(shí)驗(yàn)一 單檢測(cè)安全帽佩戴的實(shí)驗(yàn)。以建筑工地為實(shí)驗(yàn)場(chǎng)景,用安全帽佩戴數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)訓(xùn)練和檢測(cè)實(shí)驗(yàn)。每批次隨機(jī)選取8張圖,初始學(xué)習(xí)率為5×10-4,且逐步遞減, IOU 置為0.5。采用反向傳播對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)。將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集分別進(jìn)行評(píng)估。共100個(gè)epoch 對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。
2)實(shí)驗(yàn)二 單檢測(cè)口罩佩戴的實(shí)驗(yàn)。以各大公共區(qū)域?yàn)閷?shí)驗(yàn)場(chǎng)景,每批次隨機(jī)選取8張圖,初始學(xué)習(xí)率為5×10-4,且逐步遞減, IOU 置為0.5。采用反向傳播對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)。將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集分別進(jìn)行評(píng)估。共100個(gè)epoch對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。
3)實(shí)驗(yàn)三 同時(shí)檢測(cè)安全帽和口罩佩戴的實(shí)驗(yàn)。在安全帽佩戴數(shù)據(jù)集和口罩佩戴數(shù)據(jù)集上添加工地上同時(shí)戴有安全帽和口罩的圖2782張,進(jìn)行網(wǎng)絡(luò)訓(xùn)練,同時(shí)檢測(cè)安全帽和口罩的佩戴情況。訓(xùn)練批大小選取64張圖,驗(yàn)證批大小選取2張圖,初始學(xué)習(xí)率為1×10-4,且逐步遞減,但不小于1×10-6, IOU 置為0.5。采用反向傳播對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)。將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集分別進(jìn)行評(píng)估。前20個(gè)epoch先對(duì)最后一層網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,后30個(gè)epoch對(duì)整個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)進(jìn)行調(diào)整。
本研究針對(duì)兩大類(lèi)目標(biāo)進(jìn)行檢測(cè),為區(qū)分優(yōu)化前后對(duì)比效果,分別將單戴有口罩或安全帽的圖進(jìn)行了優(yōu)化前后的檢測(cè)對(duì)比,以及同時(shí)戴有安全帽和口罩的圖進(jìn)行優(yōu)化前后的檢測(cè)對(duì)比。為評(píng)估改進(jìn)后的算法模型的性能,將各檢測(cè)結(jié)果的準(zhǔn)確率、平均準(zhǔn)確率(mAP)作為模型性能的評(píng)估指標(biāo),并與YOLOv3算法進(jìn)行對(duì)比。
2.3.1實(shí)驗(yàn)一結(jié)果分析
圖1展示了工地上建筑工人戴有安全帽的圖優(yōu)化前后的對(duì)比效果,改進(jìn)后安全帽佩戴的單檢測(cè)效果明顯高于原YOLOv3算法。算法優(yōu)化前戴有安全帽的圖的檢測(cè)準(zhǔn)確率為87.4%,未戴安全帽的圖的檢測(cè)準(zhǔn)確率為84.5%,平均準(zhǔn)確率為85.9%;優(yōu)化后分別為97.6%,89.3%,93.5%。改進(jìn)后的YOLOv3對(duì)單檢測(cè)安全帽佩戴的平均準(zhǔn)確率提高了7.6%。
2.3.2實(shí)驗(yàn)二結(jié)果分析
圖2展示了車(chē)站場(chǎng)景下戴有口罩的圖優(yōu)化前后的對(duì)比效果。算法優(yōu)化前戴有口罩的圖的檢測(cè)準(zhǔn)確率為82.4%,未佩戴口罩的圖的檢測(cè)準(zhǔn)確率為80.2%,平均準(zhǔn)確率為81.3%;優(yōu)化后分別為93.6%,87.0%,90.3%。改進(jìn)后的YOLOv3對(duì)單檢測(cè)口罩佩戴的平均準(zhǔn)確率提高了9%。
2.3.3實(shí)驗(yàn)三結(jié)果分析
圖3顯示出多人同時(shí)佩戴安全帽和口罩場(chǎng)景下的實(shí)驗(yàn)效果。為了方便查看,這里省去了口罩檢測(cè)的準(zhǔn)確率,只標(biāo)識(shí)出了預(yù)測(cè)框??梢钥闯?,用本算法優(yōu)化后同時(shí)檢測(cè)安全帽和口罩佩戴的準(zhǔn)確率均有所提高。
由表1可見(jiàn),同時(shí)檢測(cè)安全帽和口罩佩戴的準(zhǔn)確率,改進(jìn)后的算法相較于原算法均提升了15.3%,而平均準(zhǔn)確率則提高了11.3%。而相對(duì)于SSD算法,改進(jìn)后的YOLO算法對(duì)于同時(shí)檢測(cè)安全帽和口罩佩戴的準(zhǔn)確率更高,速度也相比于SSD算法快了5f·s-1。
表1 YOLOv3優(yōu)化前后檢測(cè)準(zhǔn)確度
本文研究了基于YOLO同時(shí)檢測(cè)安全帽和口罩佩戴的算法改進(jìn)。該算法通過(guò)優(yōu)化K-means聚類(lèi)算法來(lái)選取更合適的瞄框以適應(yīng)數(shù)據(jù)集,優(yōu)化Darknet網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)以及一些網(wǎng)絡(luò)微調(diào),多次提取小目標(biāo)的特征來(lái)增強(qiáng)其特征提取的效果。實(shí)驗(yàn)分析結(jié)果表明:通過(guò)優(yōu)化后該算法能夠滿(mǎn)足在實(shí)際場(chǎng)景中安全帽、口罩佩戴的同時(shí)檢測(cè)需求,可以應(yīng)用于智慧工地、港口碼頭、?;V區(qū)等安全監(jiān)管,具有一定的應(yīng)用與市場(chǎng)價(jià)值。接下來(lái),會(huì)將算法移植到實(shí)際系統(tǒng)中實(shí)驗(yàn)應(yīng)用并開(kāi)展算法升級(jí)研究,以進(jìn)一步提升佩戴安全帽和口罩的檢測(cè)性能。