

摘 要:針對新冠疫情期間人工檢查行人口罩佩戴情況效率低下的問題,提出了基于YOLOv5網(wǎng)絡(luò)來實現(xiàn)對行人口罩佩戴情況的實時檢測算法。收集了2000張佩戴口罩及未佩戴口罩行人圖片作為數(shù)據(jù)集,先基于COCO數(shù)據(jù)集的權(quán)重數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,提高訓(xùn)練的速度和檢測;再將數(shù)據(jù)集導(dǎo)入YOLOv5模型中進(jìn)行迭代訓(xùn)練及測試,將所獲得的最優(yōu)權(quán)重文件對測試集進(jìn)行驗證,并把訓(xùn)練結(jié)果可視化展示。實驗結(jié)果表明,該算法在行人密集的情況下實時檢測速度也能達(dá)到62.5FPS的高準(zhǔn)確率,滿足了行人口罩佩戴實時檢測的要求。
關(guān)鍵詞:YOLOv5;實時檢測;COCO;最優(yōu)權(quán)重
中圖分類號:TP301 文獻(xiàn)標(biāo)識碼:A 文章編號:2095-414X(2023)02-0041-04
近些年由于硬件算力的發(fā)展迅速和人工智能算法的創(chuàng)新優(yōu)化,人工智能技術(shù)被越來越多的應(yīng)用到了各種行業(yè)中,極大地提高了生產(chǎn)力,給人們的生產(chǎn)生活帶來了更多的便利。目前,人工智能應(yīng)用發(fā)展比較顯著的領(lǐng)域有計算機(jī)視覺和自然語言處理。目標(biāo)檢測是計算機(jī)視覺算法的主要發(fā)展方向之一,在航天航空探測、產(chǎn)品質(zhì)檢、公共安全等領(lǐng)域應(yīng)用廣泛。計算機(jī)視覺算法相較于傳統(tǒng)目標(biāo)檢測方法在目標(biāo)眾多且相互遮擋等方面效果更好[1-3]。
在新冠疫情發(fā)生以來,人員密集的場所疫情傳播快,通過在公共場所戴口罩,能有效抑制疫情的傳播。但是在人流量巨大的場所,主要還是靠人工來檢查口罩的佩戴情況,該方式效率低,容易漏查,因此本文提出了一種基于YOLOv5的目標(biāo)檢測算法,用來檢測行人的口罩佩戴情況,滿足全天候、高效率檢測的需求。
國內(nèi)目前有部分學(xué)者針對口罩佩戴檢測進(jìn)行了研究。薄景文[4]等使用ShuffleNetv2替換YOLOv3原本的特征提取網(wǎng)絡(luò),以此來加快訓(xùn)練效率,并將SKNet注意力機(jī)制引入到特征融合網(wǎng)絡(luò)去,檢測速度提高了34FPS。王藝皓[5]等將改進(jìn)的空間金字塔池化結(jié)構(gòu)和Clou損失函數(shù)引入到Y(jié)OLO算法里去,大幅提升了檢測的準(zhǔn)確率,但同時對計算機(jī)硬件及數(shù)據(jù)集的數(shù)量要求也大幅度提升。鑒于上述學(xué)者的研究和啟示,提出使用YOLOv5的網(wǎng)絡(luò)來進(jìn)行口罩佩戴檢測,本文選擇了該網(wǎng)絡(luò)中的YOLOv5s模型來進(jìn)行研究。相較于YOLOv5中的其他三個模型,YOLOv5s最為輕量級,其生成的最佳權(quán)重數(shù)據(jù)最小,訓(xùn)練效率更高,對硬件要求較低,實時處理能力強(qiáng),最快每秒可以檢測140張圖像,較有利于推廣。
1 "YOLOv5模型的原理與簡介
YOLOv5(You Only Look Once)是由UitralyticsLLC公司于2020年5月發(fā)布的一種目標(biāo)檢測算法。相較于YOLOv4而言,YOLOv5的結(jié)構(gòu)更加輕巧,在檢測平均精度降低不多的基礎(chǔ)上,YOLOv5s均值權(quán)重文件更小。
YOLOv5的模型結(jié)構(gòu)主要有四大部分組成,分別為input端、Backbone、Neck、Prediction。
1.1 input端
主要包括Mosaic數(shù)據(jù)增強(qiáng)、圖片尺寸處理以及自適應(yīng)錨框計算三部分。其采用的Mosaic數(shù)據(jù)增強(qiáng)的方式和YOLOv4一致,但在錨框上對多個圖像進(jìn)行隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接到input端,使得其在小目標(biāo)檢測上的能力優(yōu)于YOLOv4。在YOLO模型訓(xùn)練前,都需要設(shè)置初始長寬的錨框,而本文采用的圖片場景復(fù)雜、尺寸大小不一致,使得自適應(yīng)錨框顯得尤為重要。在進(jìn)行模型訓(xùn)練時,YOLOv5會在初始錨框的基礎(chǔ)上輸出預(yù)測框,并使之與真實框(GroundTruth)進(jìn)行對比,計算兩者差值,再反向更新,迭代網(wǎng)絡(luò)參數(shù),從而自適應(yīng)獲取不同訓(xùn)練集中的最佳錨框值。
1.2 Backbone層
包含F(xiàn)ocus和CSP結(jié)構(gòu)。Focus結(jié)構(gòu)是YOLOv5新增的[6],主要是對圖片進(jìn)行切片操作。如圖1所示,F(xiàn)ocus結(jié)構(gòu)具體操作是在圖片中間隔一個像素取一個像素的值,由此便可得4張包含信息相似的圖片。此時輸入通道增大了4倍,即有原本的RGB三通道變成了12通道,最后再通過一次卷積操作,便可得到32通道的特征圖。
1.3 Neck層
采用和YOLOv4一樣的FPN+PAN結(jié)構(gòu),F(xiàn)PN使用的是自上而下的模式,將高層特征往下傳遞下來。其中,底層特征無法對高層特征產(chǎn)生影響。FPN主要是利用融合高、低層特征來提升對小目標(biāo)的檢測效果。
1.4 Prediction層
主要包括Bounding box和非極大值抑制(NMS),采用GIOU_Loss做Bounding box的損失函數(shù),比起YOLOv4而言,它收斂速度更快,并解決了IOU_Loss的邊界框不重合時的問題。NMS是針對出現(xiàn)的目標(biāo)框較多時進(jìn)行篩選的,通過加權(quán)將加權(quán)值較小的輸出框屏蔽掉,顯示最優(yōu)目標(biāo)框。
2 "數(shù)據(jù)集歸一化與模型訓(xùn)練
2.1 數(shù)據(jù)預(yù)處理
口罩佩戴數(shù)據(jù)集的樣本主要取自于互聯(lián)網(wǎng)上的公開圖片,其主要來源為百度圖庫及微博等平臺。本文主要收集佩戴口罩和未佩戴口罩兩類行人[12],總共為2000張。該數(shù)據(jù)集圖片采用LabelImg軟件進(jìn)行標(biāo)注,采用yolo格式保存,標(biāo)注好的文件以txt格式保存。其中,佩戴口罩的被標(biāo)記為mask,未佩戴口罩的被標(biāo)記為face。標(biāo)記文檔文件中分別保存了類別(以0、1分別代表mask、face)、標(biāo)記框的中心點的x和y坐標(biāo)、標(biāo)記框?qū)挾葁和高度h,其求解公式如下:
x = "1/i((x_min "+ "x_max)/2)(1)
y = "1/j "( (y_min " + "y_max)/2)(2)
w = "(x_max-x_min)/i(3)
h = "(y_max-y_min)/j(4)
本文將數(shù)據(jù)集以3 : 1 : 1劃分為訓(xùn)練集、驗證集、測試集,如表1所示。
實驗環(huán)境使用window11操作系統(tǒng),基于pytorch框架,使用NVIDIA GeForce RTX 3060 Laptop GPU進(jìn)行運(yùn)算。具體配置如表2所示。
2.2 模型的訓(xùn)練
遷移學(xué)習(xí)是計算機(jī)視覺中常用的優(yōu)化方法,可以節(jié)省訓(xùn)練時間,獲取更高精度的模型。其原理是先在一個通用數(shù)據(jù)集上進(jìn)行訓(xùn)練,產(chǎn)生一個基礎(chǔ)通用的權(quán)重數(shù)據(jù)(即預(yù)訓(xùn)練模型),然后將其調(diào)整或遷移到目標(biāo)網(wǎng)絡(luò)去,而非從零開始訓(xùn)練。當(dāng)數(shù)據(jù)集樣本數(shù)量較少時[11],模型不容易擬合或是精度(precision)不高,這時預(yù)訓(xùn)練模型便可以加快擬合和提高預(yù)測精度。本文采用的是在COCO上訓(xùn)練好的預(yù)訓(xùn)練模型來進(jìn)行遷移學(xué)習(xí)。在模型訓(xùn)練階段,本文設(shè)置epochs(迭代次數(shù))為100,初始learning rate(學(xué)習(xí)率)為0.01,batch size設(shè)置為4,權(quán)重衰減系數(shù)為0.005,使用cosine annealing(余弦退火),動態(tài)降低學(xué)習(xí)率,余弦退火公式見公式(5)。本文采用giou_loss損失函數(shù)[7],如公式(6)、(7)所示。
η_t "= η_min^i "+ "1/2 "(η_max^i-η_min^i)(1 +cos(T_cur/T_i "π))
(5)
iou= "I/(A^p "+ A^g- I)(6)
giou = iou -(A^c- U)/A^c (7)
3 "實驗結(jié)果及數(shù)據(jù)分析
經(jīng)實驗訓(xùn)練得到了兩個算法模型,分別是表現(xiàn)最佳的算法模型(best)和最終的算法模型(last),通常選取在驗證集表現(xiàn)最佳算法模型(best)作為實驗結(jié)果。
該算法模型的Params(參數(shù)量)數(shù)量為701萬個,代表了算法模型的空間復(fù)雜度[10];FLOPs(浮點運(yùn)算量)為15.8G,代表了算法模型的時間復(fù)雜度。本文將實驗結(jié)果可視化展示,如圖2所示。
圖2中第一個統(tǒng)計圖(Recall — Confidence曲線)表示召回率(Recall)與置信度(Confidence)的關(guān)系。第三個統(tǒng)計圖(Precision — Confidence曲線)表示精確率(precision)與置信度的關(guān)系。第二個統(tǒng)計圖(F1 — Confidence曲線)表示F1-score與置信度之間的關(guān)系,是精確率和召回率的調(diào)和平均。第四個統(tǒng)計圖(Precision — Recall)表示精確率與召回率之間的關(guān)系,即PR曲線。PR曲線與坐標(biāo)軸圍成的面積為平均識別精度AP。以上參數(shù)的計算關(guān)系如下:
precious = "TP/(TP + TN)(8)
recall = "TP/(TP + FN)(9)
accuracy = "(TP + TN)/(TP + TN +FP + FN)(10)
AP = "(∑?accuracy)/(N )(11)
F1 = "(2 ? precision ? recall)/(precision + recall)(12)
將訓(xùn)練好的模型導(dǎo)入到程序中,檢測圖片結(jié)果如圖3所示,紅色目標(biāo)框為佩戴了口罩,粉色目標(biāo)框為未佩戴口罩,目標(biāo)框上方的數(shù)值為對應(yīng)標(biāo)簽的置信度。該算法模型的檢測速度如圖4所示,調(diào)用網(wǎng)絡(luò)攝像頭,本文所使用的攝像頭輸入分辨率為480 × 640,視頻實時輸入速率為30幀/秒,而算法模型處理單幀速率為0.015秒至0.017秒,即處理速度在62.5幀/秒,明顯快于網(wǎng)絡(luò)攝像頭輸入視頻的速度。參考文獻(xiàn)[8]的實時檢測速度為5幀/秒,參考文獻(xiàn)[9]的實時檢測速度為35幀/秒,參考文獻(xiàn)[10]的實時檢測速度為18.3幀/秒。由以上可見,本文所提算法,存在一定的優(yōu)勢,并且滿足口罩佩戴實時檢測的要求。
4 "結(jié)束語
為了提高口罩佩戴檢測的準(zhǔn)確性和效率,本文提出了一種基于YOLOv5s模型,通過COCO數(shù)據(jù)集進(jìn)行預(yù)訓(xùn)練,將預(yù)訓(xùn)練得到的權(quán)重遷移到目標(biāo)網(wǎng)絡(luò)中訓(xùn)練,避免了從零開始訓(xùn)練。當(dāng)數(shù)據(jù)集不夠大時,解決了權(quán)值太過隨機(jī)、模型不容易擬合、特征效果提取不明顯等問題,同時減小了對硬件的消耗及加快了訓(xùn)練時間。
通過YOLOv5s網(wǎng)絡(luò)訓(xùn)練得到的權(quán)重數(shù)據(jù)較為輕量化,處理速度快,經(jīng)實驗驗證,識別準(zhǔn)確率高且能達(dá)到網(wǎng)絡(luò)攝像頭實時檢測的要求[13],相較于人工檢測,檢測速度得到了大幅提升,證明本方法存在一定的可取性。針對行人中的小目標(biāo)及檢測目標(biāo)被遮擋的問題[14],將來會繼續(xù)優(yōu)化算法模型、加強(qiáng)特征提取[15]以及調(diào)整網(wǎng)絡(luò)參數(shù)等方法,來提高檢測效果。
參考文獻(xiàn):
Jung N, Lee G. Automated classification of building information modeling(BIM) case studies by BIM use based on natural language processing(NLP) and unsupervised learning[J]. Advanced Engineering Informatics, 2019, 41(08):100917.1 - 100917.10.
Zhang S J, Zhang Lei, Gao R.Research on Visual Image Processing of Mobile Rpbot Based on OpenCV[J]. Journal of Computer Science , 2017, 28(05) : 255-278.
Kang J, Gwak J. Adaptive face mask detection system based on scene complexity analysis[J]. Journal of Korea Society of Computer and Information, 2021, 26(05) : 1-8.
薄景文, 張春堂. 基于YOLOv3的輕量化口罩佩戴檢測算法[J]. 電子測量技術(shù),2021, 44(23):105-110.
王藝皓, 丁洪偉, 李波, 等. 復(fù)雜場景下基于改進(jìn)YOLOv3的口罩佩戴檢測算法[J]. 計算機(jī)工程, 2020, 46(11): 12 - 22.
Pang L, Liu H, Chen Y, et al. Real-time Concealed Object Detection from Passive Millimeter Wave Images Based on YOLOv3 ALgorithm[J]. Sensors (Basel, Switzerland), 2020, 20(06): 44-50.
Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalized Intersection Over Union: A Metric and a Loss for Bounding Box Regression [A] // 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)[C]. IEEE, 2020.
鄧黃瀟. 基于遷移學(xué)習(xí)與RetinaNet的口罩佩戴檢測的方法[J]. 電子技術(shù)與軟件工程, 2020, 1(05): 209-211.
肖俊杰. 基于YOLOv3和YCrCb的人臉口罩檢測與規(guī)范佩戴識別[J]. 軟件, 2020,41(07): 164-169.
管軍霖 智鑫. 基于YOLOv4卷積神經(jīng)網(wǎng)絡(luò)的口罩佩戴檢測方法[J]. 現(xiàn)代信息科技, 2020, 11(04): 9-12.
趙凱琳, 靳小龍, 王元卓. 小樣本學(xué)習(xí)研究綜述[J]. 軟件學(xué)報, 2021, 32(02): 349-369.
牛作東, 覃濤, 李捍東, 等. 改進(jìn)RetinaFace的自然場景口罩佩戴檢測算法[J]. 計算機(jī)工程與應(yīng)用, 2020, 56(12): 1-7.
Tan M, Pang R, Le Q V. Efficientdet: Scalable and efficient object detection[A]. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition[C]. 2020. 10781-10790.
Zhang Z, Wang P, Ren D, et al.Enhancing geomettric factors in model learning and inference for object detection and instance segmentation[J]. ArXiv Preprint, 2020, ArXiv: 2005,(03): 572.
方任淵, 王敏. 基于改進(jìn)型YOLO網(wǎng)絡(luò)的商品包裝類別檢測[J]. 電子測量技術(shù), 2020, 43(07): 108-112.
Real-time Detection of Pedestrian Mask-wearing based on YOLOv5
ZHANG Xi, PANG Ai-Min
(School of Mechanical Engineering and Autonation, Wuhan Textile University, Wuhan Hubei 430200, China)
Abstract:To address the inefficiency of the current mainstream manual inspection of pedestrian mask wear, a YOLOv5 network-based approach is proposed to achieve real-time detection of pedestrian mask wear.To address the inefficiency of the current mainstream manual detection of pedestrian mask wear, a YOLOv5 network-based algorithm is proposed to achieve real-time detection of pedestrian mask wear.2000 images of masked and unmasked pedestrians were collected as datasets, and pre-training was first performed on weighted data based on the COCO dataset to improve the speed and detection of training.Then, the datasets are imported into the YOLOv5 model for iterative training and testing, the obtained optimal weight files are validated against the test sets, and the training results are presented visually.Experimental results show that the algorithm can exceed 62.5 FPS in real-time detection even when pedestrians are dense, with high accuracy, meeting the requirements for real-time detection of pedestrian mask wearing.
Keywords:YOLOv5; real-time detection; COCO; optimal weight
(責(zé)任編輯:周莉)