江漢大學(xué)人工智能學(xué)院 關(guān)雅琪 侯 群
為了保證建筑工地施工人員的安全,要求佩戴安全帽。目前對安全帽佩戴的監(jiān)督與檢測大多采用深度學(xué)習(xí)的方法訓(xùn)練模型。為了使訓(xùn)練的模型達(dá)到實時檢測的速度和精度需求,本文在進(jìn)行了YOLO系列算法對比試驗后,提出了一種采用改進(jìn)的YOLO v5模型的安全帽佩戴檢測方法,該方法對原始 YOLO v5模型進(jìn)行輸入尺寸、初始候選框的調(diào)整以及損失函數(shù)的改進(jìn),使YOLO v5模型更適用于安全帽佩戴的實時識別。
本文研究的安全帽檢測算法旨在解決施工場地的安全問題,實際情況具有環(huán)境復(fù)雜、人流量大以及天氣多變等問題,并且需要滿足實時檢測的速度和精度要求,傳統(tǒng)的目標(biāo)檢測算法很難做到,目前在ResNet,F(xiàn)aster-RCNN等模型上訓(xùn)練速度更快的網(wǎng)絡(luò)有YOLO系列算法。
YOLO v3借助特征金字塔網(wǎng)絡(luò)(FPN)的多尺度特征融合思想,將3種不同尺度的特征圖融合之后單獨輸出,分別進(jìn)行目標(biāo)檢測,加強算法對小目標(biāo)檢測的精確度。YOLO v3的整體網(wǎng)絡(luò)框架主要包括兩個部分,第一部分為Darkent-53特征提取網(wǎng)絡(luò),第二部分為以Darknet-5為基礎(chǔ)進(jìn)行3次采樣輸出。
YOLO v5的識別模型能夠在保證實時檢測的速度下兼顧較高的精度,按照網(wǎng)絡(luò)深度大小和特征圖寬度大小分為YOLO v5s、YOLO v5m、YOLO v5l、YOLO v5,本文采用了YOLOv5s作為使用模型。YOLO v5的網(wǎng)絡(luò)結(jié)構(gòu)包含四個部分,分別是Input Sector,Backbone Sector,Neck Sector,Prediction Sector。
雖然YOLO v5具有檢測速率快,檢測精度高的優(yōu)點,但是為了使得訓(xùn)練的模型更好的符合實時檢測的需求,需要對原始的YOLO v5進(jìn)行優(yōu)化,不斷調(diào)整超參數(shù)來得到更優(yōu)的模型。
進(jìn)行安全帽佩戴識別時,首先利用YOLO v5自帶的目標(biāo)檢測權(quán)重,對人進(jìn)行定位。使用人臉檢測模塊對輸入的圖像進(jìn)行人臉識別并標(biāo)記,然后使用安全帽佩戴識別模塊對檢測到的人臉區(qū)域裁剪出人臉區(qū)域子圖像,對其以佩戴安全帽和沒有佩戴安全帽為分組依據(jù)進(jìn)行圖像二分類,最后得到是否佩戴安全帽的圖像識別結(jié)果。
YOLO v5訓(xùn)練階段和預(yù)測階段都會使用anchor box:訓(xùn)練階段第一步是進(jìn)行一系列卷積和池化,預(yù)先標(biāo)注好的預(yù)測框需要在feature map層找到,計算這個預(yù)測框與真實框之間的偏差和損失,用anchor box去擬合真實的邊框位置和大小是訓(xùn)練的最終目的。預(yù)測階段需要先在整體圖像上得到多個anchor box,之后再根據(jù)得到的安全帽檢測模型的參數(shù)進(jìn)行anchor box的類別以及偏移量的預(yù)測來得到邊界框的最終預(yù)測值。
anchor box的取值直接影響到目標(biāo)識別的速度和目標(biāo)框位置的精度,因此需要根據(jù)自身數(shù)據(jù)集調(diào)整最優(yōu)的anchor box。本文對訓(xùn)練集中標(biāo)記目標(biāo)框的高度和寬度大小進(jìn)行聚類分析,主要運用的是K-Means聚類算法,根據(jù)YOLO v5模型網(wǎng)絡(luò)結(jié)構(gòu)的特點,找到9個聚類中心的寬高維度作為.config文件中anchor這個參數(shù)的取值,基于開源的安全帽數(shù)據(jù)集Safety-Helmet-Wearing-dataset聚類得出的Best Anchors=[[14.74,27.64],[23.48,46.04],[28.88,130.0],[39.33,148.07],[52.62,186.18],[62.33,279.11],[85.19,237.87],[88.0,360.89],[145.33,514.67]]。
采用GIOU_Loss做Bounding box的損失函數(shù),可以克服IOU無法直接優(yōu)化沒有重疊的部分的問題,在目標(biāo)檢測的后處理過程中,保留一個最優(yōu)的框并抑制那些冗余的框。GIOU的計算表達(dá)式如(1)所示,設(shè)M,N為兩個檢測框,X為最小的封閉形狀,但X包含M,N,計算X沒有包含M,N的面積占x的比值,最后用M,N的IOU減去比值。
GIOU解決了IOU兩框不重合的問題,無論M,N兩個框距離多遠(yuǎn),只是兩框不重合的值越大,GIOU越趨向于-1。GIOU是IOU減去一個值所得到的,這樣避免了兩個框不相交時Loss等于0的情況。GIOU具有可導(dǎo)的屬性,當(dāng)IOU=0時,表達(dá)形式如式(2)所示:
在實驗過程中需要對超參數(shù)進(jìn)行不斷的調(diào)整和黑盒測試已達(dá)到符合當(dāng)前數(shù)據(jù)集的最優(yōu)模型,最終的各項參數(shù)數(shù)據(jù)具體如表1所示。
表1 超參數(shù)配置
優(yōu)化器最終選用了隨機梯度下降法(SGD),其中優(yōu)化器的動量系數(shù)momentum設(shè)定為937×10-3,權(quán)重衰減系數(shù)設(shè)定為5×10-4。
本文做了兩類對比實驗,并利用模型評估方法來客觀評估算法。
對比實驗一:如表2所示,分別利用原始的YOLO v3和YOLO v5深度學(xué)習(xí)算法,訓(xùn)練同一個開源的安全帽數(shù)據(jù)集Safety-Helmet-Wearingdataset,實驗結(jié)果表明,YOLO v5算法訓(xùn)練出來的模型除了體積更小,收斂更快之外,檢測速率、準(zhǔn)確率相比YOLO v3的提升均非常顯著。
表2 YOLO v3和YOLO v5的對比實驗結(jié)果
對比實驗二:如表3所示,分別利用原始YOLO v5和改進(jìn)后的YOLO v5深度學(xué)習(xí)算法,訓(xùn)練同一個開源的安全帽數(shù)據(jù)集Safety-Helmet-Wearing-dataset,實驗結(jié)果表明,增加K-Means聚類改進(jìn)anchor box和選用GIOU_Loss函數(shù)后改進(jìn)的YOLO v5算法訓(xùn)練出來的模型準(zhǔn)確率相比原始的YOLO v5有一定的提升,并且提前了5個epoch收斂,準(zhǔn)確率和mAP分別提升了3.9%和1.6%。
表3 改進(jìn)后和原始的YOLO v5對比實驗結(jié)果
綜上所屬,YOLO v5在安全帽數(shù)據(jù)集上模型表現(xiàn)優(yōu)勢顯著,并且在進(jìn)行調(diào)整和優(yōu)化后改進(jìn)的檢測算法更能滿足安全帽實時檢測的速度和精度要求。
實驗中的測試集圖片的檢測結(jié)果如圖1所示。
圖1 模型測試結(jié)果
從檢測結(jié)果可以看出,該算法對圖像整體特征的提取比較全面,在檢測對象所處的環(huán)境十分復(fù)雜或者運動狀態(tài)下都可以準(zhǔn)確地檢測出來。而且由各個柵格產(chǎn)生的bounding boxes在加權(quán)非極大值抑制的不斷迭代和篩選下,得到了與檢測對象最吻合的檢測框,當(dāng)存在一定的遮擋,圖像清晰度很差和識別對象較多的條件下,算法還能準(zhǔn)確的識別是否佩戴安全帽。本文選擇了準(zhǔn)確性、召回率、平均精度的平均值以及調(diào)和平均值等來作為該模型中的評價指標(biāo)。
用于安全帽佩戴識別的YOLOV5模型在訓(xùn)練50個epoch后,按照上述選定的多項指標(biāo)對訓(xùn)練出的模型進(jìn)行評估,評估結(jié)果如圖2所示。
圖2 模型評估結(jié)果
圖2展示了用于安全帽佩戴識別的YOLOv5模型的各項評估結(jié)果:模型達(dá)到收斂時經(jīng)過了50個epoch,在模型訓(xùn)練過程中,其準(zhǔn)確率和召回率的提升十分穩(wěn)定,模型達(dá)到飽和后,其準(zhǔn)確率(Precision)可穩(wěn)定保持在90%以上,召回率(Recall)可穩(wěn)定保持在90%附近,平均精度均值與調(diào)和均值也保持較高水平。其中mAP指標(biāo)能夠客觀反應(yīng)算法的整體性能,通過試驗,得到了頭、安全帽和總體的mAP值。具體如表4所示。
表4 各項得分
在經(jīng)過訓(xùn)練之后,測試集上的mAP 達(dá)到了 90.1%,說明改進(jìn)的算法在安全帽佩戴檢測上的表現(xiàn)優(yōu)異。同時該模型在實際應(yīng)用中識別速度較快,經(jīng)測試采用GTX 2070顯卡時,識別速度可達(dá)37FPS,基本符合實時檢測的要求。YOLO v5模型體積較小只有14M,因此很容易在一些工業(yè)計算機中落地應(yīng)用,能實時監(jiān)督生產(chǎn)作業(yè)區(qū)域的工人是否佩戴安全帽。
本文提出了一種優(yōu)化的YOLO v5模型的安全帽佩戴檢測算法。通過對比不同算法,改進(jìn)anchor box、損失函數(shù),調(diào)整網(wǎng)絡(luò)架構(gòu)參數(shù)及優(yōu)化器等方法得到改進(jìn)的YOLO v5網(wǎng)絡(luò),檢測速度和精度足以應(yīng)用到安全帽實時檢測系統(tǒng)當(dāng)中。實驗表明算法具有較好的穩(wěn)定性和可靠性。