摘" 要:針對醫(yī)院人流量大、檢測時間短、干擾因素多的特點,對醫(yī)院口罩佩戴檢測系統(tǒng)的設(shè)計進行了研究。制作醫(yī)院口罩佩戴檢測數(shù)據(jù)集,利用LabelImg工具對口罩佩戴的位置和類別進行標(biāo)注。為了減少光照對檢測性能的影響,對圖像進行白化處理。選擇YOLOv5模型進行檢測,將迭代次數(shù)設(shè)置為不同的值,訓(xùn)練模型并比較評價指標(biāo)值,找到合適的迭代次數(shù)。構(gòu)建基于Flask和ECharts的展示頁面,實現(xiàn)了對醫(yī)院視頻監(jiān)控畫面的實時檢測,減少了誤檢和漏檢,節(jié)省了人力物力。
關(guān)鍵詞:深度學(xué)習(xí);口罩佩戴;目標(biāo)檢測;Flask框架
中圖分類號:TP391.4" 文獻標(biāo)識碼:A" 文章編號:2096-4706(2024)12-0151-04
Development of Hospital Mask Wearing Detection System Based on Deep Learning
YAN Xiaohu1, WANG Shan2, ZHAI Jinlong3
(1.School of Undergraduate Education, Shenzhen Polytechnic University, Shenzhen" 518055, China; 2.The Central Hospital of Wuhan, Tongji Medical College of Huazhong University of Science and Technology, Wuhan" 430014, China; 3.School of Computer Science and Software Engineering, University of Science and Technology Liaoning, Anshan" 114051, China)
Abstract: According to the characteristics of large flow of people, short detection time and many interfering factors, the design of hospital mask wearing detection system is studied. The detection data set of hospital mask wearing is made, and the position and category of mask wearing are marked by using the LabelImg tool. In order to reduce the influence of illumination on the detection performance, the image is whitened. The YOLOv5 model is selected for detection, the number of iterations is set to different values, and the model is trained and the evaluation index values are compared to find the appropriate number of iterations. The display page based on Flask and ECharts is constructed to realize real-time detection of hospital video surveillance pictures. It reduces 1 detection and missed detection, and saves manpower and material resources.
Keywords: Deep Learning; mask wearing; target detection; Flask frame
0" 引" 言
口罩是預(yù)防呼吸道傳染病的重要防線,可以有效地減少飛沫的傳播,極大地降低病毒感染的風(fēng)險。在呼吸道疾病高發(fā)等特殊情況下對進出醫(yī)院的人員進行口罩佩戴檢測非常必要。然而,對口罩佩戴情況進行人工檢查不僅耗費大量的人力資源,還容易出現(xiàn)誤檢、漏檢等情況。隨著人工智能技術(shù)的發(fā)展,利用監(jiān)控攝像頭采集圖像,結(jié)合深度學(xué)習(xí)方法可以實現(xiàn)人臉口罩佩戴的實時準(zhǔn)確檢測,對醫(yī)院防控呼吸道疾病傳播具有重要的應(yīng)用價值[1-3]。
目標(biāo)檢測算法主要分為傳統(tǒng)檢測算法和基于深度學(xué)習(xí)的檢測算法[4,5]。相比傳統(tǒng)檢測算法,基于深度學(xué)習(xí)的檢測算法在速度、精度和泛化性方面都有極大的提升,已成功應(yīng)用于口罩佩戴檢測領(lǐng)域[6]。本文針對醫(yī)院人流量大、檢測時間短、干擾因素多的特點,設(shè)計基于深度學(xué)習(xí)的口罩佩戴檢測系統(tǒng),選擇實時性和精度較好的YOLOv5作為檢測算法,利用AJAX(Asynchronous JavaScript And XML)技術(shù)實時傳輸數(shù)據(jù),構(gòu)建基于Flask和ECharts的展示頁面。針對正確佩戴口罩、不規(guī)范佩戴口罩、未佩戴口罩三種情況,本文建立端到端模式的深度神經(jīng)網(wǎng)絡(luò)[7,8],對口罩佩戴情況進行檢測和提醒。對比分析不同迭代次數(shù)時的模型性能,選擇評價指標(biāo)最優(yōu)的模型,利用攝像頭、計算機和顯示屏等設(shè)備對進出醫(yī)院的人員進行實時口罩佩戴檢測,節(jié)省了大量的人力物力,提高了醫(yī)院防控呼吸道疾病傳播的效率。
1" 目標(biāo)檢測算法
1.1" 傳統(tǒng)的目標(biāo)檢測算法
傳統(tǒng)的目標(biāo)檢測算法建立在手工提取圖像特征的基礎(chǔ)上,具體流程如圖1所示。
如圖1所示,傳統(tǒng)的檢測算法首先對輸入的待檢測圖像選定候選區(qū)域;然后,在候選區(qū)域內(nèi)進行特征提取,常用的算法包括Haar、SIFT(Scale-Invariant Feature Transform)、HOG(Histogram of Oriented Gradient)等;最后,對提取的特征進行分類,常用的分類器包括支持向量機、Adaboost等。由于醫(yī)院人流量大、背景多樣和干擾因素多,手工設(shè)計特征方法的魯棒性不好。同時,傳統(tǒng)方法檢測過程煩瑣、計算量大,無法滿足口罩佩戴實時檢測的要求[9]。
1.2" 基于深度學(xué)習(xí)的目標(biāo)檢測算法
基于深度學(xué)習(xí)的目標(biāo)檢測算法通常利用卷積神經(jīng)網(wǎng)絡(luò)提取特征,然后通過分類回歸層完成目標(biāo)的分類和定位,主要包括兩階段檢測算法和單階段檢測算法。兩階段算法的結(jié)構(gòu)分為兩部分,以Faster R-CNN為例,其首先利用RPN(Region Proposal Network)網(wǎng)絡(luò)判斷候選框是否為目標(biāo),再經(jīng)分類定位的多任務(wù)損失判斷目標(biāo)類型[10]。兩階段算法準(zhǔn)確度較高,但檢測時間長,難以滿足醫(yī)院實時檢測的要求。單階段算法在生成候選框的同時進行分類和回歸任務(wù),包括YOLO、SSD等算法。
由于YOLOv5算法的運行速度快且檢測精度高,本文選擇YOLOv5作為醫(yī)院口罩佩戴檢測的算法,其結(jié)構(gòu)如圖2所示。
YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入端、主干網(wǎng)絡(luò)、頸部以及輸出端四個部分組成。輸入端對圖像進行預(yù)處理;主干網(wǎng)絡(luò)實現(xiàn)特征提取,主要包括切片結(jié)構(gòu)、卷積模塊、瓶頸層和空間金字塔池化;頸部為特征融合網(wǎng)絡(luò),采用自頂向下和自底向上聯(lián)合的融合方式,能較好地融合多尺度特征;最后,針對冗余的預(yù)測框,利用非極大值抑制等操作,獲得最優(yōu)的目標(biāo)框。相比其他算法,YOLOv5的結(jié)構(gòu)更小巧,配置更靈活,檢測速度更快,能更好地滿足醫(yī)院口罩佩戴圖像實時檢測的需求。
根據(jù)模型深度和寬度的不同,YOLOv5可分為YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四種模型。隨著深度和寬度的增加,YOLO模型的檢測速度變慢但精度有所提升,可根據(jù)應(yīng)用場景選擇適合的模型進行檢測。由于醫(yī)院口罩佩戴檢測系統(tǒng)對實時性要求較高,本文選擇YOLOv5s模型,以達到實時檢測的目的。
2" 基于深度學(xué)習(xí)的口罩佩戴檢測算法
2.1" 開發(fā)環(huán)境
本文口罩佩戴檢測算法的開發(fā)環(huán)境如表1所示。
YOLOv5s算法在PyCharm 2022環(huán)境下利用PyTorch框架開發(fā),通過帶GPU的高性能計算機對模型進行訓(xùn)練。
2.2" 數(shù)據(jù)集
收集整理包含正確佩戴口罩、不規(guī)范佩戴口罩、未佩戴口罩三種情況的圖像數(shù)據(jù),利用LabelImg工具標(biāo)注口罩在圖像中的具體位置和所屬類別。實驗數(shù)據(jù)集共包含1 173張圖像,分為訓(xùn)練集、測試集與驗證集,數(shù)據(jù)集的詳細(xì)劃分如表2所示。
2.3" 評價指標(biāo)
為了驗證本文人臉口罩佩戴檢測算法的可行性和有效性,選取準(zhǔn)確率P、召回率R、平均精度均值mAP作為評價模型性能的指標(biāo)。P表示實際是正類并且被預(yù)測為正類的樣本占所有預(yù)測為正類的樣本的比例;R表示實際是正類并且被預(yù)測為正類的樣本占所有實際為正類樣本的比例;mAP表示各個類別平均精度的均值,用于衡量多個目標(biāo)類別的平均檢測精度。
2.4" 模型訓(xùn)練與分析
由于醫(yī)院干擾因素多,為了減少光照對檢測性能的影響,對原始圖像進行白化處理。假設(shè)圖像P有m行n列,每個像素的值為Pij,圖像的均值和方差分別為:
(1)
(2)
經(jīng)過白化處理后,圖像的每個像素值為xij:
(3)
將迭代次數(shù)設(shè)置為不同值,對比分析準(zhǔn)確率、召回率、平均精度均值三個評價指標(biāo)的值。當(dāng)?shù)螖?shù)設(shè)置為200時,模型在訓(xùn)練集和驗證集上的性能較優(yōu)。因此,本文將此時訓(xùn)練得到的模型參數(shù)作為最終參數(shù)值進行保存和使用。
3" 醫(yī)院口罩佩戴檢測系統(tǒng)設(shè)計與實現(xiàn)
本文中醫(yī)院口罩佩戴檢測系統(tǒng)利用YOLOv5s作為后臺檢測算法,通過AJAX技術(shù)實時傳輸數(shù)據(jù),利用Flask和ECharts搭建Web前端展示頁面。
3.1" 基于AJAX的前后端數(shù)據(jù)實時交互
為了實現(xiàn)對醫(yī)院進出人員口罩佩戴情況的實時檢測,本文采用AJAX技術(shù)實現(xiàn)前后端數(shù)據(jù)的交互。AJAX使用JavaScript和XML實現(xiàn)異步數(shù)據(jù)的傳輸,可快速高效地異步調(diào)用文本、JSON等數(shù)據(jù),其工作原理如圖3所示。
如圖3所示,相比傳統(tǒng)Web應(yīng)用程序的交互方式,AJAX在用戶界面和Web服務(wù)器之間增加了AJAX引擎,實現(xiàn)了用戶操作與服務(wù)器響應(yīng)的異步化。傳統(tǒng)Web應(yīng)用如果更新內(nèi)容,需重載整個頁面;AJAX應(yīng)用將部分?jǐn)?shù)據(jù)交給AJAX引擎來處理,通過與服務(wù)器進行少量數(shù)據(jù)交換,實現(xiàn)網(wǎng)頁異步更新。當(dāng)需要從服務(wù)器讀取新數(shù)據(jù)時,AJAX引擎才與服務(wù)器進行數(shù)據(jù)交互。AJAX技術(shù)減輕了服務(wù)器的負(fù)擔(dān),提高了數(shù)據(jù)傳輸?shù)男?,有利于實現(xiàn)醫(yī)院口罩佩戴情況的實時檢測。
3.2" 基于Flask和ECharts的展示頁面
Flask是一個基于Python語言的Web框架,相比其他框架更靈活、輕便、安全。Flask主要基于Werkzeug WSGI工具箱和Jinja2模板引擎,其強大的插件庫可以讓用戶實現(xiàn)個性化的功能定制。Flask框架的工作流程如圖4所示。
在基于深度學(xué)習(xí)的醫(yī)院口罩佩戴檢測系統(tǒng)中,F(xiàn)lask框架將檢測算法的視圖函數(shù)分配給URL,當(dāng)用戶訪問該URL時,系統(tǒng)執(zhí)行分配好的視圖函數(shù),獲取函數(shù)的返回值并將其顯示到Web頁面上,展示效果如圖5所示。
如圖5所示,系統(tǒng)可以同時對醫(yī)院視頻畫面中多張人臉的口罩佩戴情況進行實時準(zhǔn)確的檢測。當(dāng)正確佩戴口罩時,會在界面上用紅色框標(biāo)識,并配有文字with_mask和置信度;當(dāng)佩戴口罩不規(guī)范時,會在界面上用橙色框標(biāo)識,并配有文字mask_weared_incorrect和置信度;當(dāng)沒有佩戴口罩時,會在界面上用粉色框標(biāo)識,并配有文字without_mask和置信度。當(dāng)檢測到不規(guī)范佩戴口罩或未佩戴口罩時,系統(tǒng)右上角會彈出“口罩佩戴異?!钡木妗?/p>
ECharts是由百度開發(fā)的一款基于JavaScript的數(shù)據(jù)可視化圖表庫,包含柱狀圖、折線圖、餅狀圖、雷達圖等類型。本文利用ECharts從多個角度對口罩佩戴檢測數(shù)據(jù)進行統(tǒng)計分析,如圖6所示。
如圖6所示,系統(tǒng)對正確佩戴、不規(guī)范佩戴和未佩戴三種情況進行統(tǒng)計,以餅圖形式繪制統(tǒng)計結(jié)果,并計算出每種口罩佩戴情況的占比。
3.3" 討論與展望
基于深度學(xué)習(xí)的醫(yī)院口罩佩戴檢測系統(tǒng)選擇YOLOv5作為檢測算法,利用AJAX技術(shù)傳輸數(shù)據(jù),通過Flask和ECharts構(gòu)建展示頁面。該系統(tǒng)可對醫(yī)院進出人員口罩佩戴情況進行實時準(zhǔn)確地檢測,將不同口罩佩戴情況分別進行展示,統(tǒng)計每天三種口罩佩戴的人數(shù)及占比,對不佩戴口罩和不規(guī)范佩戴口罩的情況進行提醒,從而能極大地節(jié)約人力資源,減少誤檢、漏檢等情況。由于醫(yī)院現(xiàn)場環(huán)境的復(fù)雜性和多樣性,可以通過數(shù)據(jù)集擴充、模型改進、參數(shù)優(yōu)化等方式進一步提升檢測算法的性能。
4" 結(jié)" 論
針對醫(yī)院人流量大、檢測時間短、干擾因素多的特點,本文設(shè)計了基于深度學(xué)習(xí)的醫(yī)院口罩佩戴檢測系統(tǒng)。選擇YOLOv5s模型作為檢測算法,將攝像頭采集的視頻圖像作為輸入,利用訓(xùn)練好的YOLOv5s模型對口罩佩戴情況進行檢測。在視頻畫面上繪制出人臉的邊界框,并在邊界框的上方輸出口罩佩戴的檢測結(jié)果,包括正確佩戴口罩、不規(guī)范佩戴口罩、未佩戴口罩三種情況。構(gòu)建基于Flask和ECharts的Web頁面,利用AJAX技術(shù)傳輸檢測結(jié)果,并在顯示器上實時展示。本文設(shè)計的口罩佩戴檢測系統(tǒng)極大地節(jié)省了人力物力,減少了誤檢、漏檢等情況,提高了防控呼吸道疾病傳播的效率。
參考文獻:
[1] 吳昱昊,王會成,朱云強.基于YOLOv5的人臉口罩檢測研究與實現(xiàn) [J].現(xiàn)代信息科技,2023,7(4):98-100.
[2] 牛作東,覃濤,李捍東,等.改進RetinaFace的自然場景口罩佩戴檢測算法 [J].計算機工程與應(yīng)用,2020,56(12):1-7.
[3] 苑穎,劉旭峰.基于YOLOv5的疫情防控口罩佩戴檢測系統(tǒng)設(shè)計與實現(xiàn) [J].現(xiàn)代信息科技,2023,7(7):65-68+73.
[4] 謝星星,程塨,姚艷清,等.動態(tài)特征融合的遙感圖像目標(biāo)檢測 [J].計算機學(xué)報,2022,45(4):735-747.
[5] 聶光濤,黃華.光學(xué)遙感圖像目標(biāo)檢測算法綜述 [J].自動化學(xué)報,2021,47(8):1749-1768.
[6] 韓毅,郭圓輝,王旭彬.基于卷積神經(jīng)網(wǎng)絡(luò)的智能抓取系統(tǒng)研究 [J].河南科技,2021,40(35):17-20.
[7] 彭雨諾,劉敏,萬智,等.基于改進YOLO的雙網(wǎng)絡(luò)橋梁表觀病害快速檢測算法 [J].自動化學(xué)報,2022,48(4):1018-1032.
[8] 袁揚,馬浩文,葉云飛,等.基于YOLOv3算法的盲道識別研究 [J].河南科技,2022,41(6):20-23.
[9] 樓立志,張濤,張紹明.基于DPM和R-CNN的高分二號遙感影像船只檢測方法 [J].系統(tǒng)工程與電子技術(shù),2019,41(3):509-514.
[10] REN S,HE K,GIRSHICK R,et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
作者簡介:鄢小虎(1986—),男,漢族,湖北武漢人,高級工程師,博士,研究方向:計算機視覺、機器學(xué)習(xí)、智能優(yōu)化算法。