?

基于改進YOLOv5 的口罩佩戴檢測算法研究

2024-01-19 07:03布安旭陳月乃
惠州學院學報 2023年6期
關鍵詞:口罩準確率目標

布安旭,馬 馳,胡 輝,陳月乃,楊 樂

(1.遼寧科技大學 計算機與軟件工程學院,遼寧 鞍山 114051;2.惠州學院 計算機科學與工程學院,廣東 惠州 516007)

自疫情暴發以來,我國受到了一輪又一輪的疫情沖擊,為了抑制疫情的蔓延,降低疫情對經濟發展的影響,各地政府頒布了相應的疫情防范政策,要求大家在人多的地方做好防范措施戴好口罩,這些政策能有效抑制疫情的蔓延。在此環境下如果總是讓防控人員去提醒大家的話,這不僅會加大各方面的開支,且近距離接觸待檢測人員也存在一定的傳播風險。因此,構建口罩佩戴檢測系統對日常防護具有重要的現實意義。

口罩佩戴檢測實際上也是目標檢測[1],屬于計算機視覺領域中的一個分支,主要分為2類,分別是基于傳統的方法和基于深度學習的方法。深度學習在計算機視覺領域表現出了良好的性能,當前主流的目標檢測算法進行特征提?。?]主要是通過卷積神經網絡來實現,例如VGGNet[3]、ResNet[4]、DenseNet[5]等。這些目標檢測算法主要分為單級式和兩級式;單級式(onestage)包括SSD[6]、YOLO[7-8]等,它們的優勢是檢測速度快,缺點是精度略差。兩級式(two-stage)包括RCNN[9]等算法,這種算法的優點是精度較高,缺點是可能出現延遲的情況。而隨著YOLOv5 的出現,由于其良好的性能,很快成為了研究熱點。談世磊等[10]在YOLOv5的基礎上,對原始數據集進行拓展,通過圖像預處理得到3 萬張圖像用來進行訓練,從而提升了檢測的準確率。彭成等[11]在YOLOv5 的基礎上進行改進,提出了輕量化算法,降低了網絡結構中的參數,進而減少了計算量,并且和原網絡模型相比精度基本沒有損失。胡均平等[12]通過對YOLOv5骨干網絡最后一層的空間金字塔池化結構進行改進來提高模型對目標的特征提取能力,同時提出了自適應特征融合方法來提高網絡對不同層級特征的融合能力。

在相關研究的基礎上,以當前流行的目標檢測模型YOLOv5 作為基礎,選擇CIoU[16]作為損失函數,然后進行改進。本文改進的方法會隨機抽取人臉數據,然后對人臉數據進行校對、標注,模型在訓練之后,不僅具有更高的準確率,還有較好地實時性。

1 YOLOv5算法簡介

圖1 展示了YOLOv5 的整體網絡結構。一般目標檢測算法分為:輸入端、基準網絡、Neck 網絡、Head 輸出端4 個部分。YOLOv5 分為4 種類型,分別是:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,這里主要研究YOLOv5s。

圖1 YOLOv5整體網絡結構

YOLOv5 屬于單階段目標檢測算法,它在YOLOv4的基礎上進行了優化,優化后算法的性能得到了較大提高。主要的優化部分如下:

(1)輸入端:在對模型進行訓練的時候,先對數據處理做了優化,比如進行Mosaic 數據增強以增強識別能力;

(2)基準網絡:結合了別的檢測模型中的思想,例如Focus 網絡中的下采樣與CSP 網絡中降低大量的推理計算;

(3)Neck 網絡:目標檢測網絡在BackBone 與最后的Head 輸出層一般會添加一些層,Yolov5 中添加了FPN+PAN結構;

在把輸入圖像輸送到模型中的時候,一般會對輸入圖像進行圖像預處理操作,預處理的目的是將輸入的圖像大小變換成模型的輸入大小,同時對輸入的圖像做歸一化處理。在訓練模型的時候應用Mosaic數據增強來加快網絡收斂以及提高算法的精度。另外CSP結構可以在一定程度上決定網絡的深度,在YOLOv5網絡中有2 個CSP 結構,分別記為CSP_1 和CSP_2,其中CSP_1 應用了2 個殘差網絡結構,所以被標記為CSP_1_2ReNet;另外的CSP_2則采用了2個卷積,所以標記為CSP_2_2Conv,此時模型的深度會逐漸增加,而模型的特征提取和特征融合性能也會逐漸得到加強。

2 基于YOLOv5的改進算法

對YOLOv5的改進主要包括3個方面,分別是對數據處理、特征增強網絡和損失函數的改進。

2.1 數據增強

本算法在輸入的時候采用Mosaic 數據增強、自適應錨框計算、自適應圖片縮放等數據處理操作。一般在對模型進行訓練之前會提前設置好基礎錨框,在此錨框基礎上,模型在經過訓練后會得到一個預測框,然后將其和真實框對比,之后通過計算兩者的差值對網絡中的參數進行迭代,并進行反向更新。Mosaic 數據增強是一種比較經典的數據增強方法,包括了隨機排布、隨機縮放、隨機裁減等常見的通用數據處理方式,圖2 展示了處理過程。本模型在訓練時,采用將自適應圖片縮放與Mosaic 數據增強進行融合的方法,通過融合處理不僅可以給圖片增添一些灰邊,還可以對初始圖片進行拼接操作,之后把經過處理后的圖片送進網絡中開始訓練。

圖2 Mosaic處理流程

2.2 特征增強網絡改進

原始的YOLOv5 模型采用了3 種大小的Feature Diagram 對大小各異的目標進行檢測,如圖3。在把圖像輸送到網絡的時候,會對其進行8、16、32倍下采樣,然后得到3種尺寸各異的Feature Diagram,接著把它傳入到特征融合網絡中。根據FPN[13]的網絡特點,特征圖在通過多次卷積操作以后會包含更多的語義信息,但是經過了多次卷積之后可能會導致目標中關鍵信息的缺失,從而影響目標檢測的準確率;而通過多次淺層卷積后得到的特征圖盡管具有較少的語義信息,不過獲取到的目標位置信息會更加準確。

圖3 YOLOv5特征提取模型

本算法在YOLOv5的基礎上,額外添加了一個4倍下采樣,圖4 為改進后的特征提取模型。輸入圖像通過4倍下采樣處理后,會融合到特征融合網絡中,從而更新特征圖的大小,而該感受野較小的特征圖則包含了較為豐富的信息,能夠提升目標檢測的準確率。

圖4 改進的特征提取模型

2.3 損失函數改進

IoU[14]主要用來評價目標檢測的性能,它通過計算真實框和預測框之間的交集和并集的值來對目標檢測模型的檢測效果進行評估。GIoU[15]在IoU 的基礎上添加了懲罰項,然后可以精確地衡量兩者之間的相交情況。它們的計算如式(1)、(2):

公式中A代表檢測框,B代表真實框,C代表最小的外接矩形框。GIoU 和最初的IoU 有所差異,它不僅注重兩者之間的重疊部分,還注重其他非重疊部分,所以GIoU相較于IoU可以真實反映出預測框和真實框之間的重合度,然而GIoU的缺點是它僅僅考慮了二者之間的重疊區域,而沒有考慮別的因素,因此對于目標框的回歸問題則無法較好地描述。

本算法在通過實驗測試后,最后采用效果較好的CIOU Loss[16],把CIOU Loss 用作回歸的損失函數,這樣預測框將更符合真實框,CIOU Loss計算公式如下:

上式在計算梯度的時候α并不參與,只作為平衡參數。在圖5中,c代表最小外接矩形的對角線距離,d=ρ(b,bgt)代表了真實框中心點和預測框中心點之間的距離,其中b代表了真實框的中心點,bgt代表了預測框的中心點。CIoU[16]從整體上考慮了二者之間的重疊區域等因素,從而使模型的訓練過程更加穩定。

圖5 預測框與真實框

3 實驗結果及分析

3.1 實驗環境

本實驗的環境配置如下:Intel i5-10400F 處理器,GeForce RTX2080 GPU,cuda10.1,cudnn7.6.3,16G 內存,CentOS 7.0操作系統,pytorch1.8,python3.7。

3.2 數據集

本文所用的數據集為MAFA 和WIDER Face 以及網絡上搜集的圖片在經過篩選后組成的數據集,其中MAFA 是一個面部遮擋數據集,WIDER Face 是一個人臉檢測數據集;然后從數據集中篩選出沒佩戴口罩和已佩戴口罩的圖片,為了更好地模擬實際生活場景。最后篩選出的這些圖片包括了許多實際生活中的口罩佩戴情況;然后將篩選出來的圖片分為face-mask 和face 2類,前者代表戴了口罩,后者代表沒戴口罩;篩選得到的圖片共有7 640 張,其中80%作為訓練集,20%作為測試集。

本實驗采用的數據集需要預處理,經過預處理后的數據集需要用標注工具對其進行類別標注,包括face-mask和face 2種類別,標注示例如圖6。

圖6 LabelImg標注圖片示例

3.3 結果分析

在模型訓練的過程中,評估口罩佩戴檢測算法的好壞通常要用到相應的評價指標。其中許多評價指標都由混淆矩陣(confusion matrix)計算得到。本實驗對模型評估所用的評價指標包括:準確率(precision)、召回率(recall)、平均精度均值(mAP)以及幀率(每秒檢測圖片幀數)。

準確率指的是預測為正的樣本所占的比例,它主要用來判斷預測結果的準確性,公式(6)為準確率的具體計算方式:

召回率指的是所有樣本中正例被準確預測的比例,公式(7)為具體的計算方式:

mAP 由AP 求均值得到,用來衡量檢測精度,mAP值越大準確率越高,公式(8)、(9)分別為AP和mAP的具體計算方式:

幀率:表示模型每秒檢測的圖片數量,主要用來衡量模型的檢測速率,用FPS表示。

經過實驗后,本文基于YOLOv5 改進的口罩佩戴實時檢測結果的P-R 曲線圖如圖7,其中縱軸代表準確率,橫軸代表召回率。

圖7 改進后算法的P-R曲線圖

訓練過程中各項指標的變化如圖8。

圖8 模型評價指標變化曲線圖

從圖8 的(c)、(d)中可以看出precision 可達到0.986,recall 可達到0.989。圖9 展示了檢測效果,可以看到本算法對人員口罩佩戴情況能做出準確的檢測。

圖9 改進后的算法檢測效果

接著再次驗證基于YOLOv5 改進算法的有效性,將改進的算法與其他算法進行比較,結果如表1。

表1 本文改進算法與其他算法性能比較

從表1可以看出,基于YOLOv5改進的口罩佩戴檢測算法,相較于通用檢測算法SSD,face_mask 提高了25.43%;對于專門用來進行人臉定位的單階段檢測算法RetinaFace,face_mask 提高了18.62%;在YOLOv5 的基礎上,本算法face_mask 提高了9.79%,face 提高了9.22%,mAP提高了8.33%,本算法的FPS和YOLOv5差不多,但仍能滿足實時檢測速率的要求。

4 結語

本文在YOLOv5 的基礎上進行改進,完成了對口罩佩戴實時檢測的任務,本文從第二章節中的3 個方面進行了改進,改進后的算法在經過預處理的數據集上進行驗證,實驗表明,相比其他算法本文的改進算法有著明顯優勢,充分驗證了本算法的有效性,同時也可應用在實際的生活場景中。

猜你喜歡
口罩準確率目標
乳腺超聲檢查診斷乳腺腫瘤的特異度及準確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
2015—2017 年寧夏各天氣預報參考產品質量檢驗分析
戴口罩的苦與樂
因為一個口罩,我決定離婚了
霧霾口罩
高速公路車牌識別標識站準確率驗證法
中學英語之友·上(2008年2期)2008-04-01
中學英語之友·上(2008年2期)2008-04-01
中學英語之友·上(2008年1期)2008-03-20
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合