唐浩博 曹領(lǐng)
關(guān)鍵詞:YOLOv5s;口罩識別;深度學(xué)習(xí)
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2024)03-0032-04
0 引言
人工檢查是否佩戴口罩存在一定的局限性,并且效率較低,因此對佩戴口罩進(jìn)行自動實時識別是更好地解決問題的方法,尤其在工業(yè)生產(chǎn)、醫(yī)療健康等領(lǐng)域應(yīng)用較為廣泛。結(jié)合目前計算機視覺和人工智能的圖像處理及目標(biāo)檢測技術(shù)已廣泛應(yīng)用于各種圖像及視頻場景。計算機視覺技術(shù)也愈發(fā)成熟,越來越多的領(lǐng)域都在引入智能化,智能口罩佩戴檢測也應(yīng)該在各領(lǐng)域中發(fā)揮它的作用。
本文展示的是基于 YOLOv5s 改進(jìn)的戴口罩實時檢測系統(tǒng),能夠?qū)崿F(xiàn)圖片檢測,實時檢測。以深度學(xué)習(xí)為基礎(chǔ)的目標(biāo)檢測是目前比較主流的一種目標(biāo)檢測計劃?,F(xiàn)階段主流優(yōu)秀的目標(biāo)檢測算法主要分為兩類,一類是基于 Region Proposal 的 Two stage 目標(biāo)檢測算法,雙階段目標(biāo)檢測算法過程主要將檢測分為生成候選框和檢測識別兩個過程,并提取生成的候選框的信息。它利用卷積神經(jīng)網(wǎng)絡(luò)完成目標(biāo)檢測和目標(biāo)識別,主流的網(wǎng)絡(luò)模型有 SPPNET、Fast RCNN、Faster RCNN、R-FCN等。第二類是以回歸問題為基礎(chǔ)的 One Stage 目標(biāo)檢測算法,將全過程統(tǒng)一,同時使用具有結(jié)構(gòu)簡單、運算速度快等優(yōu)點的 CNN 進(jìn)行特征提取和回歸,是單一階段目標(biāo)檢測算法過程。典型的網(wǎng)絡(luò)模式有 YOLO、SSD、DSSD、Cornernet 等。正是由于 One stage 和 Two stage 這兩種算法的差異,使得兩者在性能上也存在差異,前者在檢測精度和檢測定位精度上占據(jù)優(yōu)勢,后者則在檢測速度上占據(jù)優(yōu)勢。
1 項目的設(shè)計與實現(xiàn)
1.1 YOLOv5網(wǎng)絡(luò)框架的搭建
YOLOV5 根據(jù)其網(wǎng)絡(luò)框架深度和寬度主要分為YOLOv5s、YOLOV5M、YOLOV5L、YOLOV5X 四個版本,而 YOLOv5s是這幾個版本中寬度最小、深度最小的特征圖網(wǎng)絡(luò),因此它有更快的檢測速度,更適用于小型嵌入式系統(tǒng)。不同網(wǎng)絡(luò)框架的對比如表1所示:
YOLOV5 的模型結(jié)構(gòu)主要分為4個部分,分別是Input 輸入端、Backbone Basic Network、Neck Network 和 Prediction 輸出層。
1) Input輸入端可以對輸入的圖像進(jìn)行自適應(yīng)圖片縮放、數(shù)據(jù)增強、錨框等處理后將結(jié)果輸入back?bone基礎(chǔ)網(wǎng)絡(luò)。
2) Backbone Basic Network 包含 CSP 架構(gòu)與FOCUS架構(gòu)。其中在 YOLOV5 中的 FOCUS 模塊,是圖片進(jìn)入 Backbone 之前的切片操作。YOLOv5s 的CSP 結(jié)構(gòu)設(shè)計有2種。
3) Neck Network 由csp2_x 網(wǎng)絡(luò)來代替普通的卷積網(wǎng)絡(luò),使網(wǎng)絡(luò)特征融合的能力得到了加強。
4) Prediction 輸出層包括 Bounding Box Regres?sion Loss 和 NMS。其中的 GIOU_LOOSS 被用在了YOLOv5 中,用于制作 Bounding Box 的損失函數(shù)。在目標(biāo)檢測的后處理過程中,使用加權(quán) NMS 的方式來篩選許多目標(biāo)框。YOLOv5s的網(wǎng)絡(luò)架構(gòu)如圖1所示。
3) 在預(yù)測中,使用非最大抑制(NMS)的加權(quán)方法NMS,利用 GeneralizedIoU(GioU)Loss作為 BBOX 的損失函數(shù)。如式(1) 所示。
1.2 數(shù)據(jù)集的制作
數(shù)據(jù)集包含 4 000 張不同場景下佩戴面具和未佩戴面具的人面圖片,通過旋轉(zhuǎn)裁剪這些圖片來實現(xiàn)數(shù)據(jù)集的增強后,使用 Labelimg 對圖片進(jìn)行標(biāo)記,將人面的位置標(biāo)注在圖片中的長方形框標(biāo)上,并將人面的類別標(biāo)注為佩戴口罩和未佩戴口罩,之后標(biāo)注為 YOLO 格式(YOLO 格式),這里將數(shù)據(jù)集按照 8:1:1 來對訓(xùn)練集(train. txt)、測試集(test. txt)和驗證集(val. txt)進(jìn)行劃分。訓(xùn)練集用來訓(xùn)練模型以及確定參數(shù);而驗證集是為了確定超參數(shù)的網(wǎng)絡(luò)結(jié)構(gòu)和調(diào)整模型而設(shè)計的。
1.3 模型的訓(xùn)練與環(huán)境的配置
本次實驗在Windows操作系統(tǒng)下完成,采用Py?Torch 的框架,Python 3.8 的版本環(huán)境,GPU 型號為RTX3080。
2 模型檢測的改進(jìn)
2.1 目標(biāo)檢測算法的改進(jìn)
早期的對象調(diào)查都是以滑動窗口的方式產(chǎn)生目標(biāo)建議框,本質(zhì)上與窮舉法并無差異。而 Fastr-CNN的出現(xiàn),解決了冗余計算這一棘手問題。Fastr-CNN 增加了簡化的SPP 層,使其培訓(xùn)和測試過程融為一體。SPP 層架構(gòu)如圖 2 所示。
Fastr-CNN 使用 SelectiveSearch 生成目標(biāo)候選框架,但速度仍無法達(dá)到實時要求。FasterR-CNN 則直接利用 RPN(注冊網(wǎng)絡(luò))網(wǎng)絡(luò)生成目標(biāo)候選框架。RPN 輸入任意像素點的 RAW 影像,輸出若干個對應(yīng)目標(biāo)坐標(biāo)資訊與信心的矩形區(qū)域。從 R-CNN 到 FasterR-CNN,是將傳統(tǒng)檢測的3 步整合到同一深度網(wǎng)絡(luò)模型中的一個合并過程。R-CNN 原則框架如圖 3 所示:
基于回歸算法的 YOLO 和 SSD 檢測模型,讓檢測領(lǐng)域再上一個新臺階。其中,以 YOLO 和 SSD 兩種方式為代表的檢測方式真正達(dá)到了立竿見影的效果。
2.2 對于YOLOv5本身檢測的改進(jìn)
1) 自適應(yīng)圖片縮放改進(jìn)。YOLOv5s代碼中對自適應(yīng)圖片縮放進(jìn)行改進(jìn),使得YOLOv5的檢測速度能有所提升。
2) 圖片素材強化。抓取的圖片進(jìn)行素材強化,擴(kuò)大圖片的數(shù)量如旋轉(zhuǎn)裁剪圖片,增加無目標(biāo)背景圖片清晰的高速網(wǎng)絡(luò),通過背景和目標(biāo)的對比,區(qū)分出圖片中微小的物體,什么是無目標(biāo)背景,什么是目標(biāo)。
3) 減少網(wǎng)絡(luò)層數(shù)。避免多層卷積核混合后分不清多個小目標(biāo)的情況發(fā)生。在圖像縮放的過程中盡可能少地添加黑邊,來提高模型的推理速度。步長適當(dāng)減小,避免過多的提取小目標(biāo)像素點。
4) 將圖片切分為多張圖片,對每張圖片進(jìn)行單獨檢測然后匯總,可以增強對多目標(biāo)的檢測。
3 應(yīng)用場景及意義
智能口罩檢測系統(tǒng)在于節(jié)省人力、提高效率、智能提醒、信息化監(jiān)控。在以下場景中有重要作用:
1) 工業(yè)領(lǐng)域。用于保護(hù)勞動者呼吸系統(tǒng),防止其吸入有害粉塵、煙霧、氣體等顆粒物,減少工作場所的安全隱患。舉例如下:
粉塵口罩:用于防止吸入粉塵、花粉、灰塵、煤塵等。
化學(xué)防護(hù)口罩:用于防止工人吸入有害氣體和蒸汽。
2) 醫(yī)療領(lǐng)域。醫(yī)務(wù)人員在醫(yī)療過程中需要佩戴口罩,而智能檢測口罩可以幫助醫(yī)院檢測醫(yī)務(wù)人員佩戴口罩的情況,保證醫(yī)務(wù)人員的防護(hù)措施達(dá)標(biāo),起到保護(hù)醫(yī)務(wù)人員和患者身體健康的作用。舉例如下:
預(yù)防醫(yī)務(wù)人員感染:醫(yī)務(wù)人員容易接觸病人的體液、血液等分泌物,在診治病人呼吸道感染性疾病及手術(shù)過程中,戴口罩可有效預(yù)防病人呼吸道感染。防止患者感染疾病的發(fā)生。在醫(yī)院中,患者一般要長時間待在醫(yī)療環(huán)境里,戴上口罩可以有效地防止患者呼吸道感染傳染給他人,包括醫(yī)務(wù)人員和其他患者。
保護(hù)手術(shù)區(qū)域:在手術(shù)期間,醫(yī)生需要保持一定的清潔度和衛(wèi)生,佩戴口罩可以防止口腔和鼻腔的細(xì)菌進(jìn)入手術(shù)部位,從而避免手術(shù)感染。
防止病毒傳播:在面對一些高度傳染性病毒,例如SARS、禽流感、新冠肺炎等時,佩戴口罩,可以在一定程度上防止醫(yī)務(wù)人員和患者感染。
3) 交通運輸領(lǐng)域。盡管疫情的情況已經(jīng)好轉(zhuǎn),我們已經(jīng)不用時時刻刻佩戴口罩,但在一些特殊場合仍需要佩戴口罩,特別是現(xiàn)在“二陽”與甲流的特殊時期。
綜上,口罩檢測依然有十分重要的作用。此系統(tǒng)能夠?qū)崟r監(jiān)測畫面中的人臉,并將其分為:戴口罩、不戴口罩兩類,并且在具體場景中,可以有相應(yīng)作用,其特點是靈活運用,適用面較廣。
4 性能分析及測試結(jié)果
4.1 混淆矩陣
混淆矩陣是將分類問題的預(yù)測結(jié)果進(jìn)行匯總,說明在預(yù)測時,哪個部分會被分類模型所混淆。它不僅可以讓我們了解分類模型中所犯的錯誤和正在發(fā)生的錯誤是怎樣的類型,同時也克服了分類精確度所造成的限制(regence)。還可以得到辨識度的信息,該模型口罩的辨識度達(dá)到了0.86,人的辨識度在0.97。如表2、圖4所示。
4.2 測試數(shù)據(jù)
在對數(shù)據(jù)進(jìn)行訓(xùn)練后,準(zhǔn)確度(Precision) 、平均識別精度均值(MAP)、召回率(Recall)等參考量可以較直觀地判斷出所采用的模型對圖片的辨識度。TP:分類器預(yù)測結(jié)果為正樣本,實際也為正樣本,即正樣本被正確識別的數(shù)量;FP:分類器預(yù)測結(jié)果為正樣本,實際為負(fù)樣本,即誤報的負(fù)樣本數(shù)量;FN:分類器預(yù)測結(jié)果為負(fù)樣本,實際為正樣本,即漏報的正樣本數(shù)量。
4.3 檢測結(jié)果
針對場景中的不同需求,本次設(shè)計涵蓋了圖片檢測、視頻檢測和實時檢測三大功能,且可以實現(xiàn)單一目標(biāo)檢測、多目標(biāo)檢測、較遠(yuǎn)距離中小目標(biāo)的檢測。檢測實例如圖6所示。
5 結(jié)束語
本設(shè)計針對口罩佩戴檢測的問題以及提高口罩佩戴檢測的效率,提出了一種基于YOLOv5s的口罩佩戴檢測系統(tǒng)。本系統(tǒng)提出一種改進(jìn)的YOLOv5s算法,使用數(shù)據(jù)集相關(guān)數(shù)據(jù)對模型進(jìn)行訓(xùn)練。訓(xùn)練結(jié)果達(dá)到了預(yù)期的精度,模型的檢測精度和速度同時均衡,達(dá)到了預(yù)期規(guī)定的實時性檢測目標(biāo),同時,模型的檢測精度和速度也達(dá)到了預(yù)期。此系統(tǒng)滿足嵌入式終端設(shè)備的部署要求,希望在今后的學(xué)習(xí)中,在保證模型檢測精度和速度均衡的前提下,進(jìn)一步提高模型的精度,同時進(jìn)一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)、各種參數(shù),使算法更出色。
【通聯(lián)編輯:唐一東】