盧添燁,劉興德,刁建超
(1.吉林化工學(xué)院 信息與控制工程學(xué)院,吉林吉林,132022;2.吉林化工學(xué)院 機(jī)電工程學(xué)院,吉林吉林,132022)
在進(jìn)入常態(tài)化疫情防控的新階段,正確佩戴口罩作為切斷飛沫傳播的一重大舉措顯得尤為重要。然而諸如飛機(jī),高鐵,商超等安檢處人臉識別往往需要摘下口罩采集完整人臉圖像,這無疑會(huì)帶來交叉感染的風(fēng)險(xiǎn)。因此口罩遮蔽的人臉檢測和識別能有效提高防疫安全并且保護(hù)居民的生命健康。這一任務(wù)不僅需要檢測人臉目標(biāo),還要針對局部人臉完成識別,這需要算法對小目標(biāo)利用細(xì)節(jié)特征的能力又更高的要求。
目前專門用于口罩遮蔽的局部人臉識別算法較少。主流的檢測算法有R-CNN,SSD,YOLO,MTCNN 等。早年主要是傳統(tǒng)目標(biāo)檢測算法如SVM 使用滑動(dòng)窗口對整張圖像進(jìn)行窮舉掃描,這類方法會(huì)帶來冗余的窗口和大量的數(shù)據(jù)。爭對這一問題,R-CNN[2~3]依靠圖像邊緣輪廓等信息篩選候選框,相較于窮舉的滑動(dòng)窗口的方法,可以保證在更少的窗口的前提下保持更高的準(zhǔn)確率,不過對于較為復(fù)雜的圖像,可能會(huì)框選大量互相重疊包含的數(shù)據(jù),每個(gè)候選框都需要進(jìn)行CNN 特征提取并使用分類器分來,這回帶來不小的計(jì)算量和緩慢的檢測速度。針對候選框的選取導(dǎo)致的大計(jì)算量這一問題,F(xiàn)ast R-CNN 使用一個(gè)特征提取網(wǎng)絡(luò)優(yōu)化了候選框的選取工作,是的算法穩(wěn)定性和檢測速度都有提升。然而檢測速度仍然停留在數(shù)十秒的檢測算法無法滿足實(shí)時(shí)的要求,YOLO[4]類使用回歸思想,大大加速了檢測速度的同時(shí)因?yàn)槠?*7 網(wǎng)絡(luò)回歸的設(shè)定很難做到精準(zhǔn)定位。最后考慮到實(shí)際項(xiàng)目的還需要硬件支持,所以本文選擇MTCNN 作為任務(wù)的檢測模塊,MTCNN[5]是一種三網(wǎng)絡(luò)級聯(lián)的檢測算法,兼顧檢測速度的同時(shí)有更好的準(zhǔn)確率。
早期傳統(tǒng)的人臉識別通過建立面部的幾何特征的灰度模型來進(jìn)行人臉識別。Kelly[7]的博士論文被認(rèn)為是最早的人臉識別研究工作,通過邊緣和輪廓檢測測量面部標(biāo)志的歐式距離,驗(yàn)證機(jī)器學(xué)習(xí)完成人臉識別的可能性,但是還達(dá)不到實(shí)用的門檻。之后傳統(tǒng)機(jī)器學(xué)習(xí)方法例如主成分分析PCA,支持向量機(jī)SVM 開始流行,通過降維,二分類等的方法完成人臉識別。但是由于人臉數(shù)據(jù)集和算力的限制,容易出現(xiàn)過擬合問題。GPU 的誕生給了人工智能新的活力,基于大算力和深網(wǎng)絡(luò)的深度卷積網(wǎng)絡(luò)成了更好的選擇。FaceNet[8]提出一種基于三元組損失的無對齊人臉訓(xùn)練方法,面部特征丟失較多,容易關(guān)注局部而不是全局。GroupFace[9]提出人臉的組感知表征,通過在網(wǎng)絡(luò)中學(xué)習(xí)人臉的隱藏組表征,實(shí)現(xiàn)了更高精度的人臉識別。不同于深度卷積網(wǎng)絡(luò),transformer[10]獨(dú)特的注意力機(jī)制和全局理解能力帶來了新的變革。本文旨在將在深度學(xué)習(xí)領(lǐng)域具有里程碑意義的transformer 加以優(yōu)化改進(jìn)用于戴口罩遮蔽的人臉識別。
如圖1 所示,待識別用戶與識別系統(tǒng)交互完成圖像采集不可避免的會(huì)帶來與冗雜的無用數(shù)據(jù)影響識別效果,因此需要對采集到的圖像進(jìn)行預(yù)處理,使用人臉檢測將人臉從圖像中剝離出來。本文使用多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)算法完成檢測工作,將檢測到的人臉圖像進(jìn)行人臉的對齊,直方圖均衡化,歸一化等數(shù)據(jù)增強(qiáng)方法以減小姿勢光照帶來的誤差,提高系統(tǒng)的魯棒性,最后使用transformer 完成特征提取和人臉識別,得到輸出結(jié)果。
圖1 人臉識別工作流程
人臉識別環(huán)境的多樣性,燈光遮擋,不同姿勢會(huì)帶來極大的挑戰(zhàn),因此人臉識別前的檢測尤為重要,本文選擇MTCNN 作為人臉檢測算法,使用一個(gè)深度級聯(lián)的結(jié)構(gòu),分三個(gè)特制的深度卷積神經(jīng)網(wǎng)絡(luò)從粗糙到細(xì)致的方法來預(yù)測臉部整體和特征點(diǎn)坐標(biāo)。
1.2.1 MTCNN 的網(wǎng)絡(luò)結(jié)構(gòu)
多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)采用三個(gè)級聯(lián)的輕量級網(wǎng)絡(luò),分別完成快速篩選,精細(xì)過濾,最終輸出。P-Net其基本的構(gòu)造是一個(gè)不涉及全連接層的三層卷積網(wǎng)絡(luò)。圖片在輸入之前需要按照一定比例進(jìn)行尺度變換,這種變換稱為圖像金字塔旨在解決目標(biāo)多尺度問題。圖像金字塔生成后的數(shù)據(jù),經(jīng)過三層卷積核不同的卷積層輸入到一個(gè)人臉分類器中進(jìn)行一個(gè)簡單的模板比對,最終將所有可能存在人臉的候選框輸出入R-Net 層。R-Net 是一個(gè)四層神經(jīng)網(wǎng)絡(luò),不同于第一層的P-Net 末尾的分類器,為了達(dá)到精細(xì)篩選的目的,R-Net 使用了一個(gè)全連接層。R-net 篩除大部分錯(cuò)誤并且進(jìn)行極大值抑制(NMS)優(yōu)化在多個(gè)重疊的候選框中選取得分最高的一個(gè)。O-Net 與R-Net 相比結(jié)構(gòu)類似的同時(shí)多了一個(gè)卷積層也帶來了更多的人臉特征。O-Net 會(huì)做出更為精確的回歸和置信度篩選,并輸出人臉的五個(gè)特征點(diǎn)和最終的候選框。
1.2.2 MTCNN 的工作流程
首先將輸入圖片進(jìn)行特定尺度的縮放,形成一個(gè)被稱為圖像金字塔的數(shù)據(jù)集,以適應(yīng)檢測不同大小的人臉。將圖像金字塔輸入P-Net 得到相對原圖的人臉候選框,將眾多候選框從輸入圖像中截取出來傳入R-Net 中,R-Net 會(huì)對各個(gè)候選框中是否有人臉做出評分并對候選框做出一定的修正,再將修正后的候選框于原圖截取圖片,最后傳入MTCHH 中最精細(xì)的O-Net,完成最后的評分和修正,得到最終的人臉候選框,實(shí)現(xiàn)人臉檢測。
1.3.1 Vision transformer
Dosovitskiy 等[11]首次將應(yīng)用于NLP 領(lǐng)域的 Transformer 模型引入機(jī)器視覺,提出了 ViT(Vision Transformer),一種完全基于自注意力機(jī)制的網(wǎng)絡(luò)模型。
Transformer 首次是由谷歌于2017 年[10]提出的,該模型被提出旨在解決自然語言處理問題,并給該領(lǐng)域帶來極大震動(dòng),成為里程碑式的模型。隨后,Transformer 被創(chuàng)造性的應(yīng)用于機(jī)器視覺領(lǐng)域,也給機(jī)器視覺帶來的新的變革。2018 年的Image Transformer[12]首先將transformer 跨領(lǐng)域的引入機(jī)器視覺,在此之后,出現(xiàn)眾多基于transformer的科研成果。例如,2020 年5 月Carion[13]等構(gòu)建的DETR將transformer 投入目標(biāo)檢測的領(lǐng)域中。2020 年10 月Dosovitskiy[14]等人將構(gòu)建Vision Transformer,這是一種完全基于自注意力機(jī)制的圖像分類方案。
圖2 MTCNN 網(wǎng)絡(luò)結(jié)構(gòu)
圖3 MTCNN 工作流程
Transformer 得以被廣泛開發(fā)使用的主要原因有以下三點(diǎn):
(1) 學(xué)習(xí)長距離依賴能力強(qiáng)。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是通過不斷地堆疊卷積池化層來完成對輸入從局部信息到全局信息的特征提取,這種計(jì)算機(jī)制可能會(huì)帶來模型臃腫,計(jì)算量大幅上升,梯度消失問題,甚至使整個(gè)網(wǎng)絡(luò)無法訓(xùn)練收斂。相較之下,Transformer 因?yàn)槠涓綆У囊蕾囂匦?,利用注意力機(jī)制來捕獲全局上下文信息,減少無用特征對模型的干擾。
(2) 多模態(tài)融合能力強(qiáng)。CNN 使用卷積核來獲取圖像信息,但對于其他模態(tài)的融合效果一般(如聲音、文字、 時(shí)間等)。而 Transformer 的輸入不需要保持二維圖像,但由于Transformer的輸入輸出不要求保持為二維圖形,所以通常都可以通過直接對圖像進(jìn)行運(yùn)算得到初始嵌入矢量,而其他模態(tài)的信號轉(zhuǎn)化為矢量也可以通過直接在輸入輸出端實(shí)現(xiàn)融合。
(3) 模型更具可解釋性。在 Transformer 的多頭注意力網(wǎng)絡(luò)中,每個(gè)Head 都獨(dú)立使用自注意力機(jī)制,這使得模型具有在不同的任務(wù)和不同的表達(dá)子空間中學(xué)習(xí)相關(guān)的特征的能力。
1.3.2 Multi-Head Attention 多頭注意力機(jī)制
自注意力機(jī)制(Self-Attention Mechanism)[14]受到生物視覺原理啟發(fā),增加了對特定區(qū)域著重觀察的機(jī)制,可以快速提取數(shù)據(jù)特征,獲取輸入圖像內(nèi)部特征與其整體特征的相關(guān)性。對于視覺領(lǐng)域中,自注意力旨在計(jì)算輸入圖片特征相互之間的注意力權(quán)重,從而生成一個(gè)包含每個(gè)特征都關(guān)于其他的特征信息的特征圖。相較于傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)在輸入數(shù)據(jù)時(shí)嚴(yán)格先后順序的掣肘,Self-Attention Mechanism使用并行加速運(yùn)算的同時(shí)擁有全局視野。
多頭注意力機(jī)制(Multi-head Self-Attention)相較自注意力機(jī)制是在參數(shù)量總體不變的情況下,將查詢、鍵、值三個(gè)(qi,ki,vi)參數(shù)進(jìn)行多次拆分,參數(shù)通過三個(gè)共享的可訓(xùn)練變換矩陣(Wq,Wk,Wv),得到對應(yīng)的(qi,ki,vi),之后按照Head 個(gè)數(shù)均分成h 份為即為每個(gè)Headi對應(yīng) 的(Qi,Ki,Vi), 按 照 公 式(1) 得Attention(Qi,Ki,Vi),再將得到得結(jié)果進(jìn)行concat 拼接和可訓(xùn)練得變換矩陣Wo進(jìn)行融合,至此完成了公式(2)(3)的工作。每組拆分參數(shù)映射到高維空間的不同子空間中計(jì)算注意力權(quán)重,從而關(guān)注輸入的不同部分。經(jīng)過并行多次計(jì)算,最后合并所有子空間中的注意力信息,公式如(3)所示。
1.3.3 Vision transformer 模型
本文模型基于Vit 模型框架,修改了MLP Head 以更適用口罩遮蔽的人臉識別,使用DropPath 代替原文的Dropout,MLP Head 使用全連接層,GELU 激活函數(shù),DropPath 組成。模型主要由以下三個(gè)模塊組成:
(1)Linear Projection of Flattened Patches (Embedding 層)
(2)Transformer Encoder
(3)MLP Head(最終用于分類的層結(jié)構(gòu))
以Vit-B/16 為例,輸入“224*224*3”的圖片經(jīng)過embedding 層變成196 個(gè)patches,每個(gè)patches 格式為16*16*3,再通過線性投射層即全連接層得到“196*768”數(shù)據(jù)。插入一個(gè)“class”token ,與原token 拼接起來變成“197*768”的一維數(shù)據(jù),到此完成圖片的預(yù)處理工作。將數(shù)據(jù)分為12 份“197*64”以便完成自注意力工作,拼接通過Norm 和MLP 得到輸出依然為“197*768”,因此這個(gè)被稱為的Encoder 的操作可以反復(fù)堆疊N 次,這個(gè)堆疊的過程被稱為Transformer Encoder。最后通過由Linear,Gelu,Dropot 組成的MLP Head 層完成分類。
實(shí)驗(yàn)環(huán)境配置如下:Intel 處理器R7-5800H,Nvidia GeForce RTX 3060 顯卡,16G 內(nèi)存。實(shí)驗(yàn)采用python 語言,深度學(xué)習(xí)框架為Ptorch。
本文的實(shí)驗(yàn)基于Wang[15]等人提出的口罩遮蔽人臉的公開數(shù)據(jù)集。該工作提出了三種類型的口罩遮擋人臉數(shù)據(jù)集,包括口罩遮蔽人臉檢測數(shù)據(jù)集(MFDD),真實(shí)口罩遮蔽人臉識別數(shù)據(jù)集(RMFRD)和模擬口罩遮蔽人臉識別數(shù)據(jù)集(SMFRD)。本文采用的RMFRD 是目前世界上最大的真是口罩遮擋的人臉數(shù)據(jù)集,其包含525 人的5000 張帶口罩人臉,9 萬張正常人臉。對該數(shù)據(jù)集的部分圖片使用多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)完成人臉對齊工作,之后使用直方圖均衡化,歸一化等數(shù)據(jù)增強(qiáng)方法以減小姿勢光照帶來的誤差,提高模型的魯棒性,完成數(shù)據(jù)集的構(gòu)建。
圖4 vit 模型結(jié)構(gòu)
如圖5 所示,從上往下以此為vit 三個(gè)模型(Huge/ Large/ Base) 準(zhǔn) 確 率 曲 線, 隨 著 表1 中l(wèi)ayers 即 是Encoder 塊個(gè)數(shù)的增加,收斂速度和準(zhǔn)確率也逐漸增加。Hidden Size 為通過Embedding 層之后每一個(gè)token 的長度,MLP size 為Encoder 中MLP Block 全連接的節(jié)點(diǎn)個(gè)數(shù),Heads 代表Multi-Head Attention 的多頭個(gè)數(shù)。隨著數(shù)據(jù)的增加和網(wǎng)絡(luò)層數(shù)的加深,最終的口罩遮蔽人臉識別準(zhǔn)確率逐漸提高。這也證明本文提出的模型結(jié)構(gòu)的合理性,在增加網(wǎng)絡(luò)深度和數(shù)據(jù)的情況下,能夠提升更加復(fù)雜場景下的口罩遮蔽人臉識別準(zhǔn)確率精度,圖6 為識別結(jié)果樣例。
圖5 實(shí)驗(yàn)結(jié)果
表1 模型參數(shù)
圖6 識別結(jié)果樣例
本文提出一種基于ViT 框架與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合的口罩遮蔽局部人臉識別模型。模型使用MTCNN 完成人臉檢測為接下來的識別打好基礎(chǔ),依靠transformer 網(wǎng)絡(luò)對長距離序列的特征提取能力,減少了無用特征對模型的干擾,利用增強(qiáng)后的特征信息進(jìn)行目標(biāo)識別,改善了遮擋目標(biāo)的識別效果,有效提升了模型性能。實(shí)驗(yàn)表明,本文實(shí)現(xiàn)的算法具備較強(qiáng)的魯棒性和較高的識別準(zhǔn)確度。