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