盧云聰
(鐵道警察學(xué)院智慧警務(wù)研究中心,河南 鄭州 450000)
新冠病毒主要是通過呼吸道飛沫進(jìn)行傳播,當(dāng)新冠患者說話、咳嗽、打噴嚏時,飛沫會進(jìn)入空氣,對其他人的健康造成安全隱患。佩戴口罩可以有效減少飛沫傳播的途徑,同時可以降低自身的飛沫量和飛沫噴射速度,進(jìn)而降低新型冠狀病毒的傳播和感染風(fēng)險。目前,為有效應(yīng)對新形勢下的疫情防控工作,各省市新冠疫情防控指揮部均要求乘客乘坐公共交通及列車必須佩戴口罩。
在地鐵、車站這種人流量巨大的公共場所,如何快速對每位旅客的口罩佩戴情況進(jìn)行檢測是防疫工作的一大重點,目前該工作通常由眾多駐站民警及工作人員人工篩查完成。但隨著鐵路以及公共交通客流量的恢復(fù)和增加,單純依靠人力很難實現(xiàn)對全部乘客的口罩佩戴情況進(jìn)行監(jiān)督,同時大量人力的投入也會造成資源的浪費,影響防疫工作的整體效率[1]。而采用口罩佩戴檢測模型能夠有效幫助工作人員在極短的時間里對所有入站旅客的口罩佩戴情況進(jìn)行檢測[2]。
目前,目標(biāo)檢測主流的算法主要是two-stage 方法和one-stage 方法[3]。其中two-stage 方法的主要思路是通過CNN 在圖像上生成候選框并對所有候選框進(jìn)行回歸與分類,其優(yōu)點是準(zhǔn)確率高,缺點是速度慢,例如R-CNN 算法;one-stage 方法的主要思路是以不同的長寬比均勻密集地在圖像進(jìn)行抽樣,然后利用CNN 提取特征后直接進(jìn)行分類與回歸,其優(yōu)點是識別速度快,缺點是訓(xùn)練困難、準(zhǔn)確率較低,例如YOLO 和SSD。
根據(jù)口罩佩戴檢測任務(wù)即時性的要求,本文采用識別速度較快的SSD 算法來搭建口罩佩戴檢測模型,為解決SSD 算法低級卷積層數(shù)少導(dǎo)致的特征提取不充分以及正負(fù)樣本不均衡導(dǎo)致的準(zhǔn)確度低問題,本文在SSD 算法的基礎(chǔ)上加入one-hot,以此來在保證識別速度的同時提高識別的準(zhǔn)確度。
單發(fā)多邊框檢測器,簡稱SSD,屬于端到端目標(biāo)檢測方法的一種,與R-CNN 等two-stage 目標(biāo)檢測方法相比,其最大的不同是它可以省略一階段的候選區(qū)域生成步驟,也就是說,SSD 算法可以直接對輸入的圖像進(jìn)行特征提取,以此來對圖像中的所有物體進(jìn)行種類和位置上的預(yù)測,也正是因為這一特點,SSD 模型的訓(xùn)練成本得到了降低,檢測速度得到了提高[4]。
SSD 算法是在VGG16 算法的基礎(chǔ)上做了以下修改所得:①移除全部Dropout 層以及全連接層FC8;②分別將全連接層FC6 和FC7 轉(zhuǎn)換成3×3 卷積層Conv6 和1×1 卷積層Conv7;③將池化層pool5 由原來的2×2 變成3×3 ,同時步長由stride=2 變?yōu)閟tride=1;④增加了Atrous 算法;⑤在網(wǎng)絡(luò)末端新增了4 層卷積層,以便于獲取更多的特征圖以用于檢測目標(biāo)。
SSD 的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 SSD 網(wǎng)絡(luò)結(jié)構(gòu)圖
SSD 算法的損失函數(shù)原理與Faster RCNN 相同[5],都是由2 部分組成,分別是分類損失函數(shù)和回歸損失函數(shù),具體公式如下:
式(1)中:Lconf為置信函數(shù),也就是分類誤差;Lloc為邊框定位誤差。
SSD 算法通過對自身網(wǎng)絡(luò)參數(shù)的不斷訓(xùn)練迭代,使得分類誤差和邊框定位誤差不斷變小,最終模型對目標(biāo)的定位和分類也會變得越來越準(zhǔn)確。
與YOLO 算法相比,SSD 算法具有以下幾點不同之處:①采用多尺度特征圖進(jìn)行檢測。所謂多尺度特征圖,就是大小和形狀不等的特征圖,其中大尺度特征圖(網(wǎng)絡(luò)中靠前的特征圖)可以用來檢測圖像中體面積較小的目標(biāo),小尺度特征圖(網(wǎng)絡(luò)中靠后的特征圖)可以用來檢測圖像中面積較大的目標(biāo),這就使得SSD 算法能夠勝任任何尺寸目標(biāo)的檢測。②借助卷積層對目標(biāo)進(jìn)行檢測。與YOLO 算法在全連接層后對目標(biāo)進(jìn)行檢測不同,SSD 直接采用CNN 來對目標(biāo)進(jìn)行檢測。③先驗框。YOLO 算法雖然能夠?qū)γ總€單元生成多個正方形邊界框來進(jìn)行預(yù)測,但實際中真實目標(biāo)的形狀都是不規(guī)則的,這就要求YOLO 算法在訓(xùn)練中對目標(biāo)的形狀進(jìn)行自適應(yīng)調(diào)整。而SSD 算法借鑒了Faster R-CNN 中anchor 的理念,對每個單元設(shè)置大小不同的先驗框,如圖2所示,最終根據(jù)生成的所有先驗框來產(chǎn)生目標(biāo)的預(yù)測邊界框,以此來減少模型訓(xùn)練的成本。
圖2 SSD 先驗框
本文將基于SSD 框架搭建用于人臉口罩佩戴情況檢測的識別模型,同時加入了one-hot 編碼,并最終分別與YOLOv3 模型及未加入one-hot 編碼的SSD 模型進(jìn)行了檢測效果對比。
本文對WIDER Face 數(shù)據(jù)集和MAFA 數(shù)據(jù)集進(jìn)行篩選,按照佩戴口罩和未佩戴口罩圖像1∶1 的比例,共選出4 568 份人臉數(shù)據(jù)。具體如表1所示。
表1 實驗數(shù)據(jù)集比例
其中佩戴口罩的數(shù)據(jù)共2 318 份,占數(shù)據(jù)集總數(shù)的50.74%,未佩戴口罩的數(shù)據(jù)共2 250 份,占比為49.26%。本文取總數(shù)據(jù)集的90.01%為訓(xùn)練集,取9.99%作為測試集。
實驗數(shù)據(jù)集示例如圖3所示。
圖3 數(shù)據(jù)集示例
本文在傳統(tǒng)SSD 模型的基礎(chǔ)上加入了one-hot編碼。
one-hot 編碼(One-Hot Encoding)也稱作“獨熱編碼”,是數(shù)據(jù)預(yù)處理的方式之一。它采用N個狀態(tài)寄存器來保存編碼過程中的N個狀態(tài),每個狀態(tài)都有其獨立的寄存器位。
one-hot 可以使神經(jīng)網(wǎng)絡(luò)中非偏序關(guān)系的變量取值不具有偏序性,簡化神經(jīng)網(wǎng)絡(luò)建模的復(fù)雜度,同時擴充了離散特征,讓特征之間的距離計算更加的合理。
相比單獨采用單發(fā)多邊框檢測器的口罩佩戴檢測模型,結(jié)合one-hot 編碼能夠提高模型速度,使模型運算效率大幅提升,增強了單發(fā)多邊框檢測器自身的魯棒性。
本文構(gòu)建的基于SSD 算法的口罩佩戴檢測模型對輸入圖像的識別處理過程如下:①為了便于模型進(jìn)行識別,在輸入模型前對圖片進(jìn)行預(yù)處理操作,將所有圖片尺寸轉(zhuǎn)化成300×300;②輸入圖片經(jīng)過SSD 模型中多個卷積層的前向傳播和反向傳播后,依次獲得第一至第六個特征圖;③將網(wǎng)絡(luò)中提取的特征圖進(jìn)行綜合,搭建特征金字塔,并以此來對特征圖中的信息進(jìn)行融合;④通過模型中的損失函數(shù)來對所有特征圖中的目標(biāo)進(jìn)行定位和分類,并獲取特征圖中的檢測框;⑤使用非極大值抑制法,在篩選出最佳目標(biāo)檢測框的同時消除其他得分較低的檢測框,進(jìn)而獲得最終的口罩佩戴檢測結(jié)果。
本文構(gòu)建的基于SSD 算法的口罩佩戴檢測模型具體訓(xùn)練步驟如下:①收集開源數(shù)據(jù)集,并按照佩戴口罩人像與未佩戴口罩人像1∶1 的比例進(jìn)行篩選,分別生成訓(xùn)練集和測試集;②對數(shù)據(jù)集進(jìn)行預(yù)處理,將所有圖像的尺寸統(tǒng)一成300×300;③基于Visual Studio 2019 編譯器和Opencv-Python4.5 中的深度學(xué)習(xí)模塊設(shè)計SSD 網(wǎng)絡(luò),并加入one-hot 編碼擴大數(shù)據(jù)的離散特征;④將訓(xùn)練集輸入網(wǎng)絡(luò)進(jìn)行多輪迭代訓(xùn)練,最終生成目標(biāo)檢測模型;⑤將測試集輸入已訓(xùn)練好的模型當(dāng)中,測試本文所構(gòu)建模型的最終識別性能。
同時,本文還在使用相同數(shù)據(jù)集的情況下,分別訓(xùn)練了未使用one-hot 的SSD 目標(biāo)檢測模型和YOLOv3 目標(biāo)檢測模型作為參照實驗。具體實驗結(jié)果如表2所示。
表2 實驗結(jié)果
各個模型的識別準(zhǔn)確率函數(shù)圖如圖4所示。
圖4 各個模型的識別準(zhǔn)確率函數(shù)圖
實驗結(jié)果顯示:在相同實驗條件下,本文構(gòu)建的口罩佩戴檢測模型與未加入one-hot 編碼的SSD 模型相比,在識別準(zhǔn)確率(ACC)上有著2.28%的絕對提升和2.37%的相對提升,在單張圖片的識別時間(TIME)上有著3.94%的相對降低;與YOLO 模型相比,在識別準(zhǔn)確率(ACC)上有著3.82%的絕對提升和4.03%的相對提升,在單張圖片的識別時間(TIME)上有著2.56%的相對降低。
最終可以得出,本文構(gòu)建的基于SSD 的口罩佩戴檢測模型在識別性能方面要優(yōu)于其他2 種常用模型,在準(zhǔn)確度和速度方面能夠滿足檢測工作的需求。
車站是疫情防控的重要防線,確保入站乘客正確佩戴口罩,有助于深入貫徹落實國家防疫大計,保護人民群眾生命健康安全。
本文使用目前在目標(biāo)檢測領(lǐng)域表現(xiàn)優(yōu)異的SSD 算法結(jié)合one-hot 編碼,搭建了口罩佩戴檢測模型。經(jīng)過與其他模型對比可以得出,本文構(gòu)建的基于SSD 算法的口罩佩戴檢測模型能夠以高準(zhǔn)確率和高速度完成對圖像中人臉口罩佩戴情況的識別。將該模型投入實際應(yīng)用不僅可以大大提升疫情防控形勢下車站管理的智能化水準(zhǔn),保障車站安全,同時還可以有效緩解駐站乘警工作壓力,提高工作效率。