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