雷源毅, 朱文球, 廖 歡
(湖南工業(yè)大學(xué)計(jì)算機(jī)學(xué)院, 湖南 株洲 412007)
由于建筑行業(yè)施工環(huán)境復(fù)雜,高空物體墜落的傷害風(fēng)險(xiǎn)高,因此要求工人在施工現(xiàn)場(chǎng)佩戴安全帽,最大限度地降低工人被墜落物體傷害的風(fēng)險(xiǎn),保護(hù)工人的生命安全。目前,用于工地經(jīng)典的目標(biāo)檢測(cè)算法分為兩種,即一階段目標(biāo)檢測(cè)算法和兩階段目標(biāo)檢測(cè)算法。一階段目標(biāo)檢測(cè)算法包括YOLO系列算法[1]、SSD(單激發(fā)多框檢測(cè))算法[2]等。兩階段目標(biāo)檢測(cè)算法包括R-CNN[3](基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò))、Faster R-CNN[4]、Mask R-CNN等。YOLO系列算法是目前為止發(fā)展最快、最好的算法,尤其是2023年發(fā)布的最新的YOLOv8算法,達(dá)到了目前為止最高的檢測(cè)準(zhǔn)確率。然而,YOLO雖然檢測(cè)全尺寸的目標(biāo)效果較好,但是當(dāng)目標(biāo)為具有不同尺寸的特殊場(chǎng)景時(shí),其性能不如當(dāng)前的一些小尺寸目標(biāo)檢測(cè)算法。工地安全帽目標(biāo)的尺寸較小,使得檢測(cè)器很難準(zhǔn)確、全面地提取其特征,并且當(dāng)前各種算法對(duì)小物體的檢測(cè)準(zhǔn)確率普遍較低。
安全帽圖像具有目標(biāo)分布密集、目標(biāo)尺度變化大及背景復(fù)雜等特點(diǎn),給安全帽佩戴檢測(cè)帶來了很大的難度。孫國棟等[5]通過在Faster R-CNN中添加自注意力機(jī)制獲取多尺度的全局信息,強(qiáng)化網(wǎng)絡(luò)對(duì)小目標(biāo)的表達(dá)信息,但該方法的檢測(cè)速度較低。許凱等[6]使用參數(shù)量較少的輕量化模型YOLOv3-tiny,采用增加網(wǎng)絡(luò)層數(shù)、添加注意力機(jī)制到特征金字塔中的方法,減少噪音等冗余信息對(duì)安全帽檢測(cè)結(jié)果的影響,但在密集情況下,出現(xiàn)較多漏檢情況。杜曉剛等[7]在YOLOv5的基礎(chǔ)上選擇性能更好的Swin Transformer作為主干網(wǎng)絡(luò),提取更深層次的語義信息,捕獲更多的安全帽細(xì)節(jié)特征,但在顏色相同情況下存在誤檢問題。趙敏等[8]通過在YOLOv7-tiny的基礎(chǔ)上設(shè)計(jì)參數(shù)量更少的tiny-BiFPN結(jié)構(gòu),作為原模型特征融合模塊中的特征金字塔結(jié)構(gòu),增強(qiáng)模型多尺度特征融合,但在反光情況下漏檢較多。上述改進(jìn)算法的檢測(cè)精度仍不夠準(zhǔn)確,背景特征提取也不夠豐富,未能很好地解決建筑工地中小目標(biāo)密集、安全帽和背部同色等場(chǎng)景下的漏檢、誤檢問題。針對(duì)這些問題,提出一種改進(jìn)的RDCA-YOLO方法,該方法能夠提高建筑工地復(fù)雜場(chǎng)景中小目標(biāo)的檢測(cè)精度,對(duì)正常尺度目標(biāo)的檢測(cè)精度也有較大的提高,實(shí)現(xiàn)了工地工人安全帽佩戴的自動(dòng)化檢測(cè)。
Ultralytics于2023年發(fā)布了YOLOv8算法,與之前的網(wǎng)絡(luò)相比,YOLOv8在減少網(wǎng)絡(luò)參數(shù)量的同時(shí),提高了檢測(cè)精度和實(shí)時(shí)性。針對(duì)建筑工地實(shí)際場(chǎng)景,選擇一個(gè)輕量版本的YOLOv8n作為基礎(chǔ)網(wǎng)絡(luò)進(jìn)行改進(jìn)。YOLOv8的特點(diǎn)在于融合了許多實(shí)時(shí)目標(biāo)檢測(cè)中優(yōu)異的技術(shù),仍然采用了YOLOv5中的CSP(跨階段局部網(wǎng)絡(luò))思想、特征融合方法(PAN-FPN)和SPPF模塊;其主要改進(jìn)如下:(1)提供了全新的基準(zhǔn)模型,包括分辨率為640×640的P5和分辨率為1 280×1 280的P6目標(biāo)檢測(cè)網(wǎng)絡(luò)。為了滿足不同項(xiàng)目的需求,還基于與YOLOv5相似的比例系數(shù)設(shè)計(jì)了不同比例的模型。(2)在保留YOLOv5原有思想的前提下,參考YOLOv7中的ELAN(高效層聚合網(wǎng)絡(luò))結(jié)構(gòu)設(shè)計(jì)了C2f(跨階段局域網(wǎng)絡(luò)卷積塊)模塊。(3)檢測(cè)頭部分也采用了目前流行的方法,將分類頭和檢測(cè)頭分開,其他大部分仍然是基于YOLOv5的思想。(4)分類損失使用BCE損失(多標(biāo)簽分類任務(wù)的損失函數(shù)),回歸損失的形式為CIoU損失函數(shù)。與以往的YOLO算法相比,YOLOv8具有很強(qiáng)的擴(kuò)展性。
在YOLOv8n算法的基礎(chǔ)上,建立了一個(gè)RDCA-YOLO復(fù)雜建筑工地情況下的安全帽檢測(cè)模型。通過改進(jìn)Backbone主干結(jié)構(gòu),在網(wǎng)絡(luò)中嵌入CBAM注意力機(jī)制,提出一種Coord-BiFPN結(jié)構(gòu),增強(qiáng)網(wǎng)絡(luò)的特征融合能力,設(shè)計(jì)了一種OD-C2f結(jié)構(gòu)代替head中的C2f組件,提出一種新的FR-DyHead檢測(cè)頭替換原始的Detect結(jié)構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,該方法可以適應(yīng)建筑工地復(fù)雜場(chǎng)景,并獲得了更好的安全帽檢測(cè)精度。
圖1 RDCA-YOLO網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Diagram of RDCA-YOLO network structure
原始網(wǎng)絡(luò)中的主干網(wǎng)絡(luò)較為復(fù)雜,提取信息的能力較低,因此模型通過ResNet-18[9]網(wǎng)絡(luò)改進(jìn)原有的Backbone結(jié)構(gòu),該網(wǎng)絡(luò)由一個(gè)卷積層和八個(gè)殘差塊組成,能夠大幅度提高模型的特征提取能力,殘差塊是組成網(wǎng)絡(luò)的基本結(jié)構(gòu),輸出如公式(1)所示:
y=F(x)+x
(1)
其中:F(·)表示殘差函數(shù),x和y分別表示輸入和輸出。網(wǎng)絡(luò)由17個(gè)卷積層、一個(gè)濾波器大小為3×3的最大池化層(max pooling)和一個(gè)全連接層組成。傳統(tǒng)的ResNet-18模型涉及3 316萬個(gè)參數(shù),其中ReLU激活函數(shù)和批量歸一化(Batch Normalization)應(yīng)用于整個(gè)卷積層的后面,ResNet-18結(jié)構(gòu)如表1所示。
表1 ResNet-18結(jié)構(gòu)表
通過在網(wǎng)絡(luò)中Head前嵌入CBAM注意力機(jī)制[10],使網(wǎng)絡(luò)更加關(guān)注感興趣的目標(biāo),CBAM原理圖如圖2所示,其中x表示中間變量。
圖2 CBAM原理圖Fig.2 Diagram of CBAM principle
通道注意力實(shí)現(xiàn)原理:輸入H×W×C的特征圖,H和W表示輸入圖像的高和寬,C表示通道數(shù),使用全局平均池化和最大平均池化收集空間信息,然后用兩個(gè)1×1的卷積(MLP,多層感知機(jī))和Sigmoid激活函數(shù)獲得每個(gè)通道的權(quán)重,通道注意力模型結(jié)構(gòu)圖如圖3所示。
圖3 通道注意力模型結(jié)構(gòu)圖Fig.3 Diagram of channel attention model structure
空間注意力實(shí)現(xiàn)原理:首先對(duì)通道信息進(jìn)行最大池化和平均池化操作,并將結(jié)果連接起來,其次由一個(gè)7×7的卷積和Sigmoid激活函數(shù)得到每個(gè)點(diǎn)的坐標(biāo)權(quán)重,設(shè)置填充Padding為3,空間注意力模型結(jié)構(gòu)圖如圖4所示。
注意力模塊的計(jì)算方法如公式(2)和公式(3)所示,F為輸入特征矩陣,Mc(F)和Ms(F′)分別表示通道注意力和空間注意力所獲得的權(quán)重,?表示逐元素相乘,F′表示通道加權(quán)結(jié)果,F″表示CBAM的最終結(jié)果。
F′=F?Mc(F)
(2)
F″=F′?Ms(F′)
(3)
空間注意力模塊和通道注意力模塊的具體計(jì)算方法如公式(4)和公式(5)所示,fn×n表示一個(gè)n×n的卷積?!皑挕北硎酒唇硬僮?“+”表示逐元素求和。
(4)
(5)
模型設(shè)計(jì)了一個(gè)Coord-BiFPN的頸部網(wǎng)絡(luò),融合添加了BiFPN[11]和CoordConv[12],增強(qiáng)了網(wǎng)絡(luò)的特征融合能力和特征映射的魯棒性。Coord-BiFPN的特點(diǎn)在于高效的雙向跨尺度連接和加權(quán)特征融合(圖5)。首先,從主干網(wǎng)絡(luò)輸入P1、P2、P3三個(gè)不同大小的特征圖,P1和P3的特征直接融合到輸出,這兩個(gè)階段中只有一個(gè)輸出邊緣,并且對(duì)合并不同的特征信息影響很小。其次,在P2層的輸出節(jié)點(diǎn)上添加一條額外的邊,融合更多特征的同時(shí),也不會(huì)增加計(jì)算成本。最后,增加P3和P2的輸入層與P1的輸出層之間的連接,以獲得更高級(jí)別的特征融合。
圖5 Coord-BiFPN結(jié)構(gòu)圖Fig.5 Diagram of Coord-BiFPN structure
當(dāng)融合不同分辨率的特征時(shí),通常的做法是將它們調(diào)整到相同的分辨率,然后將它們相加。然而,當(dāng)輸入特征出現(xiàn)變化時(shí),它們的輸出特征的權(quán)重通常是不同的。向Coord-BiFPN的每個(gè)輸入添加額外的權(quán)重,讓網(wǎng)絡(luò)學(xué)習(xí)每個(gè)輸入特征的重要性,利用快速歸一化融合調(diào)整Coord-BiFPN中的權(quán)重,如公式(6)所示:
(6)
其中:wi為可學(xué)習(xí)的權(quán)重,并且通過在每個(gè)wi后應(yīng)用SiLU激活函數(shù)保證wi≥0,并且設(shè)置ε=0.000 1是為了防止值不穩(wěn)定,歸一化權(quán)重的每個(gè)值為0~1。Coord-BiFPN的每個(gè)模塊的輸出特征圖可以表示如下:
(7)
(8)
(9)
(10)
其中,w1和w2為對(duì)應(yīng)的權(quán)重。Coord-BiFPN在同一層的輸入和輸出特征之間增加了跳躍連接,由于尺度相同,因此增加跳躍連接可以更好地提取和傳遞特征信息。此外,使用加權(quán)特征融合可以融合不同分辨率的輸入層,不同分辨率的輸入層對(duì)應(yīng)的權(quán)重也不同。將改進(jìn)后的雙向特征金字塔網(wǎng)絡(luò)Coord-BiFPN模塊引入特征融合部分,在不增加過多計(jì)算量的情況下,能夠更好地實(shí)現(xiàn)多尺度特征融合。各輸入層的權(quán)值參數(shù)通過網(wǎng)絡(luò)自動(dòng)學(xué)習(xí),能更好地表示整體特征信息。
動(dòng)態(tài)卷積[13]基于卷積層的輸入確定每個(gè)卷積核的權(quán)重,并且使用注意力機(jī)制對(duì)這些卷積核進(jìn)行加權(quán)和求和,以獲得適合該輸入的動(dòng)態(tài)卷積核,動(dòng)態(tài)卷積輸出可以表示如下:
Output(y)=x×(α1W1+α2W2+…+αnWn)
(11)
其中:x和y分別表示輸入特征和輸出特征變量,αi(i=1,2,…,n)為注意力標(biāo)量,n為卷積核數(shù)量,并且每個(gè)卷積核Wi(i=1,2,…,n)具有與標(biāo)準(zhǔn)卷積核相同的大小。
多維動(dòng)態(tài)卷積ODConv利用多維注意力機(jī)制和并行策略,學(xué)習(xí)沿著內(nèi)核空間的所有四個(gè)維度的任何卷積層處卷積內(nèi)核的互補(bǔ)注意力。四個(gè)注意力為卷積核的輸入通道數(shù)量、卷積核的感受野、卷積核輸出通道數(shù)以及卷積核數(shù)量。這四個(gè)注意力相互補(bǔ)充,并且按照位置、通道、濾波器和內(nèi)核的順序與卷積內(nèi)核相乘,顯著增強(qiáng)了對(duì)上下文信息的捕獲,ODConv的輸出可以用公式(12)表示:
Output(y)=x×(αw1⊙αf1⊙αc1⊙αs1⊙W1+…+αwn⊙αfn⊙αcn⊙αsn⊙Wn)
(12)
公式(12)中αwi、αfi、αci、αsi(i=1,2,…,n)表示四種注意力,卷積核Wi(i=1,2,…,n)為變量,表示卷積核沿著空間中不同維度進(jìn)行乘法運(yùn)算。
RDCA-YOLO安全帽檢測(cè)模型在ODConv和C2f的基礎(chǔ)上提出了一種新的OD-C2f結(jié)構(gòu),將C2f的Bottleneck的普通卷積優(yōu)化為ODConv動(dòng)態(tài)卷積,根據(jù)不同的輸入圖像數(shù)據(jù)自適應(yīng)調(diào)整卷積核,并針對(duì)性地提取安全帽的特征,顯著增強(qiáng)了模型的特征提取能力,加強(qiáng)了網(wǎng)絡(luò)的學(xué)習(xí)能力,提高了模型的識(shí)別精度,OD-C2f結(jié)構(gòu)如圖6所示。
圖6 OD-C2f結(jié)構(gòu)圖Fig.6 Diagram of OD-C2f structure
在復(fù)雜的工地場(chǎng)景下,工人安全帽佩戴檢測(cè)面臨位置變化、角度切換、尺度變化的挑戰(zhàn)。YOLOv8n的檢測(cè)頭不能很好地收集并融合多尺度信息、空間信息和任務(wù)信息。研究人員嘗試改進(jìn)已有目標(biāo)檢測(cè)器的檢測(cè)頭,以增強(qiáng)模型性能,導(dǎo)致不同的檢測(cè)頭對(duì)應(yīng)不同對(duì)象檢測(cè)器。然而,還沒有一種方法可以標(biāo)準(zhǔn)化檢測(cè)頭的結(jié)構(gòu)。
良好的目標(biāo)檢測(cè)頭應(yīng)該具有三種能力。一是尺度感知能力。圖像中往往存在多個(gè)不同尺度的物體,一些物體檢測(cè)器使用特征金字塔網(wǎng)絡(luò)增強(qiáng)模型的尺度感知,但并不能提高檢測(cè)頭本身的尺度感知。二是空間感知能力。在不同的視點(diǎn)下,物體會(huì)發(fā)生變形和旋轉(zhuǎn),其輪廓和位置也會(huì)發(fā)生變化。增強(qiáng)空間感知能力可以使檢測(cè)器具有更強(qiáng)的泛化能力。三是任務(wù)感知能力。由于待檢測(cè)對(duì)象可以用不同的形式(錨框、中心點(diǎn)、角點(diǎn))表示,這使得相應(yīng)的檢測(cè)頭具有不同的結(jié)構(gòu)和損失函數(shù),增強(qiáng)模型的任務(wù)感知能力可以使模型檢測(cè)不同形式的對(duì)象。FR-DyHead通過在每個(gè)維度使用三種不同的注意力機(jī)制進(jìn)行統(tǒng)一分別為特征圖、空間和通道三種感知,從而使模型能夠以更深的尺度關(guān)注信息。動(dòng)態(tài)檢測(cè)頭DyHead[14]是一個(gè)新穎的動(dòng)態(tài)檢測(cè)頭結(jié)構(gòu),它使用了多個(gè)注意力。本研究在動(dòng)態(tài)頭DyHead的基礎(chǔ)上設(shè)計(jì)了FR-DyHead檢測(cè)頭,運(yùn)用FReLU[15]激活函數(shù)替換原有的ReLU激活函數(shù),增強(qiáng)了模型對(duì)目標(biāo)檢測(cè)任務(wù)的適應(yīng)性,提高了檢測(cè)的精確度。改進(jìn)的FR-DyHead結(jié)構(gòu)如圖7所示。
圖7 FR-DyHead結(jié)構(gòu)圖Fig.7 Diagram of FR-DyHead structure
圖7中,πL是尺度感知注意力;πS是空間感知注意力;πC是任務(wù)感知注意力;offset表示偏移量;(1,0,0,0)為超參數(shù),用于控制激活閾值。
模型基于PyTorch框架,使用GPU進(jìn)行訓(xùn)練,實(shí)驗(yàn)所使用的GPU為NVIDIA GTX 2070,CUDA版本11.1,PyTorch版本1.7.1,Python版本3.7,CPU為i5-9400F,操作系統(tǒng)為Windows 10家庭中文版。
實(shí)驗(yàn)所用安全帽數(shù)據(jù)集為GDUT-HWD,該數(shù)據(jù)集共有3 174張圖像,實(shí)驗(yàn)分別以7∶2∶1的比例將圖片劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,共包含18 893個(gè)對(duì)象,包括建筑工地常見的大部分場(chǎng)景,代表性和廣泛性較強(qiáng)。所有對(duì)象實(shí)例根據(jù)安全帽的顏色分為藍(lán)色、白色、黃色、紅色和無類別,不同顏色代表不同人員的工作屬性,無類別表示個(gè)人未戴安全帽,共5個(gè)類別。設(shè)置實(shí)驗(yàn)迭代次數(shù)為200次,訓(xùn)練批次為8,學(xué)習(xí)率為0.01,優(yōu)化器為SGD,decay(學(xué)習(xí)率衰減因子)為0.000 5。
評(píng)估網(wǎng)絡(luò)性能的指標(biāo)主要有準(zhǔn)確率(Precision,P),召回率(Recall,R),平均準(zhǔn)確率(Average Precision,AP),平均準(zhǔn)確率均值(mean Average Precision,mAP),計(jì)算方法如公式(13)和公式(14)所示:
(13)
(14)
其中:TP為預(yù)測(cè)正確的正樣本數(shù)量,FP為預(yù)測(cè)錯(cuò)誤的正樣本數(shù),FN為預(yù)測(cè)錯(cuò)誤的負(fù)樣本數(shù)。模型使用mAP@0.5作為評(píng)估模型準(zhǔn)確性的指標(biāo),表示將IoU(Intersection over Union)閾值取50%時(shí)的mAP值,通過平均每個(gè)類別的AP計(jì)算得到,計(jì)算方法如公式(15)和公式(16)所示。
(15)
(16)
針對(duì)GDUT-HWD數(shù)據(jù)集設(shè)計(jì)消融實(shí)驗(yàn),均采用“4.2”小節(jié)中的實(shí)驗(yàn)參數(shù),本文方法在GDUT-HWD數(shù)據(jù)集的消融實(shí)驗(yàn)結(jié)果比較如表2所示。其中:模型2表示改進(jìn)Backbone結(jié)構(gòu),模型3表示嵌入CBAM注意力機(jī)制,模型4表示設(shè)計(jì)一種Coord-BiFPN結(jié)構(gòu),模型5表示在動(dòng)態(tài)卷積的基礎(chǔ)上設(shè)計(jì)了OD-C2f結(jié)構(gòu),模型6表示提出了一種新的FR-DyHead檢測(cè)頭替換原始的Detect結(jié)構(gòu)。從表2中的數(shù)據(jù)可以看出,與原YOLOv8n算法相比,本文模型的mAP提高了2.6%。
表2 本文方法在GDUT-HWD數(shù)據(jù)集的消融實(shí)驗(yàn)結(jié)果比較
為驗(yàn)證改進(jìn)模型的有效性,采用相同的驗(yàn)證集做了相關(guān)對(duì)比實(shí)驗(yàn),將其與目前主流的目標(biāo)檢測(cè)算法進(jìn)行對(duì)比,不同算法在GDUT-HWD數(shù)據(jù)集的檢測(cè)結(jié)果比較如表3所示,表明改進(jìn)后的方法獲得了最優(yōu)的mAP值。
表3 不同算法在GDUT-HWD數(shù)據(jù)集的檢測(cè)結(jié)果比較
為更加直觀地評(píng)價(jià)改進(jìn)前后的效果,使用GDUT-HWD數(shù)據(jù)集中部分圖片進(jìn)行測(cè)試。對(duì)比圖8(a)、圖8(b)可以看出,YOLOv8n在密集目標(biāo)場(chǎng)景下存在1處漏檢,沒有將圖中遠(yuǎn)處的紅色安全帽檢測(cè)到。對(duì)比圖8(c)、圖8(d)可以看出,YOLOv8n在小目標(biāo)場(chǎng)景下存在誤檢,將圖中欄桿誤檢為紅色安全帽。對(duì)比圖8(e)、圖8(f)可以看出,YOLOv8n在反光場(chǎng)景下存在漏檢,沒有將圖中的白色安全帽檢測(cè)到。對(duì)比圖8(g)、圖8(h)可以看出,YOLOv8n在黑暗場(chǎng)景下存在漏檢,沒有將圖中沒戴安全帽的人員情況檢測(cè)到??梢钥闯?改進(jìn)后的模型檢測(cè)準(zhǔn)確率更高,檢測(cè)性能明顯提升。
(a)YOLOv8n密集場(chǎng)景下檢測(cè)結(jié)果
針對(duì)復(fù)雜工地場(chǎng)景下安全帽檢測(cè)存在的模型識(shí)別精度低易出現(xiàn)漏檢以及誤檢等問題。相比于原始的YOLOv8n模型,RDCA-YOLO模型在GDUT-HWD數(shù)據(jù)集上的mAP提升了2.6%、R提高了2.5%,證明本文所提方法在工人安全帽佩戴檢測(cè)中有效,與其他目標(biāo)檢測(cè)模型相比具有顯著優(yōu)勢(shì),實(shí)現(xiàn)了工地工人安全帽佩戴的自動(dòng)化檢測(cè)。