林子洋 郭景娟
摘要:針對口罩佩戴的目標檢測在復雜場景的誤檢、漏檢和延遲問題,提出了一種基于YOLOv5s模型的改進算法。通過修改YOLOv5s模型,刪除檢測最大特征圖層的部分,并引入通道注意力機制,旨在提高檢測效率的同時保持準確率。實驗結果表明,該改進算法有效地提升了YOLOv5s的檢測效率,降低了對檢測設備的需求,更適合應用于實時檢測環(huán)境中。
關鍵詞:目標檢測;YOLOv5s;深度學習;輕量化;注意力機制
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2024)08-0024-04
開放科學(資源服務)標識碼(OSID)
0 引言
目前,口罩在醫(yī)院、實驗室、工廠等環(huán)境下需要廣泛使用。佩戴口罩可以降低病菌的傳播風險,保障公眾的健康和安全。隨著檢測算法的優(yōu)化與硬件的提升,目標檢測被運用到更多的場合。為了對相關人員是否佩戴口罩進行監(jiān)測,避免工作人員在公共場合或特殊場景下逐人進行檢測,占用人力資源,并影響工作效率,因此,開發(fā)一種精確、快速的目標檢測算法對提升公共衛(wèi)生安全有著重要的意義。
目前,國內(nèi)有較多對口罩佩戴檢測識別的優(yōu)秀算法。牛作東等人[1]提出了改進RetinaFace的自然場景口罩佩戴檢測算法,對口罩檢測的mAP可達84.7%。王藝皓等人[2]使用改進后的YOLOv3算法,對口罩檢測的mAP可達90.2%。李小波等人[3]在YOLOv5的基礎上作出改進,添加了多種注意力機制,mAP可達86.2%。
在上述學者的研究成果的基礎上,本文在YOLOv5提出了一種改進的算法。對YOLOv5s的模型進行修改,結合通道注意力機制,使模型可以更快地檢測出口罩。
1 相關工作
1.1 目標檢測
目標檢測是一項與計算機視覺和圖像相關的技術,在日常生活中有著廣泛的運用,例如人臉識別、自動駕駛識別和遠程監(jiān)控等。
目標檢測按照檢測方式可分為兩類:兩階段目標檢測和單階段目標檢測。R-CNN[4] (Region-based Convolutional Neural Networks)、Fast R-CNN[5]和 Faster R-CNN[6]是代表性的兩階段目標檢測算法。這類算法首先專注于定位物體的位置,然后再對檢測到的物體進行分類,以提高檢測精度。YOLO [7](You Only Look Once) 系列算法和 SSD[8] (Single Shot MultiBox Detector) 算法則是代表性的單階段目標檢測網(wǎng)絡,將物體定位和分類合并為一步,大大提高了檢測速度,但精確度可能會下降。
YOLO算法是一種基于深度神經(jīng)網(wǎng)絡的對象識別和定位算法。在本文中,使用了識別速度快、占用內(nèi)存少、在模型快速部署上有優(yōu)勢的YOLO系列中的YOLOv5。相較于之前的版本,YOLOv5 在計算效率和精度上都有所提升,具有更高的擴展性。此外,相較于YOLOv7,YOLOv5 需要的訓練和推理速度更快,占用的內(nèi)存更少。
YOLOv5 是使用深度學習框架 PyTorch 實現(xiàn)的。它的網(wǎng)絡結構一共有四個模塊:Input、Backbone、Neck 和 Head。在Input模塊中,可以進行自適應錨框計算和自適應圖片縮放。Backbone模塊中包含了Focus結構和CSP結構,用于對圖片進行切片操作以獲得特征圖,并增強CNN的學習能力,從而加快網(wǎng)絡的推理速度。Neck模塊中包含了FPN和PAN結構,通常用于特征圖的融合,生成多尺度的信息特征圖,提高目標檢測的準確率。Head部分使用CIOU_Loss作為損失函數(shù),進行最終的回歸預測。
YOLOv5 有四個版本:s、m、l 和 x。這四個模型的結構相同,區(qū)別在于depth_multiple模型的深度和width_multiple模型的寬度參數(shù)不同。其中,YOLOv5s 是深度和寬度最小的目標檢測模型,其余三種在YOLOv5s基礎上進行了深度和寬度的調(diào)整。考慮到口罩檢測的實時性要求,本文選用了YOLOv5s模型并對其進行了改進。
1.2 注意力機制
在機器翻譯或語音識別等實際應用任務中,由于數(shù)據(jù)集龐大、網(wǎng)絡結構復雜且計算資源有限,難以對所有數(shù)據(jù)進行同樣處理。因此,使用注意力機制可以選擇性地關注部分數(shù)據(jù),提升模型性能和效率。對YOLOv5模型添加注意力機制可以提高模型準確性,改變檢測時計算的不同權重,避免不必要的漏檢和誤檢。
SE通道注意力機制[9]是一種輕量級的注意力機制,通過改變特征通道之間的關系提升網(wǎng)絡性能。它采用學習方式自動獲取每個特征通道的重要程度,從而提升有用特征并抑制對當前任務用處不大的特征,同時提高神經(jīng)網(wǎng)絡的分類能力。由于該注意力機制的計算量較小,可以在增加額外計算量時不會降低太多模型性能。
SE模塊的結構如圖1所示,給定輸入特征圖x,經(jīng)過Ftr轉換得到特征圖U。接著,特征圖U經(jīng)過Squeeze、Excitation、Reweight操作,最后重新標定前面得到的特征。
Squeeze操作的公式:
[Zc=Fsquc=1H×Wi=1Hj=1wuc(i,j)]
Squeeze操作是指在空間維度上進行特征壓縮,主要將高度和寬度(H×W) 壓縮成1×1,然后進行全局池化操作。
Excitation操作的公式:
[s=Fexz,W=σgz,W=σ(W2δW1z)]
Excitation操作主要是通過參數(shù)w為每個特征通道生成權重,用來建模特征通道間的相關性。在經(jīng)過Squeeze操作后得到的1×1×C的特征圖上,引入一個全連接層,對每個通道進行重要性預測,然后將不同通道的重要性加權到之前特征圖的對應通道上。
Reweight操作是將Excitation操作后的特征通過逐通道乘法加權到之前的特征上,完成對特征權重在通道維度上的重新標定。
2 網(wǎng)絡架構
2.1 添加注意力機制
通過引入注意力機制,我們可以在眾多輸入信息中聚焦于當前任務更關鍵的信息,降低對其他信息的關注度,甚至過濾掉無關信息,從而解決信息過載問題,提高任務處理效率和準確性。在YOLOv5s模型的各部分添加了SE和CBAM注意力機制,并進行了測試和數(shù)據(jù)記錄。由于SE注意力機制相較于CBAM注意力機制更加輕量級,所需的計算成本也更少,因此結合最后的訓練結果,決定將SE注意力機制添加到head部分的第二個Concat層后。
2.2 刪去最大的特征圖通道
刪除最大的特征圖通道可以進一步減少計算量,有利于在資源有限的環(huán)境中進行目標檢測。YOLOv5采用多尺度融合特征的方式得到最后的結果,以提升精確度。在YOLOv5s中,它使用(80,80,256) 、(40,40,512) 和(20,20,1024) 三個不同大小的特征圖通道來得到最終的結果??紤]到口罩佩戴的檢測可以忽略小目標檢測的影響,而對小目標的檢測又是計算最復雜的一步,因此將對小目標檢測的計算這一步忽略,以在保證精確度的情況下大幅降低口罩佩戴的檢測所需時間。然而,刪除的特征通道與輸入數(shù)據(jù)的特征不相關,可能會受到噪聲的干擾,從而影響性能。因此,可以刪除數(shù)據(jù)集中具有小而密的檢測目標特征圖,使模型專注于檢測較大、更容易識別的目標。當檢測的目標都是較大的目標時,刪除最大特征圖通道的影響將降低。
2.3 修改后的輕量化YOLOv5s結構
在本次實驗中,對YOLOv5s.yaml的文件進行修改,引入一行對原本第18層的Concat模塊添加注意力機制的效果,使其更加關注重要的特征部分。同時刪除backbone中大小是[1024,3,2]的卷積層和head中的大小是[512,3,2]的卷積層,并對各部分中行數(shù)進行修改,使其對應原來的行數(shù)。然后將對應的注意力機制代碼加入common.py文件中,在yolo.py中添加需要引用的注意力機制的名稱。
如圖2所示,對YOLOv5s進行了修改,刪除了最大特征通道,最終只保留了2個最大特征通道的結果。Concat層用于特征提取和卷積融合,因此刪去了多余的卷積層并對各層數(shù)做出調(diào)整,在中等大小的特征通道的Concat層后添加了SE模塊,在圖2中用虛線框出所示位置。根據(jù)多次實驗結果對比,只在第二個Concat層后添加注意力機制是最能有效提升檢測精確度同時需要很少計算量的方法,因此只添加了一個SE模塊。
3 實驗結果與分析
3.1 實驗環(huán)境與數(shù)據(jù)集
用于訓練模型的硬件環(huán)境是:AMD Ryzen 5 5500U處理器,帶有Radeon Graphics顯卡,主頻為2.10 GHz,內(nèi)存為16GB。軟件環(huán)境包括Windows 10操作系統(tǒng)和Python 3.9開發(fā)語言。在訓練參數(shù)設置中,使用多次訓練后得到的模型,輸入圖片大小為640×640,權重衰減系數(shù)為0.000 5,batch size設置為4,最大迭代次數(shù)epoch設置為100。經(jīng)過訓練后,總損失值逐漸下降,穩(wěn)定在0.045左右。
本次實驗所使用的數(shù)據(jù)均為圖片類型。為了獲得更好的實驗結果,使用了阿里天池獲取的正常光照下多種場景的帶口罩和不帶口罩的數(shù)據(jù)集(https://tianchi.aliyun.com/dataset/dataDetail?dataId=93678) ,共計1 283張圖片。對這些圖片進行了調(diào)整,刪除了只包含較小目標的圖片。其中1 023張用作訓練集,258張用作驗證集。
通過對數(shù)據(jù)進行可視化分析,如圖3所示:通過圖(a)中的數(shù)據(jù)集物體分析可以得到數(shù)據(jù)集中各類目標的數(shù)量;通過圖(b)中的數(shù)據(jù)集物體中心分布可以得到數(shù)據(jù)集中目標在圖片中的位置分布,其中顏色越深,表示目標的數(shù)量越多;通過圖(c)中的數(shù)據(jù)集物體大小分布可以得到檢測到的小目標較多。
3.2 實驗過程
在本文的實驗過程中,筆者嘗試在YOLOv5s的各個部分添加注意力機制,并比較了兩種輕量級的注意力機制在該模型上的效果。經(jīng)過考慮刪除最大特征圖層前后的對比,我們得出了在YOLOv5s的head部分的中等大小特征圖層的Concat頭后添加SE注意力機制為最優(yōu)的結果。
如表1所示,在使用YOLOv5模型的情況下,平均每張圖片的處理時間可達125.4ms??紤]到需要提高檢測速率,尤其是對小目標的檢測,筆者刪除了最大的特征圖層,并確定平均準確率只有輕微下降。接著,考慮添加一種計算量較小的注意力機制。筆者選擇了SE和CBAM兩種注意力機制,并分別進行實驗后,對比得到的結果,選擇了SE注意力機制進行進一步的研究。筆者分別將SE注意力機制添加在SPPF模塊后、第一個Concat頭后和第二個Concat頭后(在表中表示為backbone、head1和head2) 。實驗結果顯示,在只在第二個Concat頭后添加SE注意力機制的模型中,檢測速度最快。與基本的YOLOv5模型相比,平均檢測時間快了61.7ms,而mAP只有輕微下降。綜上,本文的改進算法可以顯著提高檢測速率,同時滿足口罩檢測的基本要求。
3.3 實驗結果
在進行了100輪迭代后,添加了通道注意力機制的網(wǎng)絡在訓練過程中的準確率相較于原本的YOLOv5算法更趨近于穩(wěn)定值,如圖4所示。
在添加通道注意力機制后,對口罩與未佩戴口罩的識別準確率都有所提升。佩戴口罩后,無需辨別鼻子、嘴等特征,所以平均準確率更高。添加了注意力機制后,對各個特征識別的精度也有所提升。相比使用原本模型的YOLOv5,添加SE注意力機制,可以較好地滿足口罩檢測的需求。在刪除了最大的特征圖層后,非多個密集的口罩識別也可以達到平均檢測的要求。以下是部分檢測圖片,如圖5所示。
4 結論
本文設計并實現(xiàn)了對YOLOv5s模型的輕量化,通過添加注意力機制的同時刪除最大的特征圖層進行實驗。旨在減少對是否佩戴口罩的識別時間,提升檢測效率,同時降低對硬件環(huán)境的需求。
實驗結果表明,SE通道注意力機制在保證識別速度基本不變的情況下,仍能夠相對較好地提升圖像的識別準確率。在多目標的問題上,也能夠更加準確地識別目標。在未來的口罩識別研究中,使用該算法可以有效地提高計算速率。
參考文獻:
[1] 牛作東,覃濤,李捍東,等.改進RetinaFace的自然場景口罩佩戴檢測算法[J].計算機工程與應用,2020,56(12):1-7.
[2] 王藝皓,丁洪偉,李波,等.復雜場景下基于改進YOLOv3的口罩佩戴檢測算法[J].計算機工程,2020,46(11):12-22.
[3] 李小波,李陽貴,郭寧,等.融合注意力機制的YOLOv5口罩檢測算法[J].圖學學報,2023,44(1):16-25.
[4] GIRSHICK R,DONAHUE J,DARRELL T,et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.June 23-28,2014.Columbus,OH,USA.IEEE,2014:580-587.
[5] GIRSHICK R.Fast R-CNN[C]//2015 IEEE International Conference on Computer Vision (ICCV).December 7-13,2015.Santiago,Chile.IEEE,2015:1440-1448.
[6] REN S Q,HE K M,GIRSHICK R,et al.Faster R-CNN:towards real-time object detection with region proposal networks[C]//Proceedings of the 28th International Conference on Neural Information Processing Systems - Volume 1.December 7 - 12,2015,Montreal,Canada.ACM,2015:91-99.
[7] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once:unified,real-time object detection[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 27-30,2016.Las Vegas,NV,USA.IEEE,2016:779-788.
[8] LIU W,ANGUELOV D,ERHAN D,et al.SSD:single shot MultiBox detector[C]//European Conference on Computer Vision.Cham:Springer,2016:21-37.
[9] HU J,SHEN L,SUN G.Squeeze-and-excitation networks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.June 18-23,2018.Salt Lake City,UT.IEEE,2018:7132-7141.
【通聯(lián)編輯:唐一東】