張路達(dá),鄧 超
河南理工大學(xué) 物理與電子信息學(xué)院,河南 焦作454003
在疫情常態(tài)化的形勢(shì)下,佩戴口罩是切斷病毒傳播途徑最簡(jiǎn)便有效的方式,可以有效降低人與人相互交叉感染的風(fēng)險(xiǎn)。疫情期間,商場(chǎng)、車站等公共場(chǎng)所禁止未佩戴口罩人員進(jìn)入。公共場(chǎng)所多為人群密集區(qū)域,通過(guò)人工方式大面積檢查口罩佩戴情況會(huì)耗費(fèi)大量的人力與時(shí)間,并且容易造成漏檢,因此實(shí)現(xiàn)一種具有實(shí)時(shí)性的高精度的口罩佩戴檢測(cè)算法是十分必要的。
近年來(lái),隨著卷積神經(jīng)網(wǎng)絡(luò)的興起,傳統(tǒng)的利用手工設(shè)計(jì)圖像特征的目標(biāo)檢測(cè)方法已經(jīng)發(fā)展為基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法[1-2]。相比于傳統(tǒng)的檢測(cè)方法,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法其優(yōu)勢(shì)在于無(wú)需進(jìn)行人工的特征設(shè)計(jì),具有優(yōu)秀的特征表達(dá)能力以及優(yōu)良的檢測(cè)精度。目前基于深度學(xué)習(xí)的主流目標(biāo)檢測(cè)算法依據(jù)其設(shè)計(jì)思想,主要分為兩類:第一類是基于區(qū)域建議的二階段目標(biāo)檢測(cè)算法。此類算法將目標(biāo)檢測(cè)分為兩個(gè)階段,第一個(gè)階段生成可能包含目標(biāo)的候選區(qū)域(Region Proposal),第二個(gè)階段利用卷積神經(jīng)網(wǎng)絡(luò)完成對(duì)候選區(qū)域的目標(biāo)位置與類別的預(yù)測(cè)及識(shí)別,得到最終的檢測(cè)結(jié)果,其代表有R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]等。第二類是基于回歸的一階段目標(biāo)檢測(cè)算法。該類算法將目標(biāo)檢測(cè)看成一個(gè)回歸問(wèn)題,不再生成候選區(qū)域,直接完成從原始圖像的輸入到物體位置和類別的輸出,是一種端到端的目標(biāo)檢測(cè)算法,此類算法擁有更快的檢測(cè)速度,其代表作有SSD[6]、YOLO[7]、YOLOv2[8]、YOLOv3[9]等。YOLOv3算法是YOLO算法系列的第三代改進(jìn)版本,與眾多算法相比,具有檢測(cè)速度快、精度高、綜合性強(qiáng)等優(yōu)勢(shì),在目標(biāo)檢測(cè)領(lǐng)域有著廣泛的應(yīng)用。但由于在一些特定場(chǎng)景下環(huán)境變得復(fù)雜,YOLOv3不能滿足檢測(cè)要求,學(xué)者們?yōu)榇颂岢隽艘幌盗懈倪M(jìn)方法,如岳曉新等人[10]提出的道路小目標(biāo)檢測(cè)算法,康莊等人[11]提出的行人檢測(cè)算法,楊靜等人[12]提出的安全帽佩戴檢測(cè)算法,這些在特定場(chǎng)景下改進(jìn)后的YOLOv3算法都有不錯(cuò)的檢測(cè)效果。
本文針對(duì)人群環(huán)境下口罩佩戴檢測(cè)中存在的密集、遮擋、小尺寸目標(biāo)等問(wèn)題,通過(guò)在YOLOv3算法模型基礎(chǔ)上進(jìn)行改進(jìn)與優(yōu)化,實(shí)現(xiàn)人群口罩佩戴檢測(cè)任務(wù)。
2018年,Redmon等 人在YOLOv2的 基礎(chǔ) 上融 合ResNet、FPN等方法提出了YOLOv3一階目標(biāo)檢測(cè)算法,其整體網(wǎng)絡(luò)結(jié)構(gòu)如圖1(a)所示。
YOLOv3采用去除了全連接層的Darknet-53作為特征提取網(wǎng)絡(luò)。Darknet-53主要由5個(gè)分別含有1、2、8、8、4個(gè)殘差單元的殘差塊構(gòu)成。殘差單元結(jié)構(gòu)如圖1(c)所示,殘差塊結(jié)構(gòu)如圖1(d)所示,其融合殘差網(wǎng)絡(luò)思想,在網(wǎng)絡(luò)中使用大量的跳躍連接結(jié)構(gòu),這種設(shè)計(jì)可以有效保證網(wǎng)絡(luò)訓(xùn)練時(shí)收斂,改善隨著網(wǎng)絡(luò)層數(shù)不斷加深帶來(lái)的梯度彌散問(wèn)題[13]。YOLOv3采用特殊的卷積結(jié)構(gòu)DarknetConv2D,如圖1(b)所示,卷積時(shí)加入一個(gè)L2批正則化層(Batch Normalization),對(duì)輸入數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,然后采用Leaky Relu激活函數(shù)。圖1中Convolutional Set表示5個(gè)1×1、3×3、1×1、3×3、1×1的卷積層。在圖像輸入特征提取網(wǎng)絡(luò)后,選取對(duì)輸入圖像8倍、16倍、32倍下采樣后的特征圖,經(jīng)過(guò)一系列的上采樣與特征融合,然后通過(guò)5次卷積處理,再通過(guò)1次DarknetConv2D(3×3)卷積和一次普通Conv(3×3)卷積進(jìn)行通道調(diào)整后送入相應(yīng)檢測(cè)層,通過(guò)13×13、26×26、52×52三個(gè)不同尺度的特征層實(shí)現(xiàn)對(duì)大、中、小尺度目標(biāo)的檢測(cè)。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv3 network structure
但是直接將YOLOv3算法應(yīng)用于人群環(huán)境下口罩佩戴檢測(cè)任務(wù)中仍有不足:一是在Darknet-53特征提取網(wǎng)絡(luò)中,隨著網(wǎng)絡(luò)結(jié)構(gòu)的加深,淺層特征信息沒(méi)有得到充分利用,會(huì)導(dǎo)致丟失很多小目標(biāo)的位置信息;二是YOLOv3算法對(duì)目標(biāo)預(yù)測(cè)的準(zhǔn)確性依賴于IoU,隨著IoU的增大,對(duì)目標(biāo)位置的預(yù)測(cè)精度會(huì)下降;三是針對(duì)人群場(chǎng)景中的密集、遮擋目標(biāo)與尺度變化等問(wèn)題,YOLOv3算法有較大提升空間。針對(duì)上述問(wèn)題,本文在YOLOv3算法的基礎(chǔ)上進(jìn)行改進(jìn)與優(yōu)化。
原始YOLOv3網(wǎng)絡(luò)以Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)為骨干,使用3個(gè)預(yù)測(cè)層以3種不同的尺度檢測(cè)對(duì)象。該網(wǎng)絡(luò)將輸入的原圖像經(jīng)過(guò)8倍下采樣、16倍下采樣、32倍下采樣后的特征圖作為特征融合網(wǎng)絡(luò)的輸入。在一般場(chǎng)景下,由于目標(biāo)大小與距離的不確定性,該方法對(duì)正常大小的物體有不錯(cuò)的檢測(cè)效果,但是在人群環(huán)境下,大部分人臉目標(biāo)在圖像中所占比例較小,對(duì)目標(biāo)的檢測(cè)效果會(huì)大大降低,并且由于下采樣操作會(huì)丟失目標(biāo)很多的有用信息,會(huì)造成一些目標(biāo)漏檢。
在檢測(cè)小目標(biāo)時(shí),原YOLOv3網(wǎng)絡(luò)主要通過(guò)利用8倍下采樣層的信息來(lái)檢測(cè)目標(biāo),因此當(dāng)圖像中目標(biāo)的大小低于8×8時(shí),網(wǎng)絡(luò)幾乎無(wú)法預(yù)測(cè),即使目標(biāo)大小剛好大于8×8,由于缺少目標(biāo)的特征信息,網(wǎng)絡(luò)檢測(cè)該目標(biāo)的能力也會(huì)大大降低。4倍下采樣的特征圖感受野較小,利用該尺寸特征圖的信息去檢測(cè)目標(biāo),可以提升對(duì)小尺寸口罩佩戴目標(biāo)的檢測(cè)效果。本文將第2個(gè)殘差塊輸出的4倍下采樣后的104×104特征圖作為新的特征層與其他3個(gè)特征層作為特征融合網(wǎng)絡(luò)的輸入,得到尺寸大小為104×104的新尺度特征檢測(cè)層,如圖2所示,最后形成4尺度檢測(cè)結(jié)構(gòu)。這樣即使圖像中目標(biāo)的尺度有較大變化,也可以在多個(gè)尺度上準(zhǔn)確檢測(cè),提升網(wǎng)絡(luò)對(duì)口罩佩戴檢測(cè)的準(zhǔn)確率。
圖2 改進(jìn)的多尺度檢測(cè)結(jié)構(gòu)Fig.2 Improved multi-scale detection structure
卷積神經(jīng)網(wǎng)絡(luò)中,不同層次的特征圖含有目標(biāo)不同的特征信息。淺層特征分辨率更高,含有目標(biāo)更豐富的位置信息,深層特征含有較強(qiáng)的語(yǔ)義信息,但位置信息相對(duì)粗糙。利用淺層特征可以將簡(jiǎn)單的目標(biāo)區(qū)分開(kāi)來(lái),利用深層的特征可以區(qū)分開(kāi)一些復(fù)雜的目標(biāo),因此構(gòu)建特征金字塔,將高層網(wǎng)絡(luò)與低層網(wǎng)絡(luò)的特征信息融合更有利于對(duì)目標(biāo)特征的描述。
原始YOLOv3算法采用的特征融合網(wǎng)絡(luò)為特征金字塔網(wǎng)絡(luò)(Feature Pyramid Network,F(xiàn)PN),如圖3所示,將52×52、26×26、13×13三個(gè)不同尺度的特征信息通過(guò)特征金字塔結(jié)構(gòu)進(jìn)行融合,實(shí)現(xiàn)多尺度檢測(cè)。FPN采用的是自頂向下的融合方式,將深層的強(qiáng)語(yǔ)義特征信息傳遞下來(lái),對(duì)整個(gè)金字塔進(jìn)行增強(qiáng),但是只對(duì)語(yǔ)義信息進(jìn)行了增強(qiáng),沒(méi)有傳遞定位信息。PANet[14]針對(duì)這一點(diǎn)進(jìn)行了補(bǔ)充,其采用自上而下與自上而下的路徑增強(qiáng),在FPN的后面添加了自底向上的金字塔,利用淺層特征包含的豐富的定位信息,實(shí)現(xiàn)特征增強(qiáng)。
圖3 特征金字塔網(wǎng)絡(luò)Fig.3 Feature pyramid network
在人群口罩佩戴檢測(cè)中存在目標(biāo)密集、尺寸小、容易相互遮擋等問(wèn)題,網(wǎng)絡(luò)模型需要利用更多的目標(biāo)特征信息。本文對(duì)原始YOLOv3算法的FPN進(jìn)行改進(jìn),使用特征提取網(wǎng)絡(luò)的4個(gè)降采樣特征圖作為特征融合網(wǎng)絡(luò)的輸入,并將FPN與路徑增強(qiáng)策略結(jié)合,通過(guò)自上而下和自下而上的融合方式可以進(jìn)一步利用特征信息,讓模型更好地學(xué)習(xí)目標(biāo)特征,更有利于模型對(duì)小目標(biāo)和被遮擋目標(biāo)的檢測(cè)。改進(jìn)的特征融合網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 改進(jìn)的特征融合網(wǎng)絡(luò)Fig.4 Improved feature fusion network
本文將YOLOv3通過(guò)對(duì)多尺度檢測(cè)網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)、損失函數(shù)進(jìn)行改進(jìn),其改進(jìn)后的YOLOv3整體結(jié)構(gòu)如圖5所示。輸入圖像經(jīng)過(guò)Darknet-53特征提取網(wǎng)絡(luò)多次下采樣后輸出4層不同尺度的特征圖,殘差塊5輸出的32倍下采樣特征圖在經(jīng)過(guò)Convolutional Set1的5次卷積處理后進(jìn)行上采樣與殘差塊4輸出的16倍下采樣特征圖進(jìn)行拼接融合,融合后的16倍下采樣特征圖用同樣的方法與殘差塊3輸出的8倍下采樣特征圖拼接融合;然后將融合后的8倍下采樣特征圖用相同的操作與殘差塊2輸出的4倍下采樣特征圖進(jìn)行融合,完成自上而下的特征融合;融合后的4倍下采樣特征圖通過(guò)Convolutional Set4的5次卷積處理后進(jìn)行下采樣操作,與Convolutional Set3輸出的8倍下采樣特征圖進(jìn)行第2次融合,融合后的8倍下采樣特征圖通過(guò)5次卷積處理后進(jìn)行下采樣與Convolutional Set2輸出的16倍下采樣特征圖第2次融合,同樣的方式得到2次融合后的32倍下采樣特征圖,完成自下而上的特征融合;最后將4種不同尺度的特征圖都通過(guò)1次DarknetConv2D(3×3)卷積和1次普通Conv(3×3)卷積進(jìn)行通道調(diào)整后輸入YOLO Head進(jìn)行預(yù)測(cè),形成具有104×104、52×52、26×26、13×13檢測(cè)層的4尺度檢測(cè)網(wǎng)絡(luò)。
圖5 改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Improved YOLOv3 network structure
YOLOv3損失函數(shù)公式如式(1)所示,其由類別損失、置信度損失、位置損失三部分組成;其中在邊框回歸過(guò)程中采用的是均方差(MSE)損失函數(shù),如式(2)所示;在置信度和分類損失上采用的是二元交叉熵?fù)p失函數(shù),如式(3)和式(4)所示:
式中,λcoord表示坐標(biāo)損失權(quán)重系數(shù),λnoobj表示不包含目標(biāo)的置信度損失權(quán)重系數(shù),分別表示預(yù)測(cè)框的坐標(biāo)信息、置信度和類別概率分別表示目標(biāo)真實(shí)框的坐標(biāo)信息、置信度和類別概率表示第i個(gè)網(wǎng)格的第j個(gè)先驗(yàn)框是否負(fù)責(zé)該object(如果負(fù)責(zé)則為1,否則為0)表示第i個(gè)網(wǎng)格的第j個(gè)先驗(yàn)框是否不負(fù)責(zé)該object(如果不負(fù)責(zé)則為1,否則為0)。IoU[15]是目標(biāo)檢測(cè)中常用的評(píng)價(jià)指標(biāo),計(jì)算方式如圖6所示。其中A表示預(yù)測(cè)框的面積,B表示真實(shí)框的面積,IoU是通過(guò)計(jì)算預(yù)測(cè)框與真實(shí)框的交集與并集的比值來(lái)反映預(yù)測(cè)的邊框與真實(shí)的邊框的重疊程度。
圖6 IoU計(jì)算Fig.6 IoU calculation
YOLOv3進(jìn)行邊框回歸時(shí)依賴于IoU,雖然IoU考慮了重疊面積,但是僅依靠IoU進(jìn)行邊框回歸會(huì)存在一些問(wèn)題。一是從圖6中可以看出,IoU只有在兩個(gè)邊框有重疊區(qū)域時(shí)才能發(fā)揮作用,當(dāng)預(yù)測(cè)框與真實(shí)框不相交時(shí),IoU始終為0,無(wú)法反映兩個(gè)邊框距離遠(yuǎn)近,進(jìn)而無(wú)法優(yōu)化;二是在使用IoU計(jì)算損失時(shí),其結(jié)果僅僅與兩個(gè)框的交并比即重疊面積有關(guān),如圖7所示,這三種情況下兩個(gè)框的相交面積一樣,但重合度卻相差很多,使用IoU不能將此類情況區(qū)分開(kāi)。由此可見(jiàn),在一些情況下IoU不能作為重疊程度的衡量指標(biāo)。
圖7 IoU相同的三種情況Fig,7 Three cases of same IoU
為了解決這些問(wèn)題,本文引入CIoU[16]代替IoU作為邊框回歸損失函數(shù)。CIoU將邊框回歸損失應(yīng)該注意的三個(gè)重要的幾何因素“重疊面積、中心點(diǎn)距離、長(zhǎng)寬比”都考慮了進(jìn)來(lái),使得邊框回歸更加穩(wěn)定,收斂的精度更高,其損失函數(shù)公式如式(5)所示:
其中,b和bgt分別表示預(yù)測(cè)邊框與真實(shí)邊框的中心點(diǎn),ρ()?表示歐式距離,c表示預(yù)測(cè)框與真實(shí)框的最小外接矩形的對(duì)角線距離。αν為懲罰因子,這個(gè)因子把預(yù)測(cè)框長(zhǎng)寬比擬合目標(biāo)框的長(zhǎng)寬比考慮進(jìn)去,其中α是用來(lái)作trade-off的參數(shù),ν是用來(lái)衡量長(zhǎng)寬比一致性的參數(shù)。α與ν的計(jì)算公式分別如式(6)和式(7)所示:
YOLOv3算法使用先驗(yàn)框的思想是基于Fast R-CNN的設(shè)計(jì),其通過(guò)固定數(shù)量的固定大小的初始先驗(yàn)框來(lái)檢測(cè)對(duì)象。先驗(yàn)框尺寸的選擇會(huì)直接影響網(wǎng)絡(luò)檢測(cè)目標(biāo)的速度與精度,合適的先驗(yàn)框的尺寸能夠加快模型訓(xùn)練時(shí)的收斂速度,而且能夠使定位更加精準(zhǔn)。YOLOv3使用K-means方法對(duì)數(shù)據(jù)集中的對(duì)象進(jìn)行聚類分析得到9個(gè)先驗(yàn)框的尺寸大小,分給3個(gè)不同尺度的檢測(cè)層,每個(gè)預(yù)測(cè)框生成3個(gè)不同比例的先驗(yàn)框,選取與真實(shí)目標(biāo)框交并比最大的先驗(yàn)框去進(jìn)行損失計(jì)算。聚類中Kmeans算法通過(guò)IoU來(lái)計(jì)算標(biāo)注框與聚類中心的距離,計(jì)算公式如式(8)所示:
本文改進(jìn)的網(wǎng)絡(luò)采用4尺度檢測(cè)結(jié)構(gòu),相比于原YOLOv3網(wǎng)絡(luò)多了1個(gè)尺度,因此原有的3×3先驗(yàn)框已不再適用,需要重新聚類。在本文的人臉口罩佩戴數(shù)據(jù)集上進(jìn)行聚類分析,經(jīng)過(guò)多次實(shí)驗(yàn),權(quán)衡平均交并比(Avg IoU)與聚類中心數(shù)K,實(shí)驗(yàn)過(guò)程圖8所示,隨著K的增加,平均交并比變的逐漸平穩(wěn)。
圖8 K-means聚類分析結(jié)果圖Fig.8 K-means cluster analysis result
本文的聚類中心數(shù)K設(shè)為12個(gè),通過(guò)聚類分析得到12組不同尺寸大小的先驗(yàn)框。因?yàn)榇蟪叨忍卣鲌D用來(lái)檢測(cè)小目標(biāo),小尺度特征層用來(lái)檢測(cè)大目標(biāo),所以小尺寸的先驗(yàn)框要分配給大尺度的特征圖,大尺寸的先驗(yàn)框要分配給小尺度的特征圖來(lái)進(jìn)行邊框的回歸。4個(gè)尺度的先驗(yàn)框尺寸分配如表1所示。
表1 先驗(yàn)框尺寸分配Table 1 Prior box size assignment
本文從WIDER Face、MAFA(Masked Faces)、RMFD(Real-World Masked Face Dataset)三個(gè)公開(kāi)數(shù)據(jù)集和網(wǎng)絡(luò)搜集中篩選出含有多人場(chǎng)景的佩戴口罩人臉與未佩戴口罩人臉圖片,共5 000張。將數(shù)據(jù)集制作成VOC格式,并用標(biāo)記軟件LabelImg對(duì)圖像中的人臉進(jìn)行標(biāo)注,標(biāo)注信息有兩個(gè)類別have_mask(佩戴口罩人臉)和no_mask(未佩戴口罩人臉),將標(biāo)注好的信息保存為VOC格式需要的xml文件。數(shù)據(jù)集標(biāo)注示例如圖9所示,其中圖9(a)為標(biāo)注圖片示例,圖9(b)為標(biāo)注好的xml文件信息,
圖9 數(shù)據(jù)集標(biāo)注示例Fig.9 Example of data set annotation
本實(shí)驗(yàn)采用Window平臺(tái)通過(guò)python編程語(yǔ)言實(shí)現(xiàn),硬件環(huán)境為Intel?CoreTMi5-10400F CPU@2.90 GHz、16 GB RAM、NVIDIA GeForce RTX 2070S,使用Tensorflow/Keras深度學(xué)習(xí)框架。訓(xùn)練模型時(shí),將數(shù)據(jù)集按照9∶1比例劃分為訓(xùn)練集與測(cè)試集。訓(xùn)練過(guò)程中對(duì)學(xué)習(xí)率(Learn Rate)采用動(dòng)態(tài)調(diào)整策略,初始學(xué)習(xí)率設(shè)為0.001,當(dāng)模型連續(xù)3個(gè)Epoch的損失不再下降時(shí),將學(xué)習(xí)率減少為原來(lái)的1/2。訓(xùn)練批次大小為4,進(jìn)行150個(gè)Epoch的訓(xùn)練,模型訓(xùn)練的損失值收斂曲線見(jiàn)圖10。從中可以看出,模型訓(xùn)練在前60個(gè)Epoch時(shí)損失下降迅速,訓(xùn)練80個(gè)Epoch后損失逐漸平穩(wěn),迭代150個(gè)Epoch后損失幾乎不再變化,模型達(dá)到收斂。
圖10 訓(xùn)練損失下降曲線Fig.10 Training loss decline curve
本文采取平均精度(Average Precision,AP)、平均精度均值(mean Average Precision,mAP)以及每秒檢測(cè)圖片的幀數(shù)(Frames Per Second,F(xiàn)PS)三種目標(biāo)檢測(cè)算法中公用的性能指標(biāo)來(lái)評(píng)估本文算法的性能。計(jì)算平均精度還需引入查準(zhǔn)率(Precision)和召回率(Recall),計(jì)算公式如下:
式中,TP代表預(yù)測(cè)是正樣本且確實(shí)是正樣本的數(shù)量,F(xiàn)P代表預(yù)測(cè)是正樣本但實(shí)際上不是正樣本的數(shù)量,F(xiàn)N代表預(yù)測(cè)是負(fù)樣本但實(shí)際上不是負(fù)樣本的數(shù)量。通過(guò)計(jì)算不同召回率下最高的查準(zhǔn)率繪制P-R曲線,然后計(jì)算P-R曲線圍成的面積即可得到某一類別的AP值。mAP值是對(duì)所有類別的AP求均值得到,mAP越大則算法性能越好,識(shí)別精度越高。
在數(shù)據(jù)集中隨機(jī)劃分的500張測(cè)試集圖片上進(jìn)行測(cè)試。本文改進(jìn)的YOLOv3算法檢測(cè)結(jié)果的P-R曲線如圖11所示,have_mask與no_mask兩種目標(biāo)類別的AP值分別達(dá)到了95.19%、92.13%。
圖11 改進(jìn)的YOLOV3算法各類目標(biāo)P-R曲線Fig.11 P-R curves of various targets of improved YOLOv3 algorithm
為了進(jìn)一步驗(yàn)證本文算法的有效性,將本文算法與原始YOLOv3、Faster R-CNN、SSD、YOLOv4[17]、Efficient-Det[18]等主流的目標(biāo)檢測(cè)算法性能指標(biāo)進(jìn)行比較,對(duì)比結(jié)果如表2所示。
表2 算法結(jié)果性能對(duì)比Table 2 Performance comparison of algorithm results
從表2可以看出,相比于其他主流目標(biāo)檢測(cè)算法,本文算法在人群口罩佩戴檢測(cè)上有更高的檢測(cè)精度,mAP值達(dá)到了93.66%,與原始YOLOv3算法相比,兩種類別AP值分別提高了5.92個(gè)百分點(diǎn)和5.30個(gè)百分點(diǎn),mAP值提高了5.61個(gè)百分點(diǎn)。在檢測(cè)速率上,本文算法FPS為28.5,速度不及SSD與YOLOv4算法,與原YOLOv3相比,檢測(cè)單張圖片時(shí)間增加了7 ms,幀率降低了7.2,但仍大于25,可以達(dá)到實(shí)時(shí)性要求。本文算法與原始YOLOv3、SSD、Faster R-CNN、YOLOv4、Efficient-Det目標(biāo)檢測(cè)算法檢測(cè)效果對(duì)比如圖12所示。
從圖12(a)(b)(c)檢測(cè)結(jié)果中可以看出,SSD算法在小目標(biāo)檢測(cè)上效果較差,且預(yù)測(cè)置信度普遍較低;Faster R-CNN算法在檢測(cè)結(jié)果上表現(xiàn)優(yōu)于SSD算法,并且預(yù)測(cè)置信度明顯提升,但整體表現(xiàn)依然不是很好,如圖12(d)(e)(f)所示;相比于前兩種算法,EfficientDet、原始YOLOv3、YOLOv4算法在檢測(cè)中表現(xiàn)相對(duì)較好,但是在小目標(biāo)和被遮擋目標(biāo)上會(huì)存在漏檢的情況,如圖12(i)(l)(o)所示;與其他算法相比,本文算法在人群口罩佩戴檢測(cè)中效果有較大提升,在目標(biāo)密集環(huán)境下漏檢率明顯降低。圖12(j)中,原始YOLOv3算法漏檢了2個(gè)未佩戴口罩人臉目標(biāo),圖12(p)為本文算法檢測(cè)結(jié)果,成功將其檢測(cè)出來(lái)且置信度幾乎為1;圖12(k)中,原模型共檢測(cè)出15個(gè)目標(biāo),本文改進(jìn)后的模型檢測(cè)結(jié)果如圖12(q)所示,共檢測(cè)出了20個(gè)目標(biāo);圖12(l)中,YOLOv3原模型共檢測(cè)出了13個(gè)佩戴口罩的人臉,本文改進(jìn)算法模型共檢測(cè)出了18個(gè)目標(biāo),如圖12(r)所示,比原模型多檢測(cè)出5個(gè)目標(biāo),成功檢測(cè)出了原模型漏檢的一些小目標(biāo)與被遮擋目標(biāo)。從圖12(p)(q)(r)中可以看出,本文模型在檢測(cè)目標(biāo)的置信度上有了顯著提升,有著更高的預(yù)測(cè)準(zhǔn)確率。綜上所述,與其他算法相比,本文算法更適用于人群口罩佩戴檢測(cè),在密集小目標(biāo)與被遮擋目標(biāo)的檢測(cè)效果上有著顯著提升。
圖12 不同算法的檢測(cè)效果對(duì)比Fig.12 Comparison of detection results of different algorithms
針對(duì)人群環(huán)境下存在的口罩佩戴檢測(cè)中密集、遮擋目標(biāo)與小目標(biāo)檢測(cè)效果差等問(wèn)題,本文以YOLOv3網(wǎng)絡(luò)為基礎(chǔ)提出一種改進(jìn)的YOLOv3算法。首先,改進(jìn)YOLOv3的多尺度檢測(cè)網(wǎng)絡(luò),在原網(wǎng)絡(luò)中增加新的淺層檢測(cè)尺度構(gòu)成4尺度檢測(cè)結(jié)構(gòu),并在數(shù)據(jù)集上重新聚類生成新的先驗(yàn)框尺寸分配給各個(gè)檢測(cè)層;然后,引入自上而下和自下而上的特征融合策略將低層特征圖細(xì)節(jié)信息與高層特征圖語(yǔ)義信息融合,進(jìn)一步利用特征信息;接著,采用CIoU損失函數(shù)進(jìn)行邊框回歸,增加模型定位的準(zhǔn)確性;最后,在本文建立的數(shù)據(jù)集上進(jìn)行訓(xùn)練與測(cè)試。實(shí)驗(yàn)結(jié)果表明,本文算法在人群口罩佩戴檢測(cè)中平均精度均值達(dá)到了93.66%,比原YOLOv3算法提高了5.61個(gè)百分點(diǎn),與其他主流目標(biāo)檢測(cè)算法相比有較大優(yōu)勢(shì),同時(shí)檢測(cè)速率上滿足實(shí)時(shí)性要求,有一定的實(shí)用性與有效性。由于改進(jìn)算法使網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜化,增加了模型參數(shù),檢測(cè)速率有所下降,后續(xù)將考慮輕量化網(wǎng)絡(luò)結(jié)構(gòu),提升檢測(cè)速率。