劉彩云,李雅雯,劉倩
1.長江大學信息與數學學院,湖北 荊州434023 2.長江大學電子信息學院,湖北 荊州434023
隨著智能時代的來臨,人臉識別在安防、金融、交通、教育、醫療等領域運用越來越廣泛。一個完整的人臉識別系統應包含人臉檢測、特征提取和人臉識別3個方面。人臉檢測是人臉識別需要解決的首要問題。而由于姿勢變化、外物遮擋以及光源方向等多方面因素的影響,人臉檢測的準確率不高,并且對于多人圖片,往往很難準確地識別出所有人臉。常見的人臉檢測分為非深度學習和深度學習2種模式[1,2],非深度學習又包含簡單特征級聯系列、人臉檢測的可變模型系列(DPM)[3]等。深度學習包含級聯卷積神經網絡(CNN)系列、快速區域卷積神經網絡(Faster R-CNN)系列[4-6]等。
早期的人臉檢測方法準確率較低,多任務級聯卷積神經網絡的人臉檢測算法[7](MTCNN)兼顧人臉檢測與人臉對齊雙重任務,并且網絡結構精簡、檢測速度快且召回率高。但另一方面,MTCNN算法對多人圖片中的小人臉檢測率較低,在多人合照場景下,對合照中的小人臉檢測魯棒性不高。針對MTCNN人臉檢測算法在多人合照場景下的小人臉檢測率較低的問題,筆者提出了一種改進的多任務級聯卷積神經網絡的人臉檢測算法(IMTCNN):該算法首先對MTCNN網絡模型的R-Net層集成圖片信息卷積殘差模塊,擴大特征圖感受野獲取更多人臉信息;然后引入反卷積層和最大池化層,使得特征融合數據維度保持一致;最后將O-Net層集成圖片信息卷積殘差模塊,進一步提取人臉信息。極大地提高了人臉檢測的準確性,并且具有多任務實時處理的性能。
人臉檢測通常分3步進行[8]:①在圖像上選擇一個矩形區域作為觀察窗口;②在選定的窗口中提取一定特征進行描述;③根據描述的特征判斷這個窗口是否正好框選住了一張人臉。
MTCNN模型如圖1所示。MTCNN首先使用“image pyramid”(圖像金字塔)方法[9]解決不同尺度的人臉的檢測——將原始圖像按一定比例進行幾何縮放,獲得多尺度圖像;然后使用P-Net(proposal network,提議網絡)、R-Net(refine network,優化網絡)以及O-Net(output network,輸出網絡) 3個級聯的多任務卷積神經網絡來對人臉進行快速高效的檢測[10]:P-Net用于快速生成人臉候選窗口,R-Net對候選窗口進行高精度過濾選擇,O-Net則是生成最終邊界框與定位人臉關鍵點。該模型也用到了邊界框回歸(bounding-box regression)、非極大值抑制(NMS)等技術。

圖1 MTCNN模型Fig.1 MTCNN model
IMTCNN算法原理如圖2所示。IMTCNN人臉檢測算法主要工作包括:

圖2 IMTCNN算法原理Fig.2 Principle of IMTCNN algorithm
1)對R-Net層網絡集成圖片信息卷積殘差模塊[11],通過擴大特征圖的感受野來獲取更多人臉信息,以提升R-Net層網絡對人臉目標的檢測魯棒性,并且通過加入反卷積層和最大池化層解決特征融合時維度不一致問題;
2)對O-Net層網絡集成圖片信息卷積殘差模塊,進一步提升對多人圖片的人臉檢測性能,降低人臉檢測過程中受外部條件影響產生的誤差,同時添加2個卷積池化層使特征融合時維度一致。
圖2中圖片信息卷積殘差模塊是筆者提出的一種卷積殘差結構。由于人臉框可以利用卷積分類和回歸得出,因此可以采用擴大卷積核的方式來增加感受野,使網絡能夠準確捕捉多人圖片的人臉信息,降低外部環境因素的影響,通過殘差模塊的堆疊,達到較深的網絡層數,增強網絡訓練的穩定性,提高網絡性能。
圖片信息卷積殘差模塊結構如圖3所示,采用1個3×3卷積核和2個殘差模塊串聯構成。

圖3 圖片信息卷積殘差模塊結構Fig.3 Image information convolution residual module structure
P-Net層[7]是一個全連接網絡,用于快速生成人臉候選窗口,結構如圖4所示。將輸入的圖片經過3次卷積、1次池化之后,再通過人臉分類器,以此來判斷該區域是否是人臉,同時使用邊界框回歸和一個面部關鍵點的定位器來進行人臉區域的初步定位。邊界框回歸用來對人臉候選窗口進行校準,通過非極大值抑制來合并高度重疊的候選窗口,并且去除大部分非人臉窗口。最終將輸出很多張包含人臉候選區域的圖片,并將這些預測結果輸入R-Net進行下一步處理。

圖4 P-Net層結構Fig.4 P-Net layer structure
R-Net層是一個卷積神經網絡,相對P-Net層來說,R-Net層增加了1個池化層和1個全連接層,因此會更加嚴格篩選輸入數據,會進一步去除大量效果比較差的人臉候選框,然后再次通過邊界框回歸和非極大值抑制來進一步優化結果。改進的R-Net層采用集成圖片信息卷積殘差模塊的方式,通過增加更多的圖片信息,擴大特征圖的感受野,提升網絡捕捉人臉信息的能力,改進后的R-Net層結構如圖5所示。

圖5 改進的R-Net層網絡結構Fig.5 Improved R-Net layer network structure
針對在R-Net層網絡集成圖片信息卷積殘差模塊時產生的數據維度不一致問題,采用增加反卷積層和最大池化層的方式來解決。由于在原始R-Net層網絡中集成圖片信息卷積殘差模塊導致輸出的數據維度(22×22)大于原始卷積網絡輸出的數據維度(4×4),使得特征信息無法融合,因此,在原始卷積分支上增加反卷積核為4×4、步長為2的反卷積層,并且在圖片信息卷積殘差模塊分支上增加1個卷積核為5×5、步長為1的卷積層和1個池化核為3×3、步長為2的最大池化層,使輸出數據維度統一為8×8,解決了特征信息融合時數據維度不一致的問題。
O-Net層是一個較為復雜的卷積神經網絡,對比R-Net層,O-Net層增加1個卷積層、1個池化層,所以輸入特征更多。同時,O-Net層全連接層變大,保留了更多的圖像特征。使用O-Net層進行人臉判別、人臉區域邊界框回歸以及人臉關鍵點定位,最終輸出帶有人臉框和5個人臉關鍵點的人臉檢測圖像。改進的O-Net層采用集成圖片信息卷積殘差模塊的方式,通過擴大O-Net層網絡特征圖的感受野,增加提取的人臉特征信息,并與原網絡分支進行特征融合,提升網絡捕捉人臉信息的能力。
改進的O-Net層結構如圖6所示。為解決特征信息融合數據維度不一致問題,引入卷積層和最大池化層。由于經過圖片信息卷積殘差模塊處理后,數據維度為46×46,而原始網絡分支數據維度為8×8,導致特征信息無法融合。因此,采用5×5卷積層、2個3×3卷積最大池化層串聯的方式,將圖片信息卷積殘差模塊分支網絡輸出的數據維度降低至8×8,從而解決了O-Net層網絡特征融合時的數據維度不一致問題。

圖6 改進的O-Net層結構Fig.6 Improved O-Net layer structure
為取得更好的結果,試驗部分主要使用FDDB[12]、WIDER FACE[13]、AFLW[14]3種數據集進行訓練。這3種數據集的測試集都包含標注人臉的圖片,同時考慮到姿勢、遮擋、光照等因素的影響,測試集匯集了包括這些因素的各式各樣的人臉,也包括灰度圖和彩色圖。
將訓練數據分為非人臉、人臉、部分人臉以及標記好特征點的地標人臉4種,通過重疊度(IOU)對這四者進行區分。對于已經標定的圖像,IOU[15]是最終標定的人臉預測框與真實圖像的標注框之間交叉面積與合并面積之和。IOU值在0~0.3之間為非人臉,在0.3~0.4之間則為地標人臉,在0.4~0.65之間為部分人臉,在0.65~1之間為人臉。這4種數據分別用于訓練3種不同的任務,人臉和非人臉用于實現人臉分類任務訓練,人臉和部分人臉用于訓練邊界框回歸,地標人臉則用于訓練人臉特征點定位。總體訓練時間為4.2h。
為評估人臉檢測方法的性能,將IMTCNN算法與其他方法進行對比。圖7~圖9是IMTCNN在FDDB、WIDER FACE、AFLW數據集上和其他算法的對比。其中,圖7表示DP2MFD、CCF、Faceness等8種算法在FDDB數據集上的準確率對比,可以看出IMTCNN所得出的結果準確率遠遠高于其他方法;圖8表示Faceness、Multiscale CascadeCNN、ACF、Two-stage CNN和IMTCNN這5種算法[7]在WIDER FACE數據集上對比,發現IMTCNN對于WIDER FACE數據集中任何難度數據的測試結果遠優于其他方法;圖9表示TSPM、ESR、CDM、SDM、TCDCN、Luxand、RCPR和IMTCNN這8種算法在AFLW數據集上的平均誤差,柱狀圖顯示IMTCNN在左眼、右眼、鼻子、左嘴角、右嘴角這5點的平均誤差和總的平均誤差均低于其他6種方法。以上對比試驗表明,IMTCNN人臉檢測的準確性高。

圖7 FDDB數據集評估Fig.7 FDDB data set evaluation

圖8 WIDER FACE 3個子集評估Fig.8 WIDER FACE 3 subset evaluation

圖9 AFLW評估Fig.9 AFLW evaluation
選取側臉、戴帽子和有眼鏡遮擋的單人圖片測試IMTCNN人臉檢測效果,圖10(a)、(b)、(c)、(d)分別顯示了該圖片通過P-Net層、改進的R-Net層、改進的O-Net層以及最終輸出框定人臉的結果。
選取包含24張人臉的多人圖片檢測IMTCNN人臉檢測效果,圖11(a)、(b)、(c)、(d)分別顯示了該圖片通過P-Net層、改進的R-Net層、改進的O-Net層以及最終輸出框定人臉的結果。通過圖10單人圖片的人臉檢測結果可以看出,P-Net層、改進的R-Net層、改進的O-Net層這3層級聯卷積神經網絡在對于有遮擋的單人圖片的人臉檢測上起到了很好的作用,每一個人臉候選框都對應一個IOU值,IOU值在0.65~1定義為人臉,值越高表示人臉的可能性越高。從結果可以看出,圖片經過3層網絡最終框定的人臉候選框對應IOU值如表1所示,經過不斷篩選,逐漸向最優化靠攏,也即意味著最終所框定的正好是一張真實的人臉。表明IMTCNN網絡能夠很好地排除由于姿勢變化、外物遮擋以及光源等多方面因素的影響,準確地框選出真實人臉。

圖11 多人圖片經網絡輸出結果Fig.11 Multi-person image network output results

表1 多人圖片人臉候選框IOU值
通過圖11多人圖片人臉檢測結果可以看出,IMTCNN準確檢測出圖片中全部24張小人臉,準確率達到100%。表明IMTCNN可以同時準確地框選出多人合照圖片中每一個小人真實的人臉。
由圖10和圖11說明,IMTCNN不僅極大提高了單獨人物人臉檢測的準確性,降低了人臉檢測過程中受外部條件影響而產生的誤差,還能夠很準確地識別出多人圖片中的人臉,為后續的人臉識別踏出完美的第一步。
筆者使用一種級聯結構將人臉檢測與人臉關鍵點定位結合在一起,通過改進的3層級聯卷積神經網絡相互配合對圖片進行人臉框定,層層篩選,并且通過標記人臉關鍵點的方式進行確認,提高精度,最終正好框定一張真實的人臉,實現人臉檢測。試驗結果表明,該算法速度快,準確度高,并且可以一次性檢測多張人臉,效率高,為進一步進行人臉識別研究打下了良好的基礎。