李云紅, 劉旭東, 陳錦妮, 蘇雪平
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
人臉識(shí)別過(guò)程分為4個(gè)步驟:人臉檢測(cè)、人臉對(duì)齊、人臉校驗(yàn)和人臉識(shí)別。人臉對(duì)齊是人臉識(shí)別的一個(gè)關(guān)鍵步驟,人臉對(duì)齊算法的精確性影響到人臉校驗(yàn)和人臉識(shí)別的效果。人臉對(duì)齊在人臉跟蹤[1~4],面部表情識(shí)別、三維人臉重建[4~6]等領(lǐng)域起到關(guān)鍵作用。
現(xiàn)有的人臉對(duì)齊方法主要有基于優(yōu)化的方法和基于回歸的方法。基于優(yōu)化的代表算法包括主動(dòng)形狀模型(active shape model,ASM)[5]、主動(dòng)外觀模型(active appearance model,AAM)[6]和有約束的局部模型(constrained local model,CLM)[7]。ASM對(duì)齊速度較快,但對(duì)齊精度較低。AAM通過(guò)提取紋理特征建立外觀模型,雖然提高了對(duì)齊準(zhǔn)確度,但降低了對(duì)齊速率。CLM分別繼承了ASM的高效性和AAM的準(zhǔn)確性。上述方法在優(yōu)化目標(biāo)函數(shù)過(guò)程中,均要求目標(biāo)函數(shù)二次可導(dǎo),海森矩陣為正定矩陣。在基于形狀回歸的人臉對(duì)齊算法研究中,Cao X等人[8]提出顯式形狀回歸(explicit shape regression,ESR)算法和Xiong X等人[9]提出監(jiān)督下降法(supervised descend method,SDM),無(wú)需目標(biāo)函數(shù)二次可導(dǎo),不需要計(jì)算海森矩陣和雅可比矩陣,但ESR算法易受噪音影響,對(duì)齊不夠穩(wěn)定,SDM算法特征提取的計(jì)算量大,導(dǎo)致算法運(yùn)行時(shí)間長(zhǎng)。楊韜等人[10]提出了一種基于改進(jìn)的局部二值特征的人臉對(duì)齊算法,解決了傳統(tǒng)人臉對(duì)齊算法對(duì)于較大人臉姿態(tài)魯棒性較差的問(wèn)題。Xing J等人[11]通過(guò)學(xué)習(xí)兩個(gè)字典,將回歸過(guò)程視為稀疏編碼問(wèn)題,可以恢復(fù)被遮擋的人臉外觀,并抑制被遮擋點(diǎn)的影響。近年來(lái),神經(jīng)網(wǎng)絡(luò)也被應(yīng)用于人臉對(duì)齊,Zhao Y等人提出使用深度卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)進(jìn)行人臉對(duì)齊和分割的聯(lián)合多任務(wù)學(xué)習(xí)算法,對(duì)于每個(gè)任務(wù)的性能都有所提升,但是算法的加權(quán)參數(shù)受人工設(shè)置影響較大。Deng J等人[13]采用去除面部圖像中的旋轉(zhuǎn)和比例變化,通過(guò)沙漏網(wǎng)絡(luò)(hourglass networks)檢測(cè)人臉,取得較好的實(shí)驗(yàn)效果。楊曉青等人[14]提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的端對(duì)端人臉對(duì)齊算法,提高了復(fù)雜環(huán)境下人臉對(duì)齊的魯棒性,但算法中網(wǎng)絡(luò)模型過(guò)于復(fù)雜且人臉對(duì)齊精度的提升效果不明顯。盡管神經(jīng)網(wǎng)絡(luò)在人臉對(duì)齊方面已經(jīng)獲得了一些成就,但其模型太復(fù)雜,缺乏統(tǒng)一的方法集成框架。
本文提出基于K-means的精確人臉對(duì)齊算法。通過(guò)K-means和K最近鄰(K-nearest neighbour,K-NN)方法為輸入圖像建立形狀和外觀模型,提高算法的精確性;通過(guò)局部約束,加快算法的收斂速度,實(shí)現(xiàn)快速準(zhǔn)確定。
(1)
式中I為測(cè)試圖像,A0(u)為平均外觀,Ai(u)為形狀變化,s0為平均形狀,W(u;α)通常被定義為從平均形狀s0到形狀s的分段仿射變換,系數(shù)α和β分別是形狀參數(shù)和外觀參數(shù)。
將式(1)稀疏正則化后表示為
λ1‖α‖l1+λ2d⊙βl1}
(2)
式中N為訓(xùn)練集圖像的數(shù)目,λ1和λ2為正則化系數(shù),分別為形狀參數(shù)α和外觀參數(shù)β增加了稀疏約束。但高維的L1優(yōu)化問(wèn)題和擬合過(guò)程中的多次迭代導(dǎo)致稀疏正則化的AAM非常耗時(shí)。
為了加快擬合,引入了局部約束用于快速逼近
λ1‖d⊙α‖2+λ2‖d⊙β‖2}
(3)
式中d為輸入圖像I和A(u)之間的距離,即與輸入圖像越接近,權(quán)重越大。
首先通過(guò)K-means和K-NN方法為輸入圖像建立形狀和外觀模型,提高算法的精確性;通過(guò)局部約束,加快算法的收斂速度,從而實(shí)現(xiàn)快速準(zhǔn)確定位。
圖1是原始AAM與本文算法的對(duì)比,傳統(tǒng)的人臉對(duì)齊算法大部分都是采用平均臉作為初始化形狀。方法的優(yōu)勢(shì)在于當(dāng)測(cè)試人臉的形狀和平均臉比較相似時(shí),最后的預(yù)測(cè)形狀和標(biāo)準(zhǔn)形狀的誤差很小,但當(dāng)人臉表情、姿勢(shì)差異比較大時(shí),平均臉和測(cè)試人臉的差異較大,即使通過(guò)更多次的迭代也不能有效減小預(yù)測(cè)形狀和標(biāo)準(zhǔn)形狀之間的誤差,本文提出的算法有效解決了這個(gè)問(wèn)題。T0是整個(gè)訓(xùn)練集的平均模板,Tk0是K張與輸入圖像相似的圖像的平均模板,這里采用K-means和K-NN融合算法挑選與輸入圖像盡可能相似的圖像來(lái)進(jìn)行訓(xùn)練。算法實(shí)現(xiàn)總體框圖如圖2所示。
圖1 原始AAM與本文算法對(duì)比
圖2 算法框圖
由于彩色圖像非常容易受到光照等因素的影響,對(duì)于同類的物體顏色會(huì)有很多變化。在人臉對(duì)齊之前首先需要進(jìn)行圖像預(yù)處理,具體過(guò)程如圖3所示。
圖3 人臉圖像預(yù)處理過(guò)程
對(duì)于訓(xùn)練圖像,先提取其HOG特征,然后通過(guò)K-means方法進(jìn)行聚類,分成K類,使距離相近的人臉組合在一起。具體執(zhí)行過(guò)程如下:1)輸入待聚類的m張訓(xùn)練圖像和聚類個(gè)數(shù)k(k≤m);從m個(gè)圖像中根據(jù)層次聚類方法選取k個(gè)訓(xùn)練圖作為初始聚類中心。2)對(duì)于剩下的(m-k)張圖,計(jì)算每個(gè)訓(xùn)練圖到各個(gè)聚類中心的距離,找出每張訓(xùn)練圖到各個(gè)聚類中心的最小距離,并將該訓(xùn)練圖劃分到與其距離最小的聚類中心所在的類。3)重復(fù)步驟(2),直到將所有剩余的訓(xùn)練圖劃分到屬于自己的類中,組成k個(gè)聚類,每個(gè)類都包含其聚類中心及其對(duì)應(yīng)的訓(xùn)練圖。4)計(jì)算各個(gè)類的聚類中心,如果求得的質(zhì)心和聚類中心相同,表示聚類結(jié)束;否則令聚類質(zhì)心為其新的聚類中心,重新進(jìn)行聚類,直到最后的質(zhì)心等于上一次的聚類中心為止。5)輸出聚類結(jié)果。
對(duì)于輸入圖像,首先通過(guò)歐氏距離找到其所屬類別,然后通過(guò)KNN算法,選取K張與輸入人臉圖像最相似的訓(xùn)練圖像建立輸入圖像的形狀和外觀模型。實(shí)際實(shí)現(xiàn)中,為了方便計(jì)算們直接將其權(quán)重系數(shù)d設(shè)置為零,即選擇距離輸入圖像I最近的K張訓(xùn)練圖作為形狀和外觀基礎(chǔ),因此式(3)可以簡(jiǎn)化為如下形式
(4)
為了確定算法的實(shí)際效率,使用300—W[15]臉部數(shù)據(jù)庫(kù)對(duì)本文算法進(jìn)行測(cè)試,集合LFPW,HELEN的訓(xùn)練子集和整個(gè)AFW的數(shù)據(jù)集組成訓(xùn)練集(共3 148張),測(cè)試集則由LFPW,HELEN的測(cè)試子集和IBUG數(shù)據(jù)集組成(共689張)。
采用平均對(duì)齊誤差(averaged error)來(lái)評(píng)估人臉對(duì)齊算法的性能。通過(guò)除以兩只眼睛瞳孔之間的距離進(jìn)行歸一化,結(jié)果用百分?jǐn)?shù)來(lái)表示的,文中都省略百分號(hào)。
1)K-means聚類算法和K-NN算法中K值的選取
由于K-means聚類算法和K-NN算法都涉及到K值的選取問(wèn)題,首先要探究K值大小對(duì)結(jié)果的影響,找到能使對(duì)齊誤差達(dá)到最小的對(duì)應(yīng)的兩個(gè)K值。K-means中的值分別選取2,3,5,6。K-NN算法中選取10,15,20,25。數(shù)據(jù)如表1所示。由表1的實(shí)驗(yàn)結(jié)果知當(dāng)K-means算法的K值為4,KNN算法的K取20時(shí),達(dá)到的平均對(duì)齊誤差最小。接下來(lái)的驗(yàn)證實(shí)驗(yàn)中,將取該K值進(jìn)行實(shí)驗(yàn)。
表1 K值對(duì)實(shí)驗(yàn)結(jié)果的影響 %
2)300—W數(shù)據(jù)集上的比較
實(shí)驗(yàn)采用本文方法與ESR,SDM,RCPR三種算法進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如表2所示。通過(guò)表2可以看出,本文方法在300—W中數(shù)據(jù)集上表現(xiàn)很好,特別是在挑戰(zhàn)測(cè)試集上,本文方法實(shí)驗(yàn)對(duì)齊精度比RCPR算法高出4個(gè)百分點(diǎn),比SDM算法高出2個(gè)百分點(diǎn)。這充分說(shuō)明了算法的優(yōu)勢(shì)。
表2 各算法的平均對(duì)齊誤差 %
將算法應(yīng)用于測(cè)試數(shù)據(jù)集中,針對(duì)仰視、俯視、左側(cè)、右側(cè)、不同遮擋實(shí)驗(yàn)結(jié)果如圖4所示,圖4(a),(b)體現(xiàn)了本文算法對(duì)不同姿態(tài)人臉對(duì)齊的魯棒性,其中(a)左為仰視,右為俯視;(b)為左右側(cè)臉圖,其中右圖加了遮擋。圖4(c)為不同的遮擋情況下的人臉對(duì)齊效果圖。通過(guò)圖4結(jié)果充分表明本文算法對(duì)于不同姿態(tài)下人臉圖片可以得到很好的對(duì)齊效果,對(duì)于不同姿態(tài)下存在遮擋的人臉圖片也能取得很好的效果。
圖4 人臉對(duì)齊部分展示
通過(guò)K-means和KNN方法選擇與輸入圖像相似的訓(xùn)練圖像進(jìn)行訓(xùn)練,舍棄不相似的訓(xùn)練圖,從而減少對(duì)齊誤差。300—W數(shù)據(jù)庫(kù)上的實(shí)驗(yàn)表明,本文提出的算法的精度比ESR和RCPR算法都高出接近4個(gè)百分點(diǎn),比SDM算法高出兩個(gè)百分點(diǎn)。表明該算法相比ESR,SDM,RCPR三種算法的人臉對(duì)齊誤差減小。