王向前,史 策
(安徽理工大學(xué),安徽 淮南 232001)
安全帽是在物體打擊發(fā)生時(shí)用來減輕或避免沖擊對(duì)頭部造成傷害的防護(hù)用具,是從事建筑、采礦等危險(xiǎn)行業(yè)一線施工人員的重要安全保障。但是由于部分施工人員缺乏安全意識(shí),因不佩戴安全帽而導(dǎo)致的安全事故時(shí)有發(fā)生。目前許多行業(yè)仍然采用人工監(jiān)督檢查的方式對(duì)施工人員佩戴安全帽的情況進(jìn)行監(jiān)管,耗費(fèi)大量的人力成本與時(shí)間成本。因此基于深度學(xué)習(xí)的安全帽佩戴檢測(cè)具有重要的現(xiàn)實(shí)需求。
YOLOV5算法包括YOLOV5n、YOLOV5s、YOLOV5m、YOLOV5l、YOLOV5x五個(gè)網(wǎng)絡(luò)模型,本文選用YOLOV5s網(wǎng)絡(luò)模型進(jìn)行安全帽佩戴檢測(cè)。YOLOV5s由輸入端、主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、檢測(cè)端4個(gè)部分組成。輸入端包括馬賽克數(shù)據(jù)增強(qiáng)、自適應(yīng)圖片縮放和自適應(yīng)錨框計(jì)算。主干網(wǎng)絡(luò)用來提取圖片的特征,采用CSPDarkNet35網(wǎng)絡(luò),主要由C3模塊、CSP模塊和SPPF模塊構(gòu)成。頸部網(wǎng)絡(luò)由FPN和PAN的模塊組合對(duì)骨干網(wǎng)絡(luò)提取的特征進(jìn)行融合。輸出端利用頸部網(wǎng)絡(luò)傳來的3種尺度不同的特征圖對(duì)不同大小的目標(biāo)進(jìn)行檢測(cè)。
2021年中山大學(xué)提出一種無參數(shù)注意力SimAM[1]如圖1所示。現(xiàn)有的通道注意力和空間注意力往往采用額外的子網(wǎng)絡(luò)生成注意力權(quán)重,而SimAM注意力認(rèn)為信息豐富的神經(jīng)元與普通神經(jīng)元具有不同的放電模式,并且重要的神經(jīng)元會(huì)對(duì)周圍普通的神經(jīng)元產(chǎn)生空域抑制現(xiàn)象。SimAM注意力通過度量神經(jīng)元之間的線性可分性尋找更重要的神經(jīng)元并給予它額外的權(quán)重。
圖1 SimAM注意力
SimAM注意力定義了一個(gè)能量函數(shù),公式如下:
(1)
(2)
解析公式2得到:
(3)
(4)
(5)
安全帽不僅有多種顏色,成像尺寸也有差異。為了更好的融合特征,引入雙向特征金字塔網(wǎng)絡(luò)(Bidirectional Feature Pyramid Network,Bi-FPN)[2]。Bi-FPN網(wǎng)絡(luò)對(duì)YOLOV5s原有的FPN+PAN[3]網(wǎng)絡(luò)進(jìn)行簡(jiǎn)化,刪去只有一個(gè)輸入和一個(gè)輸出的節(jié)點(diǎn)。同時(shí)對(duì)于處于同一層的輸入和輸出節(jié)點(diǎn),在兩個(gè)節(jié)點(diǎn)之間添加一條直接相連的通道,在不增加計(jì)算量的前提下可以融合更多的特征。Bi-FPN中一對(duì)自底向上和自頂向下的路徑視為一個(gè)模塊,可以重復(fù)疊加融合更高層次的特征,Bi-FPN網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 Bi-FPN網(wǎng)絡(luò)結(jié)構(gòu)
在安全帽檢測(cè)場(chǎng)景中,攝像頭往往距離安全帽比較遠(yuǎn),導(dǎo)致安全帽目標(biāo)的成像較小。為了提高YOLOV5s對(duì)小目標(biāo)安全帽的檢測(cè)能力,本文在YOLOV5s原有的3個(gè)檢測(cè)層的基礎(chǔ)上增加一個(gè)額外的小目標(biāo)檢測(cè)層。首先在21層之后,增加一個(gè)CBS模塊提取特征,同時(shí)將通道數(shù)由512降為256。接著繼續(xù)對(duì)特征圖進(jìn)行上采樣處理,擴(kuò)大特征圖尺寸為160×160,在23層和主干網(wǎng)絡(luò)傳入的第2層的特征圖進(jìn)行拼接操作,最后經(jīng)過24層的C3模塊實(shí)現(xiàn)小目標(biāo)檢測(cè)層的搭建,整體改進(jìn)后的YOLOV5s網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)后的YOLOV5s網(wǎng)絡(luò)結(jié)構(gòu)
在檢測(cè)安全帽任務(wù)時(shí),經(jīng)常出現(xiàn)由于工人密集導(dǎo)致安全帽目標(biāo)存在遮擋的情況,為了解決這個(gè)問題,本文采用DIOU-NMS代替原有的NMS算法。DIOU-NMS借鑒了DIOU損失函數(shù)[4]的思想,具體公式為:
(6)
式中:M代表預(yù)測(cè)分?jǐn)?shù)最高的預(yù)測(cè)框,Bi代表其他預(yù)測(cè)框,Si代表分類得分,ε代表NMS閾值大小,RDIOU代表兩個(gè)框之間的距離,RDIOU公式如所示:
(7)
式中:ρ2(b,bgt)為預(yù)測(cè)框和檢測(cè)框之間的中心點(diǎn)距離,b是預(yù)測(cè)框中心點(diǎn),bgt為真實(shí)框中心點(diǎn),c為兩個(gè)框之間最小外接矩形對(duì)角線距離。
本文選用開源的安全帽數(shù)據(jù)集GDUT-HWD,該數(shù)據(jù)集包括3174張不同場(chǎng)景、天氣、光照、人物等變化的數(shù)據(jù)照片,包含五類樣本,分別是None、Red、Blue、Yellow、White。本文將數(shù)據(jù)集按照9∶1的比例隨機(jī)劃分為訓(xùn)練集和測(cè)試集。
本文實(shí)驗(yàn)采用ubuntu20.04操作系統(tǒng),內(nèi)存30GB,GPU為RTXA4000,顯存16GB;深度學(xué)習(xí)框架為PyTorch1.10.0;Cuda版本為11.3,Python版本為3.8。YOLOV5s訓(xùn)練學(xué)習(xí)率采用Warmup訓(xùn)練,通過余弦退火算法對(duì)學(xué)習(xí)率進(jìn)行更新,epoch設(shè)置為200,batch size設(shè)置為16。
本實(shí)驗(yàn)采用精確率(Precision,P)、平均精度均值(mean average precision,mAP)來評(píng)價(jià)YOLOV5s對(duì)安全帽的檢測(cè)性能,其中精確率P、平均精度均值mAP的公式分別為:
(8)
(9)
(10)
式中:TP是指正確檢測(cè)到安全帽的檢測(cè)框數(shù)量;FP是指誤檢為安全帽的檢測(cè)框數(shù)量;NC為類別總數(shù)。
3.3.1 消融實(shí)驗(yàn)
為了分析不同改進(jìn)對(duì)整個(gè)YOLOV5s模型性能的影響,以YOLOV5s為基礎(chǔ)模型對(duì)所提出的改進(jìn)算法進(jìn)行消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1所示。字母A~D分別表示加入SimAM注意力、增加小目標(biāo)檢測(cè)層、引入Bi-FPN網(wǎng)絡(luò)、引入DIOU-NMS。從表中可以看出,本文提出的4種改進(jìn)相比較原始YOLOV5s算法都有不同程度的提升,4種改進(jìn)共同加入YOLOV5s后,精確率P提升了4.1%、平均精度均值mAP提升了4.5%,說明本文提出的算法能夠更好的檢測(cè)現(xiàn)實(shí)場(chǎng)景下安全帽佩戴檢測(cè)問題。
表1 YOLOV5s消融實(shí)驗(yàn)
為了能夠更加直觀地看出改進(jìn)后的YOLOV5s帶來的檢測(cè)性能的提升,本文用改進(jìn)前后的YOLOV5s算法對(duì)同樣的測(cè)試集進(jìn)行檢測(cè),部分測(cè)試結(jié)果如圖4所示。圖4(a)中,YOLOV5s沒有檢測(cè)出遠(yuǎn)處的安全帽,并將近處的鋼管橫截面誤檢為黃色頭盔,而改進(jìn)后的YOLOV5s準(zhǔn)確地檢測(cè)出了遠(yuǎn)處的安全帽,沒有發(fā)生誤檢并且置信度也高于原始YOLOV5s算法。圖4(b)是安全帽密集遮擋圖像,YOLOV5s算法出現(xiàn)了漏檢的情況,而改進(jìn)后的YOLOV5s算法準(zhǔn)確地檢測(cè)到所有被遮擋的安全帽。綜上所述,改進(jìn)后的YOLOV5s在現(xiàn)實(shí)場(chǎng)景下表現(xiàn)出了更加優(yōu)異的性能,在小目標(biāo)和遮擋目標(biāo)的檢測(cè)中也優(yōu)于原始YOLOV5s算法。
圖4 不同場(chǎng)景下算法檢測(cè)對(duì)比
為了解決當(dāng)前安全帽佩戴檢測(cè)任務(wù)中存在檢測(cè)精度低,對(duì)于小目標(biāo)和遮擋目標(biāo)的檢測(cè)容易出現(xiàn)誤檢、漏檢的問題,本文提出了一種基于改進(jìn)YOLOV5s的安全帽佩戴檢測(cè)算法。通過結(jié)合SimAM注意力、增加小目標(biāo)檢測(cè)層、引入Bi-FPN網(wǎng)絡(luò)以及采用DIOU-NMS來改進(jìn)YOLOV5s算法。由實(shí)驗(yàn)結(jié)果可知改進(jìn)后的YOLOV5s算法對(duì)安全帽的檢測(cè)取得了較高的檢測(cè)精度,并且在小目標(biāo)和遮擋目標(biāo)的檢測(cè)上也獲得了明顯的進(jìn)步,滿足現(xiàn)實(shí)施工場(chǎng)景下的安全帽檢測(cè)需求。由于本實(shí)驗(yàn)都是在高算力的設(shè)備上進(jìn)行,下一步研究的重點(diǎn)是將檢測(cè)模型移植到嵌入式設(shè)備中實(shí)現(xiàn)工業(yè)應(yīng)用。