于方旭,王帥,劉世超,梁鵬,于曦
(牡丹江醫(yī)學院,黑龍江 牡丹江 157011)
新冠肺炎疫情爆發(fā)后,國家開展了疫情防控工作,同時越來越多地區(qū)對公共衛(wèi)生防護提出了更高的要求。目前,人們出入公共場所、乘坐公共交通工具等必須佩戴口罩,口罩佩戴檢查已成為疫情防控的必備操作。而在大學校園中人口的流動更加頻繁,人口密度也相對較大,時常會有校外人員和學生教師進出學校,存在著較大的安全隱患??墒?,當前口罩的檢測往往依靠人工,這也導致人力資源的浪費,同時也會出現(xiàn)漏檢的風險,加大了疫情控制的不穩(wěn)定性。隨著深度學習技術(shù)的快速發(fā)展,計算機視覺技術(shù)得到不斷發(fā)展,并且人臉檢測技術(shù)成為了一種相對成熟的技術(shù),人臉佩戴物檢測技術(shù)也在快速發(fā)展。馮國臣等采用深度學習的相關(guān)方法對安全帽的自動識別進行了深入研究[1]。李美玲等采用卷積神經(jīng)網(wǎng)絡(luò)模型實現(xiàn)了高分辨率遙感影像道路信息提取[2]??谡峙宕鳈z測系統(tǒng)的設(shè)計基礎(chǔ)就建立在這些技術(shù)之上。卷積神經(jīng)網(wǎng)絡(luò)技術(shù)為人臉檢測技術(shù)提供了技術(shù)支持,因此本文嘗試改進YOLOv5這一卷積神經(jīng)網(wǎng)絡(luò)技術(shù)來實現(xiàn)口罩佩戴識別功能。該方法主要修改了原始的YOLOv5模型輸入尺寸、結(jié)構(gòu)和損失函數(shù),使YOLOv5模型更適用于口罩佩戴的識別。
卷積神經(jīng)網(wǎng)絡(luò)[3](convolutional neural networks,CNNs)包含三層網(wǎng)絡(luò)結(jié)構(gòu),分別是卷積層、激活層以及池化層,結(jié)構(gòu)框圖如圖1所示。通常情況下卷積神經(jīng)網(wǎng)絡(luò)有多個池化層與卷積層,在卷積層中,數(shù)據(jù)會根據(jù)神經(jīng)網(wǎng)絡(luò)參數(shù)進行局部連接,該過程相當于進行了卷積操作,因此稱為卷積神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)在圖像處理領(lǐng)域應用極廣。一般情況下,卷積神經(jīng)網(wǎng)絡(luò)會通過輸入層讀取輸入數(shù)據(jù),在數(shù)據(jù)到達卷積層后,卷積層會對數(shù)據(jù)進行局部關(guān)聯(lián)和滑動窗口濾波,這 是卷積神經(jīng)網(wǎng)絡(luò)中最重要的一個部分,用于提取數(shù)據(jù)之間的特征關(guān)聯(lián)性。之后把處理后的數(shù)據(jù)送入激活層中,激活層中包含激活函數(shù),可以對數(shù)據(jù)做進一步的映射,激活函數(shù)對于卷積神經(jīng)網(wǎng)絡(luò)處理非線性特征至關(guān)重要,選擇不同的激活函數(shù)對算法性能的影響也非常巨大。然后數(shù)據(jù)進入池化層中,池化是一種降采樣操作,主要目的是降低數(shù)據(jù)特征個數(shù),防止特征過多不利于反映最主要的數(shù)據(jù)特征,最后數(shù)據(jù)通過輸出層輸出。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
卷積神經(jīng)網(wǎng)絡(luò)中最主要的是神經(jīng)元結(jié)構(gòu),每個卷積神經(jīng)網(wǎng)絡(luò)都可以視為多個神經(jīng)元構(gòu)成的集合,是神經(jīng)網(wǎng)絡(luò)基本單元。神經(jīng)元結(jié)構(gòu)如圖2所示,每個神經(jīng)元都一種多輸入單元ai,數(shù)據(jù)通過權(quán)重值bi與神經(jīng)元進行連接,并在神經(jīng)元內(nèi)部計算得到輸出值。計算公式如下。
圖2 神經(jīng)元結(jié)構(gòu)框圖
其中e(.)為激勵函數(shù),不同任務下激勵函數(shù)也不完全相同,o為神經(jīng)元輸出,bias為偏置值,可以防止函數(shù)出現(xiàn)擬合偏差。
多個神經(jīng)元通過層層連接最后可以得到單次迭代輸出值,卷積神經(jīng)網(wǎng)絡(luò)單次迭代后會將輸出值與期望值對比,并通過反向BP算法矯正神經(jīng)元權(quán)重參數(shù),這樣隨著迭代次數(shù)的增加,卷積神經(jīng)網(wǎng)絡(luò)的輸出值逐漸逼近期望數(shù)值。
很多新型技術(shù)都是在卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上發(fā)展而來,比如yolo[4]算法。本文中的口罩佩戴檢測模型使用的是yolov5模型,是yolo算法的第五代版本。其具有識別速度快、效果好的特點。但為了實現(xiàn)對口罩這種小型目標的專有化檢測,提高口罩佩戴識別的準確率,需要對yolov5模型的網(wǎng)絡(luò)結(jié)構(gòu)做進一步優(yōu)化和參數(shù)調(diào)整。
口罩佩戴檢測系統(tǒng)首先收集學生口罩佩戴圖片并將這些圖片作為訓練數(shù)據(jù),之后對模型進行修改并訓練模型,最后將模型搭載到計算機系統(tǒng)上,并用攝像頭不斷采集環(huán)境照片送入模型中判斷。模型流程圖如圖3所示。
圖3 口罩佩戴檢測模型流程圖
針對yolov5算法改進方面,首先需要調(diào)整輸入尺寸。對口罩佩戴的檢測在實際應用中存在較多小目標的情況,且yolo算法的下采樣一般是32倍,所以寬高必須要能被32整除。在多尺度訓練中一般將其選擇為32的倍數(shù),最小為320×320,最大為608×608,因此將數(shù)據(jù)的輸入尺寸調(diào)整為608×608。這在一定程度上能提高口罩這種小目標的識別率。
之后在目標識別過程中引入了備選區(qū)域框這一概念。備選區(qū)域框是一組大小固定的圖片窗口。在訓練過程中,初始候選框參數(shù)越接近真實邊界框,其預測的邊界框也會更加符合真實邊界框。因此其參數(shù)設(shè)計的好壞嚴重影響算法的準確度。本次算法設(shè)計過程中先人為設(shè)計參數(shù)進行實驗,之后利用K-MEANS算法進行聚類,學習出最優(yōu)參數(shù)組合作為實際參數(shù)應用于模型中。
最后修改損失函數(shù),損失函數(shù)用于對卷積神經(jīng)網(wǎng)絡(luò)訓練過程的好壞進行評判。因此損失函數(shù)的選擇對模型收斂效果影響較大,選擇合適的損失函數(shù)可獲得更好的識別效果。本次使用GIOU_LOSS函數(shù)[5]作為損失函數(shù),該函數(shù)提供了一種尺度交互評價方式,解決模型識別邊框不重合的問題。公式如下。
本實驗收集了7000張未佩戴口罩人臉以及佩戴口罩人臉的圖像數(shù)據(jù)集,并人為標注出了口罩和人臉的位置。為保證訓練的數(shù)據(jù)盡可能多以及測試集的普遍性,故將訓練集與測試集按9:1的比例進行劃分。
圖4為模型實際檢測效果圖,可以發(fā)現(xiàn)模型能夠清楚地檢測出佩戴口罩的人臉,并將未佩戴的人員和佩戴的人員相互區(qū)別開來。
圖4 模型運行效果圖
之后檢驗了模型的性能,利用準確率、召回率、平均精度均值以及調(diào)和均值作為評價指標,模型的性能與訓練次數(shù)有關(guān),圖5展現(xiàn)了性能指標與訓練次數(shù)之間的關(guān)系。
圖5 性能指標評價圖
可以發(fā)現(xiàn)隨著訓練次數(shù)的增加,各項性能指標都趨近于一個穩(wěn)定的值,并且性能指標表現(xiàn)良好。
本文提出了一種用于疫情防控的口罩佩戴檢測系統(tǒng),系統(tǒng)通過改進的yolov5算法達到這一目的。該系統(tǒng)能夠幫助防疫人員對來往人員的口罩佩戴情況進行評判,降低勞動成本,在大學校園中的應用也可以便于學校的日常管理,降低學生身邊的安全隱患,為學生提供又一道安全防線。本文的最后通過實驗論證了算法的可行性,我們相信這一系統(tǒng)對推進社會治理的科學化、現(xiàn)代化具有重要意義。