陳立陽,趙逢禹
(上海理工大學(xué) 光電信息與計算機工程學(xué)院,上海 200093)
人臉檢測[1-2]主要檢測視頻和數(shù)字圖像中的人臉,在人機交互界面、安防系統(tǒng)、監(jiān)控系統(tǒng)、基于內(nèi)容的圖像檢索等方面有廣泛的應(yīng)用。一般來說,人臉檢測系統(tǒng)的目標(biāo)是獲取圖像并準(zhǔn)確檢測出面部,并且不受人物姿勢、圖像尺寸或面部表情等因素的影響。
文中主要針對圖像中重疊的人臉檢測問題進(jìn)行研究。當(dāng)兩個或多個人臉重疊時,單獨地使用傳統(tǒng)的人臉檢測方法來檢測面部是一項具有挑戰(zhàn)性的任務(wù)。文獻(xiàn)[3]提出了基于膚色方法的面部檢測模型,該模型能夠迅速地檢測出有效的人臉區(qū)域。但是當(dāng)圖像中存在重疊的多個人臉時,該模型傾向于將它們檢測為一個人臉。在基于面部特征的方法中,Hear-Like特征[4]將人臉以一種量化的方式表示,但是如果重疊區(qū)域大于另一個區(qū)域,則丟棄區(qū)域可能性低的區(qū)域,這種做法可能導(dǎo)致丟失人臉中其他的重要信息。同時,在基于模板匹配[5]的人臉檢測方法中,使用特征臉(Eigenfaces)來匹配圖像中的人臉,但是重疊的人臉的低匹配系數(shù)會導(dǎo)致整體的匹配度下降,雖然使用邊緣檢測方法可以改善這一現(xiàn)象,但是增加了算法的復(fù)雜性。最近,文獻(xiàn)[6-8]提出了基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的多任務(wù)CNN人臉檢測方法,該方法通過多個特征分類器來檢測人臉,但是文獻(xiàn)[6]的算法需要額外的人臉邊框校準(zhǔn)開銷,文獻(xiàn)[7]的算法雖然大大減少了這種開銷,但是算法中的檢測召回依然受到弱人臉檢測器產(chǎn)生的初始人臉檢測窗口的限制。為了解決這種限制,文獻(xiàn)[8]犧牲了部分的檢測時效性以使得檢測結(jié)果更加準(zhǔn)確。因此,對于重疊人臉的檢測,這種方法的檢測時效性和準(zhǔn)確性依然有待改善。
盡管人臉檢測的方法比較多,但是在檢測時效性和準(zhǔn)確性上依然存在不足。MTCNN在重疊人臉檢測時,雖然檢測準(zhǔn)確性和時效性有待提高,但仍是一個比較有效的框架。因此,針對重疊人臉檢測問題,文中以MTCNN作為基本框架,通過合適的特征提取算法收集大量的重疊與非重疊人臉特征數(shù)據(jù)集,將這些數(shù)據(jù)集用于訓(xùn)練多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)模型,然后優(yōu)化人臉框與人臉特征點的標(biāo)記算法,使檢測出的人臉更加準(zhǔn)確,最終使整個框架能夠成為在重疊人臉檢測場景下的一個高效的解決方案。
將改進(jìn)后的MTCNN稱之為多特征多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)MF-MTCNN(mixed feature MTCNN)。在檢測重疊人臉時,先區(qū)分人臉和非人臉部分,然后得到大量的人臉候選框,并給這些人臉候選框一個初始得分。然后使用人臉膚色檢測法二次檢測來過濾掉無效的人臉候選框,并重新調(diào)整人臉候選框的得分,接著使用非極大值抑制法[9](non-maximum suppression,NMS)比較候選窗口之間的重疊度[9](intersection over union,IoU),刪除重疊度大于閾值的候選窗口獲得最終的人臉檢測窗口。重疊人臉檢測框流程如圖1所示。
人臉分類學(xué)習(xí)的目的是區(qū)分人臉和非人臉部分,因此框架的第一步是訓(xùn)練出一個人臉分類器[10]來摒除非人臉部分。文中通過人臉特征提取來構(gòu)建多個人臉特征分類器,根據(jù)這些人臉特征分類器的分類結(jié)果來區(qū)分人臉和非人臉。主要是研究重疊人臉的檢測問題,但是最終還是需要檢測出單個人臉,因此既要考慮單個人臉具有的特征也要考慮重疊人臉具有的特征。結(jié)合人臉的多種特征可以更為準(zhǔn)確地區(qū)分出人臉,最終通過人臉分類器分類后會輸出包含人臉的圖像和對應(yīng)的圖像得分,人臉候選框集合為B={B1,…,Bi,…,BN},人臉候選框得分列表為S={S1,…,Si,…,SN}。文中選擇了人臉的五個特征來構(gòu)建人臉特征分類器,分別為左眼、右眼,鼻子,左嘴唇、右嘴唇。每個特征的得分權(quán)重都為0.2,通過這五個特征分類器的分類結(jié)果可以確定最終的人臉候選框集合和候選框得分集合。
圖1 重疊人臉檢測流程
由于主要研究的是重疊人臉的檢測問題,人臉的重疊數(shù)量越多,人臉候選框的數(shù)量也會越多,因此在第一步中會產(chǎn)生大量的人臉候選框。為了快速地篩選出有效的人臉候選框,文中采用了人臉膚色檢測[11]方法。第一步中主要依靠人臉的特征來辨別人臉,檢測結(jié)果可能不夠準(zhǔn)確,因此根據(jù)第一步得到的候選框在原圖中截取對應(yīng)的區(qū)域,然后結(jié)合人臉膚色來進(jìn)行二次檢測,重新確定這些候選框的得分。調(diào)整得分的規(guī)則為新的得分等于舊的得分乘膚色區(qū)域在圖像中的比例,然后去除得分低于得分閾值St的人臉候選框。
經(jīng)過上述兩個步驟之后,可以得到有效的人臉候選框,但是同一張人臉依然可能得到多個有效的人臉候選框,因此去掉冗余的人臉候選框之后才能得到最終的結(jié)果。在這一步中,主要利用NMS算法來比較人臉候選框之間的重疊度,然后去除重疊度高的人臉候選框來獲得最終的人臉檢測窗口。
人臉候選框的去重過程主要涉及到候選框重疊度的計算,文中的人臉候選框重疊度計算過程為:
(1)從人臉候選框集合B={B1,…,Bi,…,BN}中選擇一個候選框得分最大的人臉候選框M;
(2)對于任意一個人臉候選框Mi,當(dāng)Mi不屬于B時,計算M與Mi的重疊度I(M,Mi);
(3)I(M,Mi)的計算采用基于人臉特征向量的相似性度量算法。
輸入:
M與Mi的人臉特征向量,人臉特征向量為X={X1,X2,…,X9},Xi分別表示為人臉寬度(cm),人臉高度(cm),人臉平均膚色的RGB值,左眼長度(cm),右眼長度(cm),鼻子長度(cm),嘴唇寬度(cm)。
輸出:
兩組向量的相關(guān)系數(shù),即人臉重疊度I(M,Mi)。
處理過程:
先計算兩個向量的協(xié)方差,協(xié)方差計算如下:
(1)
然后計算兩個向量各自的方差,方差計算如下:
(2)
最后計算人臉重疊度,人臉重疊度計算如下:
(3)
在MF-MTCNN模型中,用于訓(xùn)練的數(shù)據(jù)集需要有人臉特征,良好的特征提取算法可以快速提取出人臉特征,在輸出人臉候選框時起到關(guān)鍵性的作用。為了獲取人臉的特征,收集了100個人的單獨人臉圖像、重疊人臉圖像、人工合成的重疊人臉圖像。最終目的是輸出準(zhǔn)確的人臉候選框。因此,選擇的實驗素材一般都具有明顯的人臉特征。但是當(dāng)人臉互相遮擋時,對于同一張臉的特征,單人臉圖像和重疊人臉圖像有很大的區(qū)別,所以在特征提取的時候,選用不同的特征提取算法對同一人臉進(jìn)行處理,特征分類器構(gòu)建流程如圖2所示。在圖2中對單一人臉圖像采用HOG特征[12]算法提取特征,對重疊人臉圖像采用LBP特征[12]算法提取特征。提取出人臉特征后,對這些特征做歸一化處理[13],將特征值縮放到相同區(qū)間可以獲取性能更好的人臉檢測模型。
圖2 特征分類器構(gòu)建流程
為了提高算法的迭代效率,需要盡可能地減少在每層網(wǎng)絡(luò)中生成的大量人臉候選框,圖3給出了人臉候選框篩選處理流程。
圖3 人臉候選框篩選流程
在某一層網(wǎng)絡(luò)中獲取到大量的人臉候選框之后,根據(jù)候選框的區(qū)域截取對應(yīng)的圖像。然后文中決定采用通過從NTSC色彩空間[14]獲得的Chrominance通道減去從HSV色彩空間[14]獲得的Hue通道形成的混合色彩空間進(jìn)行人臉膚色檢測,通過通道相減可以對人臉膚色進(jìn)行定性定量的分析,主要用于得到人臉膚色由哪些顏色構(gòu)成和不同顏色像素的數(shù)量,這種方法相對于傳統(tǒng)的人臉膚色RGB[15]值判別法更加準(zhǔn)確。
在每一層網(wǎng)絡(luò)中會生成大量的人臉候選框,雖然對人臉候選框進(jìn)行有效的過濾后,會減少一些無關(guān)的人臉候選框,但是依然會有大量的人臉候選框存在,而最終的輸出結(jié)果要保證每一個獨立的人臉只有一個人臉框。因此,MF-MTCNN模型中主要使用NMS算法對這些冗余的窗口進(jìn)行篩選和刪除。
MF-MTCNN的NMS算法:
輸入:
NMS算法的輸入為人臉候選框集合B={B1,…,Bi,…,BN}和人臉候選窗口的得分列表S={S1,…,Si,…,SN}。
輸出:
NMS算法最終的輸出結(jié)果為每一個人臉只保留一張人臉候選框及其對應(yīng)的得分。
處理過程:
(1)最終檢測結(jié)果集D設(shè)置為空。
(2)當(dāng)人臉候選框集B為空時,轉(zhuǎn)步驟6。
(3)從集合B中選擇一個得分最大的人臉候選框記為M,從集合B中移除M,并將M加入到D中。
(4)for eachMi∈B,計算M與Mi的重疊度I(M,Mi)。將得分S改為重疊度的函數(shù),如下:
Si=Si(1-I3(M,Mi))
(4)
其中,當(dāng)Si≤St,則把Mi從B中刪除。
(5)轉(zhuǎn)步驟2。
(6)輸出集合D。
(7)結(jié)束。
為了驗證文中提出的算法在重疊人臉檢測上有更好的時效性和準(zhǔn)確性,將該算法與其他主流算法在FDDB數(shù)據(jù)集和WIDER FACE數(shù)據(jù)集上進(jìn)行人臉檢測性能比較。參與對比的算法包括V-J、Cascade CNN和MTCNN。驗證的標(biāo)準(zhǔn)主要包括兩個方面:檢測正確率和檢測時間。
3.2.1 人臉檢測正確率驗證
人臉檢測正確率曲線如圖4所示。
圖4 人臉檢測正確率曲線
計算公式為:
檢測率=(已檢測人臉數(shù)-誤檢測人臉數(shù)-重復(fù)的人臉數(shù))/總?cè)四様?shù)
式中,已檢測人臉數(shù)表示根據(jù)算法檢測出來的人臉框,誤檢測人臉數(shù)表示假陽性人臉框,重復(fù)的人臉數(shù)表示同一張人臉重復(fù)檢測的次數(shù)。對圖4分析可知,當(dāng)人臉個數(shù)比較少的時候(小于10個),四種模型的檢測正確率相差不大(0.1以內(nèi));當(dāng)人臉個數(shù)繼續(xù)增大時,幾種模型的檢測正確率的差距就顯現(xiàn)出來了,觀察圖4可知,隨機選擇十個樣本進(jìn)行檢測,MF-MTCNN模型的平均人臉檢測正確率約為92.3%。
3.2.2 人臉檢測時效性驗證
圖5展示的是四種模型的人臉檢測算法耗費的時間。從整體上來看,四種算法的耗時都隨著樣本數(shù)的增加而增加,但是很明顯地可以看到,MF-MTCNN模型的增長速率和增長量幾乎都是最小的,即MF-MTCNN模型相對其他模型能夠快速地檢測出人臉。具體到數(shù)據(jù)來看,MF-MTCNN模型最終檢測時間為35 s,平均處理每張圖片的時間為0.035 s,其他三種算法的平均處理時間分別為0.042 s,0.045 s,0.05 s,相比之下,MF-MTCNN模型在檢測效率上有所提升。
圖5 人臉檢測時效性曲線
從測試樣本中隨機選取三張圖片,分別使用V-J、Cascade CNN、MTCNN、MF-MTCNN來檢測圖片中的人臉并標(biāo)記特征,檢測結(jié)果如圖6所示。分析圖6可知,MF-MTCNN相較于其他算法,檢測的人臉數(shù)和特征數(shù)都更多。
圖6 四種算法的檢測結(jié)果
提出了一種重疊人臉檢測方法,主要是對MTCNN模型的改進(jìn)。在研究過程中,遇到的第一個問題就是重疊人臉實驗數(shù)據(jù)的匱乏,利用現(xiàn)有的成熟的人臉數(shù)據(jù)集,對這些數(shù)據(jù)進(jìn)行篩選并進(jìn)行一些人工圖片合成來完成實驗數(shù)據(jù)的準(zhǔn)備工作;接著分析了MTCNN模型存在的一些缺陷,主要有兩點,一是在網(wǎng)絡(luò)中生成的人臉候選框數(shù)量太多,導(dǎo)致每一層網(wǎng)絡(luò)中篩選次數(shù)太多,進(jìn)而影響整個算法的性能,二是NMS算法的重疊人臉漏檢問題。對此,提出在原有的MTCNN模型中加入一個過濾層和改進(jìn)的NMS算法來提高性能;最后與現(xiàn)有的一些重疊人臉檢測算法進(jìn)行對比,發(fā)現(xiàn)該算法在正確率和性能上都有所提升,驗證了算法的可行性和可靠性。