岳 衡,黃曉明,林明輝,高 明,李 揚,陳 凌
(1.國網(wǎng)浙江省電力有限公司寧波供電公司物資部,浙江 寧波 315000;2.國網(wǎng)浙江省電力有限公司寧波市奉化區(qū)供電有限公司,浙江 寧波 315599)
安全帽對于高空墜物,可以產(chǎn)生緩沖作用,能夠保障倉庫工人的安全,降低事故所造成的傷亡和損失。同時安全帽具有顏色顯眼的特點,能夠起到約束和警示的作用。所以對于安全帽佩戴情況的監(jiān)管是一項重要的任務(wù),由于倉庫、工地等場景下的作業(yè)具有地區(qū)跨度廣、持續(xù)時間長等特點,所以依靠人力監(jiān)管安全帽佩戴情況,具有投入大、易遺漏等缺點,存在較大的安全隱患[1]。
針對安全帽佩戴情況監(jiān)測問題,研究基于深度學(xué)習(xí)的目標(biāo)檢測算法是主流做法[2]。目標(biāo)檢測算法主要分為單階段和雙階段目標(biāo)檢測方法[3]。雙階段目標(biāo)檢測通常先生成候選窗口[4],再針對候選窗口進(jìn)行分類,這類算法準(zhǔn)確率較高,但其計算量大,算法運行時間也較長[5]。如RCNN[5]相比傳統(tǒng)目標(biāo)檢測算法準(zhǔn)確率有很大提升,然而算法需對每個候選窗口進(jìn)行特征提取,算法實際運行時間長。Fast RCNN[6-7]針對RCNN的問題,對整張圖片進(jìn)行單次代價提取,提升了算法速度。Faster RCNN[8]區(qū)域候選網(wǎng)絡(luò)生成候選區(qū)域進(jìn)一步提高了算法的運行速度。吳東梅等人[9]在Faster RCNN的基礎(chǔ)上,融合多階段的多尺度特征進(jìn)行多尺度檢測,提升了安全帽檢測的準(zhǔn)確率。
YOLO系列是典型的單階段網(wǎng)絡(luò)[10]。YOLOv1[11]針對目標(biāo)檢測任務(wù),將圖片分為多個網(wǎng)格,每一個網(wǎng)格負(fù)責(zé)2個預(yù)測框,根據(jù)NMS算法刪除冗余預(yù)測框,相對于RCNN等單階段算法,YOLOv1算法產(chǎn)生更少的預(yù)測框并同時預(yù)測目標(biāo)的位置和類別,算法速度有顯著提升,但也導(dǎo)致準(zhǔn)確率和召回率的下降。YOLOv2[13]在YOLOv1基礎(chǔ)上引入了錨框,增加了網(wǎng)格和每個網(wǎng)格負(fù)責(zé)的預(yù)測框的數(shù)量。YOLOv3[14]使用產(chǎn)生3個尺度的輸出的預(yù)測頭,高尺度預(yù)測小目標(biāo),低尺度預(yù)測大目標(biāo),緩解了YOLOv1和YOLOv2中小目標(biāo)和超大目標(biāo)丟失問題。林俊等人[15]基于YOLOv1進(jìn)行了安全帽檢測的研究,算法整體實時性較好,但準(zhǔn)確率較低。方明等人[16]在YOLOv2中加入了密集塊,加強了語義信息和多層特征的融合,緩解了頭盔較遠(yuǎn)時作為小目標(biāo)對象準(zhǔn)確率低的問題。王兵等人[17]基于YOLOv3改進(jìn)了交并比的計算方法,提出了一種新的目標(biāo)函數(shù),一定程度上提升了算法的準(zhǔn)確率。
YOLOv4[18]在YOLOv3的基礎(chǔ)上使用大量調(diào)參技巧使得模型更加準(zhǔn)確,然而YOLOv4的模型容量大,推理速度較慢。YOLOv5使用一種可調(diào)節(jié)模型大小的主干網(wǎng)絡(luò),其主干網(wǎng)絡(luò)基于CSPDarknet53。算法在保持檢測速度的同時,能夠取得較好的檢測結(jié)果,然而該算法無法獲取更多的上下文信息[19-21]。
基于以上現(xiàn)狀,本文在YOLOv5基礎(chǔ)上加入注意力模塊,對比不同注意力模塊對于檢測結(jié)果的影響;改進(jìn)YOLOv5去除冗余框的算法,使用Soft-NMS解決NMS算法在物體高度重疊時僅保留同類最高置信度的預(yù)測框的問題,同時使用Focus模塊、WNMS融合多次結(jié)果進(jìn)一步提升安全帽的檢測結(jié)果。
注意力機制能夠通過權(quán)重聚焦位置,產(chǎn)生更具有分辨性的特征,使網(wǎng)絡(luò)獲取更多的上下文信息。SEL是一種常用的通道注意力模塊[22],其考慮到了不同通道間的關(guān)系,SEL將輸入特征進(jìn)行全局池化,如式(1)所示。然后通過全連接層降維學(xué)習(xí),最后通過全連接進(jìn)行學(xué)習(xí)并恢復(fù)初始維度與輸入特征相加。
(1)
其中,W、H是輸入特征X的寬、高,i、j是特征位置。
SEL經(jīng)過了2層卷積層,增大模型的尺寸,并且降低了檢測速度,本文在保持精度的基礎(chǔ)上為了提升檢測效果,使用ECA模塊。ECA模塊相較于SEL沒有降低通道維數(shù),充分保證了卷積過程中的特征提取??缤ǖ阑佑兄趯W(xué)習(xí)有效注意,而SE-Var3等網(wǎng)絡(luò)涉及大量的參數(shù),導(dǎo)致模型復(fù)雜度過高。從有效卷積的角度來看,ECA捕獲局部的K近鄰,即只考慮每個通道與其K近鄰?fù)ǖ乐g的相互作用,在跨通道的同時降低了注意力模塊運行的復(fù)雜程度,ECA模塊的結(jié)構(gòu)圖如圖1所示。
圖1 ECA結(jié)構(gòu)圖
圖1中,X是輸入特征,H、W、C分別是輸入特征的高度、寬度以及通道數(shù)量,X經(jīng)過平均池化得到中間輸出O1,O1由一維卷積得到O2。O2通過激活函數(shù)σ得到最終的通道注意力加權(quán)特征O3,本文使用Sigmoid激活函數(shù),O3與輸入進(jìn)行卷積得到最終輸出。k是跨卷積交互的鄰域大小,圖1中為4。由于使用一維卷積來捕獲局部的跨通道交互,k決定了交互的覆蓋范圍,不同的通道數(shù)和不同的CNN架構(gòu)的卷積塊k的取值不同,通道尺寸越大,長期交互作用越強,而通道尺寸越小,短期交互作用越強。用式(2)表示映射關(guān)系:
C=φ(k)
(2)
普通的線性映射可以表示如φ(k)=γ×k-b。但線性模型具有一定的局限性,考慮通道數(shù)量通常是2的指數(shù),所以使用如下的非線性模型,如式(3):
C=φ(k)=2(γ×k-b)
(3)
所以k可以表示為式(4):
(4)
其中,γ和b均是線性參數(shù),本文分別取2和1,|t|odd表示距離t最近的奇數(shù)。顯然,通過映射φ,高維通道具有較長的相互作用,而低維通道通過非線性映射進(jìn)行較短的相互作用。
非極大值抑制算法通過多次迭代去除冗余框[23],每次迭代選取置信度最高的預(yù)測框,然后計算最高置信度預(yù)選框和剩余預(yù)測框的交并比(Intersection Over Union, IOU),刪除IOU大于交并比閾值的預(yù)測框,獲取剩下的最高置信度預(yù)選框,重復(fù)上述過程。其中,IOU的定義如式(5):
(5)
其中,C是預(yù)測框1,G是預(yù)測框2。
非極大值抑制的主要缺陷在于當(dāng)物體高度重疊時只會保留同類最高的置信度的預(yù)測框,這樣導(dǎo)致同類但屬于不同目標(biāo)可能會被誤刪。Soft-NMS并不直接刪除與最高置信度框產(chǎn)生高的交并比的剩余框,而是降低剩余框的置信度,保留更多的預(yù)測框,避免了極大值抑制中誤刪重疊物體的情況發(fā)生。
Soft-NMS降低高交并比的方法如式(6):
(6)
其中,Nt為閾值,si為當(dāng)前選中目標(biāo)框和最高置信度框產(chǎn)生的新置信度,IOU(M,bi)是當(dāng)前最高置信度預(yù)測框M與剩余第i個預(yù)測框bi的交并比。
將圖像和增強后的圖像同時送入模型,經(jīng)過Soft-NMS得到所有的預(yù)測框往往含有一定有用信息,當(dāng)最高置信度的預(yù)選框不足夠準(zhǔn)確時,可以利用其余框的信息來修正預(yù)選框。即通過NMS的結(jié)果使用WNMS進(jìn)一步優(yōu)化。
Focus將輸入特征切邊后組合再進(jìn)行卷積,使得圖片在下采樣時防止信息丟失,其模型結(jié)構(gòu)如圖2。
圖2 Focus結(jié)構(gòu)圖
圖2中,i、j分別是特征圖的縱坐標(biāo)、橫坐標(biāo)。i=2k、j=2m表示橫坐標(biāo)和縱坐標(biāo)均為偶數(shù)的位置,由這些位置組合得到新的特征X1可以形成一個新的尺寸減半的特征X2、X3、X4,堆疊4個特征再通過一次卷積組,得到最終Focus模塊的輸出。
本文基于YOLOv5改進(jìn)的模型分為3個模塊,分別為主干網(wǎng)絡(luò)、頭網(wǎng)絡(luò)和檢測網(wǎng)絡(luò)。改進(jìn)后的模型整體結(jié)構(gòu)如圖3所示。
圖3 本文改進(jìn)的模型整體結(jié)構(gòu)圖
圖3中每個模塊用一個矩形框表示,每個模塊前半部分內(nèi)容是模塊名稱,后半部分括號中的內(nèi)容是模塊參數(shù)列表。Conv表示普通卷積,參數(shù)列表的含義為(卷積核輸入通道數(shù),卷積核輸出通道數(shù),卷積核尺寸,卷積步長),Concat表示堆疊層,將輸入特征從第一維度相堆疊,其參數(shù)列表含義為(輸入1的通道數(shù),輸入2的通道數(shù))。Upsample使用雙線性插值,參數(shù)列表含義為(輸入通道數(shù),輸出通道數(shù),放大因子),本文取放大因子為2,表示將圖像放大2倍。SPP的參數(shù)列表含義為(輸入通道數(shù),輸出通道數(shù),[最大池化核1的尺寸,最大池化核2的尺寸,最大池化核3的尺寸]),F(xiàn)ocus參數(shù)列表含義為(卷積核輸入通道數(shù),卷積核輸出通道數(shù),卷積核尺寸,卷積步長)。C3表示一種融合瓶頸殘差模塊的新型卷積模塊,如圖4所示。
圖4 C3結(jié)構(gòu)圖
圖4中Bottleneck表示瓶頸殘差模塊,如圖5。
圖5 瓶頸殘差模塊結(jié)構(gòu)圖
圖5中,瓶頸殘差模塊中第一層卷積層Conv用來改變輸入通道的維度,減少維度過高帶來的大量計算量。
本文共搜集6000幅安全帽相關(guān)的圖像,將數(shù)據(jù)集的檢測目標(biāo)分為佩戴安全帽和未佩戴安全帽2個類,佩戴安全帽作為0類,目標(biāo)位置是人臉和安全帽的整體位置;未佩戴安全帽為1類,目標(biāo)位置是人臉位置。使用Labelimg工具標(biāo)記每個目標(biāo)的左上坐標(biāo)、寬、高的相對值。每幅圖像生成一個YOLO格式的標(biāo)注文件。其中5000幅圖像作為訓(xùn)練集,500幅圖像作為驗證集和500幅圖像作為測試集。
由于Focus模塊屬于模型的主干部分,所以將加入Focus模塊的模型和未加入Focus模塊的模型分別在ImageNet數(shù)據(jù)集進(jìn)行粗訓(xùn)練,迭代10輪,學(xué)習(xí)率均取0.01。訓(xùn)練安全帽數(shù)據(jù)集時,均采用隨機梯度下降法(Stochastic Gradient Descent, SGD),SGD動量為0.937,批量數(shù)取8,圖像輸入大小取640×640。共進(jìn)行200輪訓(xùn)練,前180輪粗訓(xùn)練,學(xué)習(xí)率取0.001,后20輪精細(xì)訓(xùn)練,學(xué)習(xí)率取0.0001。其結(jié)果如表1所示,其中R代表召回率,P代表精確率。
表1 模型在安全帽數(shù)據(jù)集上的結(jié)果1
表1中,YOLOv5-f代表未加入Focus模塊的YOLOv5模型,YOLOv5代表加入了Focus模塊的模型。從表1可以看出,由于Focus模塊使圖片在下采樣過程中避免信息丟失,加入Focus模塊使得模型在精確率、召回率以及mAP指標(biāo)上均能取得小幅度的提升。
表2對比了不同注意力模塊SEL和ECA模塊對于安全帽檢測結(jié)果的提升,由于注意力模型屬于頭網(wǎng)絡(luò),所以無需對模型都進(jìn)行預(yù)訓(xùn)練,直接使用上文YOLOv5-f訓(xùn)練的主干模型,訓(xùn)練過程和3.1節(jié)相同。
表2 模型在安全帽數(shù)據(jù)集上的結(jié)果2
表2中,YOLOv5代表未加入Focus模塊的YOLOv5模型,YOLOv5+SEL代表加入SEL模塊的YOLOv5,YOLOv5+ECA代表加入ECA模塊的YOLOv5。YOLOv5+SEL和YOLOv5+ECA相較于YOLOv5各項指標(biāo)均取得了一定程度的提升。YOLOv5+ECA較YOLOv5分別在精確率、召回率、mAP@0.5和mAP@0.5:0.95上分別提升了0.5、0.6、0.5和0.2個百分點。由于ECA模塊相較于傳統(tǒng)通道注意力機制模塊SEL沒有降低通道維數(shù),充分保證了卷積過程中的特征提取,提升了安全帽檢測結(jié)果的準(zhǔn)確性,所以加入ECA注意力模塊的算法相較于加入SEL注意力模塊的算法能夠取得更好的結(jié)果。
本節(jié)研究改進(jìn)NMS對于模型的影響,分別測試使用NMS、Soft-NMS以及對使用Soft-NMS后進(jìn)一步使用WNMS的模型,其中WNMS對圖像進(jìn)行一次增強,每次的結(jié)果由2次結(jié)果融合而成,訓(xùn)練過程與3.2節(jié)相同,其結(jié)果如表3所示。
表3 模型在安全帽數(shù)據(jù)集上的結(jié)果3
表3中,YOLOv5+Soft-NMS、YOLOv5+Soft-NMS+WNMS代表改進(jìn)的使用Soft-NMS的YOLOv5算法,在Soft-NMS基礎(chǔ)上進(jìn)一步使用WNMS的模型算法。
從表3可以看出,使用Soft-NMS的算法相較于YOLOv5分別在mAP@0.5、mAP@0.5:0.95指標(biāo)上分別提升了0.3、0.2個百分點;在Soft-NMS基礎(chǔ)上繼續(xù)使用WNMS的算法相較于YOLOv5分別在mAP@0.5、mAP@0.5:0.95指標(biāo)上提升了1.5、0.7個百分點,由于將圖像和增強后的圖像同時送入到模型,然后將所有的結(jié)果進(jìn)行加權(quán),在增加一定時間的檢測前提下,較大程度提升了算法的準(zhǔn)確程度。
本節(jié)基于YOLOv5進(jìn)行改進(jìn),把使用Focus、ECA和Soft-NMS的算法記為FES-YOLO;并且在增加一定時間的情況下使用WNMS算法進(jìn)一步提升算法準(zhǔn)確率,記為FESW-YOLO,其在安全帽數(shù)據(jù)集的結(jié)果如表4所示,T代表算法運行時間。
表4 模型在安全帽數(shù)據(jù)集上的結(jié)果4
從表4看出,相較于YOLOv5,在相同的檢測時間下,在mAP@0.5、mAP@0.5:0.95指標(biāo)上分別提升了1、0.3個百分點;在增加了一定檢測時間的前提下,在mAP@0.5、mAP@0.5:0.95指標(biāo)上分別提升了2.1、1.2個百分點。
綜合表1~表4可看出本文提出的算法在特征提取過程中使用Focus模塊能夠使圖片在下采樣的過程中不會丟失信息,使用ECA模塊選擇聚焦位置,能夠產(chǎn)生更具有分辨性的特征,并使網(wǎng)絡(luò)獲取更多的上下文信息,使用WNMS的算法融合多檢測框優(yōu)化結(jié)果,最終提升算法在安全帽數(shù)據(jù)集上的檢測結(jié)果。
FESW-YOLO、YOLOv5、Faster-RCNN的mAP隨迭代輪數(shù)變化如圖6所示,可以看出本文改進(jìn)的算法雖然在前50次迭代收斂速度較慢,但在后50次迭代準(zhǔn)確率較為穩(wěn)定上升,其mAP均高于YOLOv5,且收斂速度較Faster-RCNN算法具有顯著提升,其中mAP閾值取0.5。
圖6 訓(xùn)練迭代圖
圖7和圖8分別是測試集合中2張場景較復(fù)雜的圖片,其中圖7和圖8中的(a)、(b)、(c)、(d)分別是測試場景的原圖、使用FESW-YOLO、YOLOv5、Faster-RCNN得到的檢測結(jié)果圖。
(a) 原圖
(a) 原圖
圖7(a)中從左往右,第3、第4個目標(biāo)存在重疊,對于目標(biāo)檢測算法具有較高要求,圖7(b)中本文改進(jìn)的FESW-YOLO算法預(yù)測出了所有的結(jié)果,并取得了較高的置信度,圖7(c)中YOLOv5預(yù)測出了所有的結(jié)果,但框的位置和置信度均低于FESW-YOLO,而圖7(d)中Faster-RCNN丟失了第3個重疊目標(biāo)。
從圖8(a)可以看出背景區(qū)域有2個未佩戴安全帽的人員距離相機較遠(yuǎn),對算法具有極高要求,圖8(b)中本文改進(jìn)的FESW-YOLO算法檢測出了2個目標(biāo)未佩戴目標(biāo),給出的置信度分別為0.61和0.62,圖8(c)中YOLOv5檢測出了2個目標(biāo)未佩戴目標(biāo),給出的置信度分別為0.47和0.51,事實上若選取較小的篩選閾值,YOLOv5會丟失這2個目標(biāo),圖8(d)中Faster-RCNN則無法檢測出距相機遠(yuǎn)距離的2個目標(biāo)。
綜合圖像來看,本文基于YOLOv5改進(jìn)的FESW-YOLO算法取得結(jié)果整體優(yōu)于YOLOv5,算法取得了更加準(zhǔn)確的位置坐標(biāo)和置信度,而Faster-RCNN預(yù)測框的位置較不準(zhǔn)確,存在大量目標(biāo)丟失的情況,F(xiàn)ESW-YOLO算法相較于Faster-RCNN具有較大的提升。
本文基于YOLOv5進(jìn)行了改進(jìn),在其基礎(chǔ)上加入注意力模塊,并對比不同注意力模塊SEL和ECA對于檢測結(jié)果的影響,最終采取ECA模塊,產(chǎn)生更具有分辨性的特征,提升了算法的檢測準(zhǔn)確性;同時使用Focus模塊并驗證了其對于安全帽檢測結(jié)果的提升;本文改進(jìn)了YOLOv5去除冗余框的算法,使用Soft-NMS解決了NMS算法在物體高度重疊時只會保留同類最高置信度預(yù)測框的問題,同時使用WNMS融合多次結(jié)果進(jìn)一步提升算法的檢測結(jié)果。通過安全帽數(shù)據(jù)集訓(xùn)練、測試,相較于YOLOv5、Faster-RCNN等算法,本文改進(jìn)的FESW-YOLO算法收斂速度更快更平穩(wěn),在安全帽檢測上更精確,提升了安全帽的監(jiān)管可靠性。