賈項南,于鳳芹,陳 瑩
(江南大學物聯(lián)網工程學院,江蘇無錫214100)
(*通信作者電子郵箱jxn0415@foxmail.com)
人臉特征點定位是對一幅人臉圖片具有特殊語義的部位進行定位的方法,例如眼睛、鼻子、嘴巴和輪廓。這一技術對于人臉識別[1]、人臉跟蹤[2]、人臉動畫和 3D 人臉建模[3]至關重要。由于人臉表情豐富、光照變化較大和部分遮擋等因素,使得人臉特征點定位仍然存在巨大的挑戰(zhàn)。傳統(tǒng)的人臉特征點定位算法主要有主動形狀模型(Active Shape Model,ASM)[4]、主動外觀模型(Active Appearances Model,AAM)[5]和基于以上兩種方法的一系列改進算法。傳統(tǒng)的算法實現(xiàn)了良好的定位效果,但是定位效率低,無法滿足實時性需求。
近幾年,人臉特征點定位取得了較大的進步,有許多高效率、高準確率的算法被提出,例如基于級聯(lián)回歸[6-9]、核密度估計、局部約束模型[10-11]以及神經網絡[12]的人臉特征點定位算法。基于級聯(lián)回歸的方法通過學習一個回歸函數直接將人臉圖像的紋理特征映射到目標輸出,具有較高的定位精度和效率。最具代表性的是顯式形狀回歸(Explicit Shape Regression,ESR)算法[8],該算法采用級聯(lián)回歸作為算法的主體框架,以一幅人臉圖片和初始形狀為基準,采用隨機蕨作為回歸器,從訓練樣本中學習得到形狀增量,直接將人臉的紋理信息與形狀增量之間建立映射關系,定位精度高、速度快。但是該算法借助于人臉檢測得到的人臉檢測框作為形狀初始化的映射標準,當人臉姿態(tài)偏轉較大時不能準確地檢測到人臉,無法得到準確的人臉初始形狀,從而導致算法精度低、收斂速度慢;顯式形狀回歸算法在構造隨機蕨回歸器時采用像素特征,像素特征雖然計算簡單,但是易受光照影響,魯棒性較差;面對多次初始化得到的多個定位結果,顯式形狀回歸算法對多個定位結果取平均得到最終定位結果,然而有的定位結果對眼睛、鼻子區(qū)域定位較理想,有的定位結果對嘴巴、輪廓區(qū)域定位較理想,這樣簡單地取平均會忽略各個定位結果的優(yōu)劣,不能對多個定位結果進行最佳融合。
針對以上問題,本文對顯式形狀回歸算法提出以下改進:首先利用已有的技術檢測出雙眼和嘴巴的中心形成三點人臉形狀來代替人臉檢測框作為人臉形狀初始化的映射標準,通過相似變換將最初的人臉形狀映射到人臉圖片上以得到更精確的初始形狀來提高算法的定位精度;然后采用像素塊特征代替像素特征,在人臉區(qū)域隨機選取一小塊區(qū)域并對該區(qū)域內的所有像素取平均,得到平均灰度值作為隨機蕨的輸入特征,來對抗光照變化增加算法的魯棒性;最后采用多假設融合策略挑選出各個定位結果中定位效果較好的區(qū)域進行最佳融合來進一步提高算法的定位精度。
給定一幅人臉圖片Ii,一個初始形狀,級聯(lián)回歸模型以逐步累加的方式結合T級回歸器(R1,…,R,…,RT)來進行迭代回歸,每一個回歸器從圖像紋理特征計算得到一個形狀增量ΔS且以級聯(lián)方式更新人臉形狀:

其中:Ii表示第i個樣本,第t級的回歸器Rt通過更新上一級人臉形狀來得到新的人臉形狀,形狀回歸增量 Rt(Ii,取決于人臉圖像Ii和上一級評估的形狀。
ESR算法在級聯(lián)回歸框架的基礎上采用二級級聯(lián)回歸方式來計算形狀增量ΔS,一級回歸用來提取特征、更新形狀,二級回歸選擇特征,得到形狀增量。一級回歸的強回歸器Rt由二級回歸的K個弱回歸器(r1,r2,…,rK)組成,即Rt=(r1,r2,…,rK),經過多次迭代最終形成一系列的強回歸器(R1,R2,…,RT)。
ESR算法通過人臉檢測器檢測得到人臉檢測框,然后將最初的人臉形狀映射到人臉檢測框內得到初始形狀,在人臉區(qū)域隨機選取P個像素點,計算每個像素點到所有特征點的歐氏距離,選擇歐氏距離最小的特征點作為選取的像素點的索引,P個像素點兩兩相減得到P×P個像素差值特征,并且采用相關性特征選擇的方法,從P×P像素差值中選擇出F個最具代表性的像素特征和閾值來構造隨機蕨回歸器。隨機蕨回歸器看成是一個由F個決策節(jié)點組成的結構,決策節(jié)點包含一對特征〈I1,I2〉和一個閾值τ。通過閾值τ將F對像素差值特征劃分成一串二進制序列:

其中,I(i,j)表示像素點的灰度值,將二進制序列轉化成十進制數字b作為一個回歸容器的索引,b∈[0,2F-1],b可以索引到2F個回歸容器中。任意一個訓練樣本進入隨機蕨回歸器,該樣本的F個特征節(jié)點決定了其最終的回歸歸屬。當使用隨機蕨作為回歸器時,每一個回歸容器的輸出結果ΔSb由所落入該容器的訓練樣本的平均估計誤差計算得到:
其中:S^表示第i個樣本的真實人臉形狀;S表示第i個樣本
ii當前階段估計的形狀;表示落入回歸容器b中的樣本個數;β是收斂參數,用來防止落入容器b中的樣本數量太少出現(xiàn)過擬合的問題。
本文從形狀初始化的映射標準、算法所采用的特征和最終定位結果的融合方式出發(fā),對顯示形狀回歸人臉特征點定位算法進行改進。
為了得到更精確的初始人臉形狀,提出了三點定位的人臉形狀初始化方法,通過已有技術對眼睛和嘴巴中心進行定位[13],形成三點人臉形狀,通過相似變換,對初始形狀進行調整,通過平移、旋轉、縮放使其更接近真實人臉形狀,進而提高人臉特征點定位的精度。
對于第i個樣本,通過已有技術檢測出雙眼和嘴巴3個部位的中心點,形成三點人臉形狀,從訓練樣本中隨機選取最初的人臉形狀并提取雙眼和嘴巴的中心點得到三點人臉形狀為求解相似變換所需要的參數,使對齊于的相似變換過程如下:

以下是求解縮放因子、平移向量、旋轉矩陣過程。首先,計算得到的中心坐標分別為m1、m2,通過以下計算可以得到平移向量t和縮放因子c:

其中conv(S)是形狀S的協(xié)方差矩陣。計算旋轉矩陣R時,需要將形狀歸一化到相同的尺寸下:

S'i1=[x1,y1;x2,y2;x3,y3],S'i2=[u1,v1;u2,v2;u3,v3]。為了計算旋轉矩陣的參數,使形狀S'i2對齊于S'i1,即最小化式(9):

即可求得旋轉矩陣R。
通過以上求出的平移向量t、縮放因子c、旋轉矩陣R,即可將最初的人臉形狀經過相似變換得到最終的初始形狀

將最初的人臉形狀通過雙眼和嘴巴形成的三點人臉形狀映射到人臉圖像上,得到一個更準確的初始人臉形狀。對一幅圖片進行M次初始化,即可得到M個初始人臉形狀{,
顯式形狀回歸算法采用的特征是像素差值特征,該特征計算簡單效率高,但是對于有遮擋和光照變化的人臉圖片魯棒性較差,會導致定位效果不理想。
為了解決以上問題,本文提出了像素塊差值特征。在人臉區(qū)域隨機選取P個3×3大小的像素塊,計算像素塊的中心到所有特征點的歐氏距離,選擇距離最小的特征點作為該像素塊的索引,計算像素塊的平均紋理灰度值,作為最終的像素塊特征,P個特征兩兩相減得到P×P個像素塊差值特征,采用相關性特征選擇方法[8],從P×P個像素塊差值中選取F對判別性較高的像素塊差值特征和閾值構造隨機蕨回歸器,像素塊差值特征計算公式如下:

其中:Ω1、Ω2表示兩個3×3的像素塊,I(i,j)表示圖像中(i,j)點的灰度值,再將像素塊差值特征與所選的閾值τ進行比較:

F對像素塊差值特征和閾值τ即可構成深度為F的隨機蕨回歸器,通過隨機蕨節(jié)點上的閾值τ將像素塊差值特征劃分為二進制序列,并將二進制序列轉化成十進制數作為回歸器的索引得到形狀增量,進而完成人臉特征點的定位。
對于第i幅人臉圖像Ii進行M次初始化得到M個初始人,通過計算得到M個預測結果{Si1,Si2,…,SiM},并稱之為多假設,為了得到一個更精確的定位結果,提出了多假設融合策略。由于多假設融合策略計算復雜,本文采用區(qū)域融合策略,即人臉的同一部位的特征點定位總是來自同一個假設。
為了從多個融合結果中選擇出最佳的定位結果,需要定義一個選擇最佳結果的函數。正如文獻[14]描述的,定義一個映射矩陣W來得到多假設融合策略的最大輸出結果作為最佳的定位結果。

其中:Si是最終的輸出結果,Ψ表示特征,本文采用2.2節(jié)產生的二進制序列作為Ψ特征。可以看出式(14)是一個標準的結構化SVM問題。所以本文使用結構化SVM算法[15-16]學習一個映射自動融合多假設結果。針對本文的問題,定義一個預測形狀Si和真實性狀S^i之間的損失函數為:Δ(Si,S^i)=‖Si-S^i‖22。考慮到損失函數的復雜度,本文采用Matlab結構化SVM包來解決多假設融合策略問題,從而得到一個最佳的定位結果。
本文算法具體步驟如下:
1)輸入訓練圖片,通過文獻中的已有技術對人的眼和嘴巴中心點進行定位成三點人臉形狀,從訓練樣本中隨機抽取M個人臉形狀并通過相似變換求出每個初始形狀到檢測出的3個點的縮放因子c,平移向量t,旋轉矩陣R并將其映射到人臉圖片上得到一系列的初始形狀
2)在人臉圖片上隨機選擇P個像素點,并計算每一個像素到L個特征點的歐氏距離,選擇最近的特征點作為該像素點的索引,然后以這P個像素特征點為中心選取3×3區(qū)域求平均得到的值作為特征,P個像素塊特征兩兩作差即可得到P×P個像素塊差值特征。
3)對于步驟2)得到的像素塊特征,采用相關性特征選擇方式選擇出最具判別性的特征來構造K個隨機蕨弱回歸器組成第一層的強回歸器Rt,得到形狀增量ΔS,更新當前階段的人臉形狀,并進入下一級迭代,直到預測誤差不再增加停止迭代。
4)通過步驟1)~3),每一個訓練樣本得到M個定位結果{Si1,Si2,…,SiM},采用多假設融合策略對M個定位結果進行最佳融合。
5)測試過程采用與訓練過程同樣的初始化方法,并且采用訓練過程中構造好的隨機蕨回歸器,加載訓練好的模型,通過一步一步的迭代使初始人臉形狀收斂于真實人臉形狀。最后對多個定位結果采用多假設融合策略來獲得最終的定位效果。
本文算法流程如圖1所示。

圖1 改進的顯式形狀回歸人臉特征點定位算法流程Fig.1 Flow chart of improved explicit shape regression for face alignment
實驗環(huán)境 Windows7 64位,Intel Core i3-2310M CPU處理器,6 GB內存,Matlab R2016a仿真系統(tǒng)。實驗數據采用本研究領域公認的 三大數據庫 LFPW[17]、HELEN[18]、300-W[19]。LFPW庫中的圖片來源于網絡,包含了大量姿態(tài)、光照、表情變化較大的人臉圖片,可以更好地驗證算法的性能,采用訓練集中1100張人臉圖片中的800張作為訓練圖片,測試集300張中的224張作為測試圖片。HELEN庫包含了2330張高分辨率的網絡圖片,采用2 000張作為訓練樣本,330作為測試樣本。300-W庫具有極大的挑戰(zhàn)性,因為其包含了在姿態(tài)、表情、背景和圖片質量方面大幅度變化的圖片。本文采用300-W 庫中包含的LFPW、HELEN、AFW庫作為訓練樣本,將IBUG庫作為測試樣本。LFPW、HELEN、300-W這三個庫中的人臉圖片都包含了68個特征點,并作為真實人臉形狀來進行有監(jiān)督學習。
參數設置 算法中初始化人臉形狀次數M為10,特征點數L為68,第一級回歸迭代次數T為10,第二級回歸器數量K為500,隨機在人臉區(qū)域選擇的像素特征數P為500,選擇出的最具判別性的特征數F為5,即隨機蕨深度為5。
衡量標準 在測試算法性能時,本文采用文獻[8]的衡量標準來評估人臉形狀誤差,由于圖片中人臉大小各不相同,采用雙眼間距離來標準化定位誤差,定位誤差計算公式如下:

其中:N表示樣本數量,L表示特征點個數,Si表示預測的人臉形狀,S^i表示真實人臉形狀,di表示雙眼間的距離。
為了驗證本文算法的有效性,分別與文獻[6-8]中的算法在LFPW、HELEN人臉庫上進行對比。文獻[6-8]是當今人臉特征點定位領域定位效果較好的三種算法,本文算法就是在文獻[8]ESR算法基礎上進行改進得到的。從表1可知,本文算法在LFPW庫上比原算法ESR定位誤差降低了7.96%,在HELEN庫上降低了5.36%,在300-W庫上降低了1.94%,本文算法比ESR定位精度高的原因是通過精確的定位人臉和嘴巴來獲得更準確的初始人臉形狀,并且采用像素塊特征,抗光干擾性較強,魯棒性好,本文算法在最后挑選出多個定位結果較好的區(qū)域進行最佳組合,所以本文算法實現(xiàn)了較理想的定位效果。本文改進的ESR算法比文獻[6-8]定位效果都要好,基本滿足人臉特征點定位的精度需求。

表1 各算法定位誤差比較Tab.1 Alignment error comparisons of algorithms
為了更好地體現(xiàn)本文定位算法的優(yōu)勢,對幾種算法的定位準確率進行對比。有些學者提出當樣本誤差<0.25時,表示樣本定位正確,還有更嚴格的評價標準,當樣本誤差<0.10時,表示樣本定位正確。從表2可知,當采用樣本誤差<0.10的標準時,幾種算法定位正確率均達到90%以上。本文算法隨著誤差標準的放寬,定位準確率逐漸上升,并在樣本誤差<0.15時,定位正確率率先達到100%。

表2 各算法LFPW庫定位正確率比較Tab.2 Alignment accuracy comparison on LFPW dataset of algorithms
從表3可知:文獻[6]的定位正確率處于遙遙領先的地位,是因為文獻[6]提出的算法主要用來解決人臉存在遮擋的問題,所以在有大量遮擋的HELEN庫中比本文算法的定位正確率更高;但本文算法比文獻[7]、文獻[8]定位正確率都高,基本滿足定位需求。總體上看,表3的定位正確率比表2要低,是因為LFPW庫中包含的人臉姿態(tài)中規(guī)中矩,利于定位,而在HELEN庫中卻包含著大量姿態(tài)變化、光照變化、表情變化較大和大面積遮擋的人臉圖片,定位起來比較困難。
圖2是本文算法在LFPW庫的最終定位效果圖。由圖2可知,本文算法對于具有挑戰(zhàn)性的人臉圖片能夠實現(xiàn)良好的定位效果。主要是由于本文算法在初始化階段對于各種姿態(tài)的人臉圖片都能通過相似變換給定準確的初始人臉形狀,在特征提取階段使用像素塊特征來對抗光照變化的影響,最后階段使用多假設融合策略將定位較好的結果進行融合,最終實現(xiàn)了良好的定位效果。

表3 各算法HELEN庫定位正確率比較Tab.3 Alignment accuracy comparison on HELEN dataset of algorithms

圖2 LFPW庫上的實驗結果Fig.2 Experimental results on LFPW dataset
圖3是本文算法與文獻[6-8]算法在HELEN庫上的實驗效果比較。由圖3(a)可知,文獻[6-7]算法對于表情豐富的人臉圖片鼻子處定位失敗,文獻[8]算法對于圖片左上角的眉毛處定位失敗,而本文算法對于各個部位均實現(xiàn)了較準確的定位。由圖3(b)可知,對于姿態(tài)偏轉較大的圖片,文獻[6-8]算法的定位效果均不太理想,尤其是左側臉頰,而本文算法采用了基于三點定位的初始化方法,對于大姿態(tài)的人臉圖片實現(xiàn)了良好的定位。圖3(c)是存在大量遮擋人臉圖片,幾種算法均實現(xiàn)了良好的定位,尤其是本文算法定位效果更接近真實人臉形狀。圖3(d)是既存在姿態(tài)偏轉又存在光照變化較大的人臉圖片,文獻[6]算法鼻子處定位失敗,文獻[8]算法鼻子和嘴巴均定位失敗,主要是由于這兩種算法對抗光照變化能力較弱,本文算法在鼻子處定位雖然也存在一定的誤差,但是更接近真實的定位效果。
本文針對顯式形狀回歸人臉特征點定位算法存在的一些問題提出了改進。首先,采用已有技術定位出雙眼和嘴巴三個部位的中心形成三點人臉形狀來作為形狀初始化的映射標準,以得到更精確的初始人臉形狀;然后采用像素塊特征來對抗光照變化增加算法的魯棒性;最后采用多假設融合策略來對多次初始化得到的多個定位結果進行最佳融合進一步提高算法的定位精度。仿真實驗結果表明,與原算法相比,本文算法在LFPW、HELEN和300-W人臉庫上的定位精度分別提高了7.96%、5.36%和1.94%;但是本文的算法在處理具有大面積遮擋的人臉時,特征點定位效果不理想,這是今后需要重點研究的內容。

圖3 HELEN庫上的實驗結果Fig.3 Experimental results on HELEN dataset