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