張 鑫,李 瑞,李偉奇
(1.大連交通大學(xué) 軟件學(xué)院,遼寧 大連 116028; 2.大連交通大學(xué) 機(jī)械工程學(xué)院,遼寧 大連 116028)
2020年,新冠肺炎肆虐全球,正確佩戴口罩是阻止病毒在人與人之間相互傳播的重要舉措。通用算法幾乎都能運(yùn)用于口罩佩戴檢測(cè)[1],但像人員遮擋、目標(biāo)對(duì)象較小、密集人群等問題,通用算法檢測(cè)出來的效果并不是十分理想。為了解決這些問題,研究者們進(jìn)行了大量的研究工作并取得了顯著進(jìn)展:Pang等[2]設(shè)計(jì)了基于掩碼的空間注意力機(jī)制模塊,讓模型更加關(guān)注于行人未被遮擋部分的特征;Liu等[3]將全卷積網(wǎng)絡(luò)與可變性卷積思想相結(jié)合,為了增加模型特征編碼的靈活性,采用了位置敏感的DCN[4]池化,讓模型盡可能多地從行人可見的部分中學(xué)習(xí)相應(yīng)特征,來預(yù)防其它物體的遮擋干擾。
隨著計(jì)算機(jī)視覺技術(shù)不斷的發(fā)展,目標(biāo)檢測(cè)技術(shù)也在不斷優(yōu)化,大致分為兩類:雙步(Two-Stage)法和單步(One-Stage)法。相比而言,這兩類算法也是相互對(duì)立的,雙步法檢測(cè)精度高,而單步法檢測(cè)速度快。最經(jīng)典的單步法有SSD[5](single shot multibox detector)、YOLO[6-9](you only look once)系列算法;雙步法有R-CNN(region conventional neural network)系列算法。考慮到在實(shí)際監(jiān)控下的人員檢測(cè)任務(wù)中需要達(dá)到一種能實(shí)時(shí)檢測(cè)的狀態(tài),而YOLO系列網(wǎng)絡(luò)在檢測(cè)速度方面可以保證實(shí)時(shí)性,其中第3代版本YOLOV3同時(shí)兼顧了檢測(cè)的時(shí)間和精度,相比其它更高的版本,YOLOV3有著更成熟、更穩(wěn)定的技術(shù),所以本文在通用的目標(biāo)檢測(cè)算法YOLOV3的基礎(chǔ)上,對(duì)該算法進(jìn)行改進(jìn),希望得到更好的檢測(cè)效果。
YOLOV3是Redmon等提出的,主要由骨干網(wǎng)絡(luò)Darknet-53和YOLO檢測(cè)層組成,Darknet-53結(jié)構(gòu)主要作用是提取圖像的特征信息,YOLO層是用來預(yù)測(cè)其類別和位置信息。該算法的骨干網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。YOLOV3算法有明顯的兩大優(yōu)勢(shì):第一大優(yōu)勢(shì)是采用了以Darknet-53[10]網(wǎng)絡(luò)作為主干特征提取網(wǎng)絡(luò),并結(jié)合了ResNet殘差網(wǎng)絡(luò)結(jié)構(gòu)的思想[11]。卷積層主要包括兩類濾波器,分別是1×1和3×3,前一種濾波器是用于壓縮特征,后一種濾波器的作用主要是通過減少寬度和高度,來擴(kuò)展通道的數(shù)量。這種結(jié)構(gòu)的最大特點(diǎn)之一就是能通過增加相應(yīng)的深度來提高準(zhǔn)確率,但是也會(huì)在訓(xùn)練模型中發(fā)生梯度爆炸以及梯度消失的問題,YOLOV3算法內(nèi)部的殘差塊使用了跳躍連接,促進(jìn)了多個(gè)不同特征的融合學(xué)習(xí)。

圖1 YOLOV3主要網(wǎng)絡(luò)結(jié)構(gòu)
針對(duì)尺寸不同的檢測(cè)圖像,YOLOV3算法運(yùn)用了13×13,26×26,52×52尺度的特征圖實(shí)行檢測(cè)[12],由于每個(gè)尺度的感受野都各不相同,檢測(cè)圖像的大小也有所區(qū)分,尺度越小的反而檢測(cè)大的圖像,即13×13檢測(cè)大尺寸圖像,而52×52檢測(cè)小尺寸圖像,26×26檢測(cè)中等圖像。對(duì)于每個(gè)尺度分支來說,在每個(gè)網(wǎng)格中會(huì)檢測(cè)出3個(gè)結(jié)果,這是因?yàn)槊總€(gè)尺度下會(huì)有3個(gè)先驗(yàn)框(anchor box),是根據(jù)K-Means聚類生成的。最后將3次檢測(cè)的結(jié)果整合使用非極大值抑制(non-maximum suppression,NMS),獲得結(jié)果。舉例來說,輸入一張需要檢測(cè)的圖像,剛開始將其劃分為S×S的網(wǎng)格,需要預(yù)測(cè)C個(gè)類別,則最終3個(gè)規(guī)模獲得的張量是S×S×[3×(5+C)], 其中包含了目標(biāo)邊框的4個(gè)偏移坐標(biāo)和置信度得分,因而增強(qiáng)了對(duì)小尺度對(duì)象的檢測(cè)能力。這也是YOLOV3算法與其它算法相比的另一大優(yōu)勢(shì)。但是直接應(yīng)用于自然場(chǎng)合下的口罩佩戴檢測(cè)任務(wù)還是有一些不足。其一,YOLOV3雖然在小目標(biāo)的檢測(cè)精度上有一定的提升,但同時(shí)也出現(xiàn)了淺層特征提取不充分的問題;其二,YOLOV3預(yù)測(cè)的準(zhǔn)確性是使用IoU(intersection over union)損失函數(shù)來判定預(yù)測(cè)框的好壞,但當(dāng)IoU的值增大時(shí),檢測(cè)的精確率會(huì)有所下降;其三,對(duì)于自然場(chǎng)景下被遮住、密集人群以及小尺度的目標(biāo)檢測(cè)等問題,YOLOV3仍有不足的地方。針對(duì)以上問題,本文為了提升口罩在自然環(huán)境下的目標(biāo)檢測(cè)算法的準(zhǔn)確率,以YOLOV3算法為基礎(chǔ)進(jìn)行了改進(jìn)和優(yōu)化。
本文對(duì)YOLOV3的改進(jìn)主要包括3個(gè)方面,分別是對(duì)主網(wǎng)絡(luò)結(jié)構(gòu)、特征增強(qiáng)網(wǎng)絡(luò)和IoU損失函數(shù)的改進(jìn)。
YOLOV3中的主網(wǎng)絡(luò)結(jié)構(gòu)Darknet-53是由23(1+2+8+8+4)個(gè)循環(huán)模塊組成的,每個(gè)循環(huán)模塊中都含有一個(gè)(1×1)的卷積核、一個(gè)(3×3)的卷積核和一個(gè)殘差網(wǎng)絡(luò)層。網(wǎng)絡(luò)中在改變特征圖像尺度方面并未運(yùn)用池化層,而是采用卷積核是(3×3),步長(zhǎng)為2的方式對(duì)圖像進(jìn)行下采樣。而由此搭配的網(wǎng)絡(luò)結(jié)構(gòu),在網(wǎng)絡(luò)深度方面無疑得到了很好的加深,但卻忽略了網(wǎng)絡(luò)的寬度,只能提取簡(jiǎn)單的特征信息。另外,網(wǎng)絡(luò)結(jié)構(gòu)的加深也會(huì)導(dǎo)致網(wǎng)絡(luò)變得復(fù)雜,當(dāng)訓(xùn)練時(shí)會(huì)出現(xiàn)收斂困難或產(chǎn)生梯度消失的情形,這樣不能保證檢測(cè)的實(shí)時(shí)性,基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比情況見表1。

表1 基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)比
由表1可知,Darknet-19到Darknet-53,隨著網(wǎng)絡(luò)層數(shù)的不斷加深可以得到更詳盡的特征信息,但是檢測(cè)的速率也會(huì)隨之降低。所以,本文引入了Inception-v4網(wǎng)絡(luò)的構(gòu)建思想,Inception-v4網(wǎng)絡(luò)[13]是由Google團(tuán)隊(duì)提出的一種網(wǎng)絡(luò),該網(wǎng)絡(luò)的特點(diǎn)是計(jì)算量較低且具有良好的特性。為了增加多尺度特征提取且減少網(wǎng)絡(luò)的循環(huán)次數(shù),本文將該網(wǎng)絡(luò)的思想與YOLOV3進(jìn)行融合,來保證網(wǎng)絡(luò)的實(shí)時(shí)性。改進(jìn)后的卷積單元層如圖2所示。

圖2 改進(jìn)的YOLOV3卷積層
首先,在改進(jìn)的YOLOV3卷積層中,參考inception網(wǎng)絡(luò)結(jié)構(gòu)的思想,引入(1×1)、(5×5)的卷積核。為了調(diào)整輸出的通道數(shù),增加了(1×1)的卷積核,后又添加了尺度為(5×5)的卷積核是為了擴(kuò)大感知范圍,在卷積過程中來獲取更多的特征信息,接下來是將所有分路中提取到的特征將其融合作為下一層的輸入。為了減少計(jì)算量并使卷積具有相同的效果,采用(3×1)和(1×3)兩個(gè)尺度的卷積核來替換一個(gè)(5×5)的卷積核。然后開始計(jì)算參數(shù)的數(shù)目,(3×1)和(1×3)卷積核的計(jì)算參數(shù)的數(shù)目是18個(gè),一個(gè)尺度為(5×5)卷積核的計(jì)算參數(shù)的數(shù)目為25個(gè),對(duì)于單層的計(jì)算參數(shù)的數(shù)目少了許多。同時(shí),隨著網(wǎng)絡(luò)寬度的增加,也導(dǎo)致計(jì)算量參數(shù)的數(shù)目增加,為此將減少YOLOV3網(wǎng)絡(luò)結(jié)構(gòu)的循環(huán)次數(shù)以確保網(wǎng)絡(luò)的實(shí)時(shí)性。最后,開始進(jìn)行多尺度上采樣操作,這樣對(duì)不同感受野的特征圖的提取、不同尺度的目標(biāo)對(duì)象進(jìn)行識(shí)別有利。
本文在對(duì)Darknet-53網(wǎng)絡(luò)進(jìn)行優(yōu)化之后,為了進(jìn)一步增強(qiáng)檢測(cè)層特征的表達(dá),又引進(jìn)了特征增強(qiáng)網(wǎng)絡(luò)結(jié)構(gòu)模塊。
SPP結(jié)構(gòu)是由He Kaiming等[14]提出的,它的提出豐富了CNN目標(biāo)檢測(cè)的方法。CNN結(jié)構(gòu)中包括的幾個(gè)層次中,卷積池化層并不關(guān)心輸入圖像的尺寸大小,依然可以實(shí)現(xiàn)特征提取,但是全連接層需要相同維度的圖像。全連接層的主要功能是矩陣向量乘積,如式(1)所示
y=w*x+b
(1)
式中:x為輸入圖像的像素矩陣;w為權(quán)重,是一個(gè)固定大小的矩陣;b是偏置矩陣;y為輸出圖像的像素矩陣。從這里可以看出,如果輸入圖像的x維數(shù)不同,則參數(shù)w的權(quán)重也會(huì)隨之不一樣。所以,許多的CNN網(wǎng)絡(luò)中都需要尺寸不變的圖像。為了捕獲多尺度局部特征信息,本文引入SPP結(jié)構(gòu)。它在卷積池化層與全連接層之間建立一個(gè)連接,使得輸入圖像在本文網(wǎng)絡(luò)框架可以生成固定大小的圖像,所以在圖像形變方面有較好的魯棒性。引入的SPP結(jié)構(gòu)總共設(shè)置為3層,池化核要盡量接近需要池化的特征圖的大小,即13×13,因此將池化核設(shè)置為13,其余兩個(gè)池化核減4,設(shè)置為9和5,并選擇最大池化(max pooling),更進(jìn)一步為多尺度目標(biāo)檢測(cè)做鋪墊,實(shí)現(xiàn)局部特征和全局特征的特征圖級(jí)別的融合,不僅增加了網(wǎng)絡(luò)結(jié)構(gòu)的魯棒性,而且減少了過擬合,從而提高模型的性能,因此加入SPP結(jié)構(gòu)是值得的。具體原理如圖3所示。

圖3 SPP目標(biāo)檢測(cè)原理
為了進(jìn)一步提高模型的性能,本文在YOLOV3基礎(chǔ)上,引進(jìn)了SPP的思想將兩者優(yōu)勢(shì)相結(jié)合。SPP具體步驟可以參考文獻(xiàn)[14]。這個(gè)結(jié)構(gòu)的使用極大地增加了最后一個(gè)特征層的感受野,從而加強(qiáng)檢測(cè)的準(zhǔn)確度,且未增添多少參數(shù)量與計(jì)算量,并將最顯而易見的上下文特征分離開,來進(jìn)一步獲得較為豐富的局部特征信息。然后進(jìn)入全連接層。但是引入SPP之后也會(huì)攔截神經(jīng)網(wǎng)絡(luò)梯度下降的反向傳播。綜合以上這些因素,改進(jìn)后的YOLOV3整體網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。另外,每個(gè)卷積層后都有1個(gè)BN(batch normalization)層和1個(gè)LeakyReLU,這是為了防止訓(xùn)練過程中得到的預(yù)測(cè)模型過擬合。這也是YOLOV3的優(yōu)勢(shì)所在。

圖4 改進(jìn)的YOLOV3算法整體網(wǎng)絡(luò)結(jié)構(gòu)
在目標(biāo)檢測(cè)算法領(lǐng)域中,IoU[15]損失函數(shù)是最常用的距離測(cè)量標(biāo)準(zhǔn)。其值的計(jì)算如式(2)所示
(2)
式中:A表示預(yù)測(cè)框(Predict box);B表示真實(shí)框(Ground-truth box)。根據(jù)IoU損失函數(shù)計(jì)算公式,當(dāng)兩個(gè)框毫無交集時(shí),即A∩B=0, 那么IoU=0, 這意味著IoU損失函數(shù)不能成功計(jì)算出預(yù)測(cè)框和真實(shí)框的距離大小。也就是說其僅能在邊界框重疊時(shí)能夠發(fā)揮作用,而對(duì)于非重疊的部分不會(huì)出現(xiàn)任何梯度的調(diào)整。針對(duì)這個(gè)問題,本文引入GIoU損失函數(shù),該損失函數(shù)是Seyed Hamid Rezatofighi等提出的[16],其取值范圍為[-1,1],而IoU損失函數(shù)的取值范圍為[0,1]。GIoU在兩個(gè)框重疊時(shí)取值為1,在兩個(gè)框離得無限遠(yuǎn)時(shí),取值為-1,因此GIoU損失函數(shù)被認(rèn)為是很好的距離度量指標(biāo)。計(jì)算公式如下所示
(3)
式中:A是預(yù)測(cè)框;B是驗(yàn)證框;C代表兩個(gè)框的最小閉合區(qū)域面積。IoU與GIoU的兩者區(qū)別在于:IoU是只對(duì)重疊部分感興趣,其它部分并不感興趣;而GIoU對(duì)這兩個(gè)部分都同樣關(guān)注,因此GIoU更能反映兩者的距離大小。以GIoU作為衡量邊界框距離的指標(biāo),其損失函數(shù)如式(4)所示
GIoULoss=1-GIoU
(4)
從公式可以看出,GIoU越大,那么GIoULoss越小,因此網(wǎng)絡(luò)就會(huì)朝著預(yù)測(cè)框與真實(shí)框重疊度較高的方向去優(yōu)化。根據(jù)GIoULoss對(duì)YOLOV3模型邊界框損失函數(shù)進(jìn)行改進(jìn),改進(jìn)后的邊界框損失函數(shù)如式(5)所示
(5)

本文算法在pycharm中編程實(shí)現(xiàn),編程語言為python 3.7.4,使用TensorFlow-GPU 1.14.0和keras 2.2.4框架,并安裝了英偉達(dá)CUDA 10.0和cuDN v7.4.2硬件加速工具包,實(shí)驗(yàn)平臺(tái)為Intel(R) Core(TM)i5-9300H CPU @2.40 GH處理器和GeForce GTX 1660ti GPU,16 GB的運(yùn)行內(nèi)存。


圖5 數(shù)據(jù)集標(biāo)注示例
以改進(jìn)的YOLOV3算法為實(shí)驗(yàn)訓(xùn)練模型,對(duì)損失函數(shù)收斂性進(jìn)行驗(yàn)證。兩種Loss函數(shù)隨著迭代次數(shù)(batch)的變化曲線如圖6所示。圖中的兩條曲線分別表示邊框損失使用IoU的損失收斂函數(shù)和使用GIoU的損失收斂函數(shù)。雖然兩者在迭代一定次數(shù)后都會(huì)達(dá)到收斂狀態(tài),但是使用GIoU損失函數(shù)之后,模型平均損失收斂速度更快,曲線整體值低于IoU的值,而且batch之間的縱坐標(biāo)數(shù)值波動(dòng)大幅度降低,穩(wěn)定性也提高不少。由此看出,使用GIoU作為邊框損失函數(shù),對(duì)模型性能的提升有更大的意義,同時(shí)具有較高的魯棒性。

圖6 損失收斂對(duì)比
混淆矩陣是對(duì)深度學(xué)習(xí)模型預(yù)測(cè)結(jié)果的總結(jié)和分析,以矩陣的形式表示出測(cè)試集圖片的真實(shí)類別與模型預(yù)測(cè)的類別數(shù)量。本文對(duì)測(cè)試集內(nèi)的圖片進(jìn)行預(yù)測(cè),對(duì)比預(yù)測(cè)出來的結(jié)果與實(shí)際標(biāo)簽,其中實(shí)際標(biāo)簽已知,進(jìn)而衡量該模型的泛化能力。測(cè)試集是在已訓(xùn)練好的改進(jìn)的YOLOV3模型上的混淆矩陣,如圖7所示。

圖7 混淆矩陣
圖7中,最左上角方框代表實(shí)際是戴口罩的且經(jīng)過訓(xùn)練模型檢驗(yàn)后符合實(shí)際情況的數(shù)量,稱作真陽性(true position,TP),即TP=1431;最右上角方框代表實(shí)際為戴口罩的但通過訓(xùn)練模型誤判為不佩戴口罩的人的數(shù)量,稱作假陽性(false position,F(xiàn)P),即FP=101;最左下角表示實(shí)際上是不戴口罩的但通過訓(xùn)練模型誤判是戴口罩的人的數(shù)量,稱作假陰性(false negative,F(xiàn)N),即FN=185;最右下角方框代表實(shí)際上是不戴口罩的且經(jīng)過訓(xùn)練模型驗(yàn)證符合實(shí)際情況的數(shù)量,稱作真陰性(true negative,TN),即TN=1219。為了更好衡量訓(xùn)練出來的模型的優(yōu)劣,混淆矩陣所描述的數(shù)量,在混淆矩陣的統(tǒng)計(jì)結(jié)果之上將給出更進(jìn)一步的評(píng)價(jià)指標(biāo),如下所示。
(6)
(7)
(2)平均精度(average precision,AP),平均精度均值(mean average precision,mAP)

(8)
(9)
式中:p代表查準(zhǔn)率;r代表召回率;n代表所有目標(biāo)對(duì)象類別的個(gè)數(shù)。AP說明了單一類別的檢測(cè)成效,mAP說明了多分類檢測(cè)模型中全部類別的AP均值,mAP值越大準(zhǔn)確率越高。
(3)幀率(frames per second,F(xiàn)PS)
在目標(biāo)檢測(cè)中,幀率代表每秒鐘檢測(cè)的圖像的數(shù)量,被用來評(píng)價(jià)網(wǎng)絡(luò)的檢測(cè)速率。
經(jīng)過實(shí)驗(yàn),改進(jìn)的算法與原始的YOLOV3算法對(duì)于佩戴口罩檢測(cè)與未佩戴口罩檢測(cè)得出的P-R曲線,橫坐標(biāo)為召回率,縱坐標(biāo)為查準(zhǔn)率,P-R曲線下方的面積就是某類別的AP值。如圖8所示。

圖8 改進(jìn)的算法與YOLOV3算法的P-R曲線對(duì)比
由圖8可知,改進(jìn)的YOLOV3算法在人臉目標(biāo)檢測(cè)與人臉佩戴口罩檢測(cè)中均取得了不錯(cuò)的性能。在人臉口罩佩戴檢測(cè)中,改進(jìn)的算法取得了93.4%的AP值,比YOLOV3算法提高了6%;而對(duì)于未佩戴口罩的人臉檢測(cè)來說,改進(jìn)的算法與YOLOV3算法的AP值分別為86.8%、81.9%,雖然改進(jìn)的YOLOV3算法比原始算法有所提升,但其AP值仍比佩戴口罩的低,可能是因?yàn)閅OLOV3算法并不是專門適用于人臉目標(biāo)檢測(cè)的算法,而人臉的重要特征信息較多,但佩戴上口罩的話人臉就會(huì)被遮擋一部分,關(guān)鍵點(diǎn)信息減少,因此檢測(cè)精度比未佩戴口罩檢測(cè)要高。總之,改進(jìn)的YOLOV3算法與原始的YOLOV3算法比較,其mAP值增加了5.4%。
在實(shí)際的自然場(chǎng)景檢測(cè)中,經(jīng)常會(huì)出現(xiàn)一些人臉輪廓不是特別完整、人臉較小以及面部被遮擋的情形。因此設(shè)計(jì)了人們?cè)诓煌瑮l件下是否佩戴口罩的結(jié)果進(jìn)行分析對(duì)比。顯示結(jié)果如圖9所示。

圖9 正常人臉檢測(cè)結(jié)果
從圖9可以看出,兩者的檢測(cè)結(jié)果都正確。但是就識(shí)別的準(zhǔn)確率來說,圖9(a)中,YOLOV3的準(zhǔn)確率分別為70.59%,97.78%,99.25%;而圖9(b)中,改進(jìn)后的YOLOV3的算法準(zhǔn)確率分別為76.01%,98.45%,99.33%,相比于YOLOV3算法,本文改進(jìn)的YOLOV3算法的檢測(cè)準(zhǔn)確率效果更高一些。
如圖10(a)所示,可以看出YOLOV3有明顯的誤檢情況,將離得較遠(yuǎn)的戴口罩的人員誤判成未戴口罩的,且最高檢測(cè)精確率僅為95.03%;查看圖10(b),改進(jìn)后的YOLOV3算法可以成功檢測(cè)出其類別,且最高檢測(cè)精確率為97.09%,相比于YOLOV3算法能更準(zhǔn)確檢測(cè)出其目標(biāo)對(duì)象的類別。

圖10 側(cè)臉人臉檢測(cè)結(jié)果

圖11 被遮擋和密集人臉檢測(cè)結(jié)果
由圖11(a)可以看出,使用YOLOV3算法模型有3人未成功檢測(cè)出其類別,一共檢測(cè)出10個(gè)佩戴口罩人臉目標(biāo),而由圖11(b)可以看出,改進(jìn)的YOLOV3模型全部檢測(cè)出其類別,共檢測(cè)出了15個(gè)佩戴口罩的人臉目標(biāo),比YOLOV3多檢測(cè)出了5個(gè),其中有一半被遮擋的人臉目標(biāo)也成功檢測(cè)出,而且整體檢測(cè)框的預(yù)測(cè)準(zhǔn)確率都比原始的YOLOV3算法高。
綜上所述,改進(jìn)后的YOLOV3算法在自然場(chǎng)景下人臉口罩佩戴檢測(cè)效果有著顯著的提升。
本文將改進(jìn)的算法與其它算法進(jìn)行比較實(shí)驗(yàn),來驗(yàn)證改進(jìn)的算法的有效性,其結(jié)果如下所示。
由表2可知,對(duì)于人臉佩戴口罩目標(biāo)檢測(cè)來講,本文改進(jìn)的YOLOV3算法得到了不錯(cuò)的檢測(cè)效果。與通用算法SSD和Faster R-CNN相比,其mAP值分別增加了19.8%和15.7%,而且無論在人臉檢測(cè)方面,還是在人臉佩戴口罩目標(biāo)檢測(cè)方面,改進(jìn)的YOLOV3算法的AP值都遠(yuǎn)遠(yuǎn)高于這兩種算法。與RetinaFace算法和Attention-RetainFace算法相比,在人臉佩戴口罩檢測(cè)方面,其AP值分別為76.5%、84.7%,YOLOV3改進(jìn)的算法AP值為93.4%,效果還是很明顯的。但對(duì)于檢測(cè)人臉這方面,RetinaFace和Attention-RetainFace算法比改進(jìn)的YOLOV3算法保持較高的AP值,這是因?yàn)檫@兩種算法都是主要用在單級(jí)目標(biāo)檢測(cè)的人臉定位的算法,以達(dá)到多尺度的面部檢測(cè)任務(wù),用人臉對(duì)齊、像素級(jí)人臉分析和人臉密集等關(guān)鍵點(diǎn)三維分析,因此在人臉檢測(cè)方面具有較高的檢測(cè)精度。YOLOV3作為一種單階段檢測(cè)算法,對(duì)于一般目標(biāo)來講,確實(shí)有著不錯(cuò)的檢測(cè)精度和效率,但像人面部這種具有龐大且繁瑣的特征信息來說,其檢測(cè)效果仍然不如主要被用于識(shí)別人臉的算法。本文算法是在YOLOV3的基礎(chǔ)上改進(jìn)的,雖然在面部目標(biāo)檢測(cè)中AP值略低于RetinaFace和Attention-RetinaFace算法,但仍比未改進(jìn)的YOLOV3算法提高了4.9%,且其檢測(cè)速率比RetinaFace算法和Attention-RetinaFace算法分別提升了20.9和18.7。總的來說,本文提出的改進(jìn)的YOLOV3算法針對(duì)人臉佩戴口罩目標(biāo)檢測(cè)效果還是可以的。

表2 改進(jìn)的YOLOV3算法與其它算法比較
本文以YOLOV3為基礎(chǔ),提出了一種基于YOLOV3改進(jìn)的算法,實(shí)現(xiàn)了對(duì)口罩佩戴檢測(cè)的任務(wù)。本文主要是將主骨干網(wǎng)絡(luò)Darknet-53結(jié)構(gòu)與Inception-v4的構(gòu)建思想相結(jié)合,實(shí)現(xiàn)了特征增強(qiáng);并引入了空間金字塔池化結(jié)構(gòu),增加了網(wǎng)絡(luò)結(jié)構(gòu)的魯棒性;然后對(duì)IoU損失函數(shù)進(jìn)行了改進(jìn)和優(yōu)化,引用了GIoU損失函數(shù)以提高模型的定位能力;最后在本文收集和增強(qiáng)的數(shù)據(jù)集上開始訓(xùn)練和測(cè)試。根據(jù)實(shí)驗(yàn)結(jié)果,改進(jìn)后的YOLOV3算法在口罩佩戴檢測(cè)方面比原始的YOLOV3算法模型的mAP提高了5.4%,且FPS也有所提升,充分驗(yàn)證了算法的有效性與科學(xué)性。