董廣輝,郭春爽,郭秀娟
吉林建筑大學(xué) 電氣與計算機學(xué)院,長春 130118
隨著新冠疫情在全球肆虐,佩戴口罩成為居民預(yù)防病毒的主要方式之一.人臉識別和人工智能的快速發(fā)展,為抗擊疫情提供了關(guān)鍵性的技術(shù)手段,減少了疫情中投入的人力和物力.本研究采用改良的YOLO V3[1]模型,稱為YOLO-口罩[2]模型,利用Label what you see(LWYS)[3]技術(shù)檢測復(fù)雜環(huán)境條件下的人臉.為了避免深度學(xué)習(xí)的缺陷,使探測器更加智能化,使用從復(fù)雜環(huán)境條件[4]中獲得的小數(shù)據(jù)集標(biāo)記方法,將密集空間建筑整合到Y(jié)OLO V3中,以促進(jìn)特征的更好利用及SPP[5]的應(yīng)用,減少漏檢和不準(zhǔn)確性.其主要目的是增加輸入圖像的可變性,使所設(shè)計的人臉檢測模型對不同環(huán)境下獲取的圖像具有更高的魯棒性[6].實驗表明,該方法在不均勻環(huán)境下具有較高的檢測精度和實時檢測速度.
YOLO V3使用多標(biāo)簽分類,每個標(biāo)簽用二值交叉熵?fù)p失[7],而不是使用均方誤差來計算分類損失.YOLO V3在3種不同的尺度上預(yù)測對象,類似于特征金字塔網(wǎng)絡(luò)(如圖1所示),并使用邏輯回歸對每個邊界框的得分進(jìn)行預(yù)測.
圖1 YOLO V3結(jié)構(gòu)框架
DarkNet-53[8](YOLO V3骨干)被用來取代DarkNet-19作為新的特征提取器.整個DarkNet-53網(wǎng)絡(luò)是由多個塊組成的鏈,中間有兩個卷積層,以降低維數(shù).每個塊包含1×1的瓶頸結(jié)構(gòu),然后是3×3的過濾器,具有類似ResNet的跳過連接.與ResNet-152相比,DarkNet-53擁有更少的十億浮點運算,在相同的分類精度下速度快了2倍.YOLO V3在小對象檢測方面有了顯著的改進(jìn),在涉及速度時表現(xiàn)非常好.
在圖1所示的YOLO V3架構(gòu)的基礎(chǔ)上,為了更好地利用和表現(xiàn)目標(biāo)特性,文獻(xiàn)[9]提出了一個密集連接的架構(gòu),這使檢測模型更加緊湊和精確.改進(jìn)的口罩檢測模型框架如圖2所示.
圖2 YOLO-口罩模型框架
YOLO-口罩模型設(shè)計以密集的架構(gòu)布置取代了YOLO V3中殘差塊8×256和殘差塊8×512,如圖2和圖3藍(lán)色部分所示.這是為了增強網(wǎng)絡(luò)內(nèi)部更深層次的檢測尺度[10].每個密集層堆疊1×1瓶頸層23和3×3卷積層.為了使模型更緊湊,在兩個致密層之間放置了一個過渡層,修改的主要原理是能夠從網(wǎng)絡(luò)的不同層對多個特征圖進(jìn)行檢測.這將允許在不同環(huán)境下準(zhǔn)確檢測口罩的佩戴.其損失函數(shù)的連接特性由26×26×768增加到26×26×2 816和13×13×384增加到13×13×1 408,其目的在于檢測更小的目標(biāo)以適應(yīng)LWYS法,同時增加有助于保存更細(xì)的特征顆粒.用Mish激活函數(shù)[11]和采用FDL×2和SPP的YOLO-口罩模型,該激活函數(shù)對每個深度神經(jīng)網(wǎng)絡(luò)的性能具有重要作用.
圖3 YOLO-口罩模型下的DenseNet架構(gòu)
在YOLO-口罩模型的最后一個殘塊(殘塊4×1 024)之后引入SPP模塊,對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化.隨著卷積層的加深,單個神經(jīng)元的接受域逐漸增大,在YOLO-口罩的特征提取過程中,需要提取的特征能力更強、更抽象.加入SPP模塊可以解決這個問題(如圖4所示),它是一個特征增強模塊,提取特征圖的主要信息并進(jìn)行拼接.
圖4 SPP模塊
在一臺計算機上進(jìn)行模型訓(xùn)練和測試,其規(guī)格如下:i7-8700處理器,win10操作系統(tǒng), CPU 64位3.20 GHz, 16GB 內(nèi)存,使用Python軟件編程,其深度學(xué)習(xí)的框架為Pytorch.
本文數(shù)據(jù)集主要從MAFA開源數(shù)據(jù)集[12]和谷歌等搜索網(wǎng)站中獲取人臉遮擋的圖像,共計865張進(jìn)行測試.將其分為80 %的訓(xùn)練集和20 %的測試集,每幅圖像隨機地由戴口罩和不戴口罩、有遮擋無遮擋等單個或者多個人臉組合形成.
YOLO檢測模型訓(xùn)練需要帶標(biāo)簽的數(shù)據(jù),即訓(xùn)練圖像中所有邊界框的類標(biāo)簽和位置,使用圖形圖像標(biāo)注工具labelImg進(jìn)行標(biāo)注,在每張圖片中,所有可見的佩戴和未佩戴口罩都基于LWYS技術(shù)被標(biāo)記為一個邊界框.值得注意的是對于高度遮擋的人臉,邊框是根據(jù)可見部分的假設(shè)形狀繪制的.對加了注釋的圖像進(jìn)行3次檢查,以確保沒有遺漏任何未加注釋的類.其數(shù)據(jù)集訓(xùn)練和檢測過程的YOLO-口罩模型流程如圖5所示.
圖5 數(shù)據(jù)集、訓(xùn)練和檢測過程的YOLO-口罩模型流程圖
根據(jù)圖3所示檢測層的3個尺度,采用K-mean聚類算法[13]在416×416像素處生成9個聚類.錨點按降序排列并分配到每個尺度,以改進(jìn)YOLO-口罩模型.得到的平均IoU[14]結(jié)果顯示為78.56 %.該模型接收416× 416像素的輸入圖像,學(xué)習(xí)率的調(diào)整減少了訓(xùn)練損失.由于輸入圖像包含佩戴和未佩戴口罩兩類,所以在0次~4 000次迭代之間學(xué)習(xí)率選擇0.001,最大批量為4 000次.為了減少內(nèi)存使用,批處理和細(xì)分分別設(shè)置為64和16,動態(tài)衰減和權(quán)重衰減分別設(shè)置為0.9和0.000 5.此外,使用隨機初始化方法初始化訓(xùn)練YOLO-口罩的權(quán)值,為了驗證所做實驗在訓(xùn)練好的YOLO-口罩模型上的有效性,使用Precision,Recall,F1-score和AP作為評價參數(shù).計算方法如下所示:
(1)
(2)
(3)
(4)
式中,TP,FN和FP分別為正確檢測、遺漏檢測和錯誤檢測數(shù)值的縮寫.F1作為召回和精度之間的權(quán)衡,來表示訓(xùn)練模型的綜合性能,平均精度AP來表示模型在不同置信閾值下的整體性能,表示在Recall測量的精度.
為保持與訓(xùn)練圖像分辨率的一致性,訓(xùn)練模型采用批大小為1、分辨率為416×416像素的圖像進(jìn)行測試.YOLO-口罩模型檢測了測試數(shù)據(jù)集中人臉的數(shù)量,并取得了良好的檢測效果.計算檢測人臉的Precision,Recall,F1和AP,并與YOLO V3模型進(jìn)行比較.結(jié)果見表1.從表1可以看出,由于使用了小數(shù)據(jù)集,兩種方法的性能均較高.對比YOLO V3,改進(jìn)后的算法由于LWYS技術(shù)的應(yīng)用使模型具有了更良好的性能.表1AP對比結(jié)果顯示,在模型中Mish函數(shù)的激活下表現(xiàn)為Precision,Recall,F1和AP的提高.從中看出YOLO-口罩模型準(zhǔn)確率、召回率、F1和AP分別提高了0.7 %,召回率、F1和AP分別提高了3.1 %,1.5 %,1.7 %.
表1 416 × 416像素分辨率下的模型性能評估
計算每幅圖像的YOLO-口罩模型的平均檢測時間見表2.測試結(jié)果表明,YOLO V3模型平均每幀圖像計算佩戴和未佩戴口罩的時間為46.2 ms,因為將DenseNet納入網(wǎng)絡(luò)構(gòu)成了準(zhǔn)確性的提高與檢測速度的下降.YOLO-口罩模型為52.1 ms,這表明了準(zhǔn)確性和速度之間的權(quán)衡,SPP加入到Y(jié)OLO-口罩模型中,也使檢測時間增加.
表2 不同模型時間檢測對比
本文在改進(jìn)的YOLO V3模型基礎(chǔ)上,提出利用YOLO-口罩模型進(jìn)行人臉檢測,使用從復(fù)雜環(huán)境中獲得的人臉數(shù)據(jù)集來限制深度學(xué)習(xí)的缺點,標(biāo)記你看到的(LWYS)方法,將密集的架構(gòu)整合到Y(jié)OLO V3中,以促進(jìn)功能的利用,從而更好地推廣人臉口罩檢測,采用Mish激活和spatial pyramid pooling(SPP)減少漏檢和錯誤率,使檢測器與人一樣智能.實驗結(jié)果表明,本文提出的方法在平均精度(AP)方面優(yōu)于之前的方法.相對于平均精密度(AP), YOLO-口罩模型性能水平也得到提高,具有較好的泛化能力和實時檢測能力.