陳 平,龔 勛
(西南交通大學 信息科學與技術(shù)學院,成都 611756)(*通信作者電子郵箱xgong@swjtu.edu.cn)
人臉對齊是在給定的人臉圖像上自動精確定位人臉特征點,如瞳孔、嘴角、鼻尖等。人臉對齊的應(yīng)用很廣泛,比如人臉識別、表情識別以及人臉動畫自動合成等。人臉對齊大致可以分成三個子問題:1)對人臉表觀圖像建模;2)對人臉形狀建模;3)建立人臉表觀圖像與人臉形狀的關(guān)聯(lián)?;谀P偷娜四槍R研究也圍繞著這三個方面開展:基于統(tǒng)計學習的主動形狀模型(Active Shape Model, ASM)[1]提出利用點分布模型表示人臉形狀信息,并結(jié)合主成分分析(Principal Component Analysis, PCA)[2]進行降維,建立了可以通過加權(quán)表示人臉形狀變分段化的形狀模型。主動外觀模型(Active Appearance Model, AAM)[3]方法考慮如何建模整張人臉的表觀信息,此方法是在ASM模型的基礎(chǔ)上建立形狀模型和紋理模型,并將兩個模型進行有機的結(jié)合。局部約束模型(Constrained Local Model, CLM)[4]方法分別繼承了ASM的高效性和AAM的準確性,使得人臉對齊效果得到了進一步提升。隨著人臉對齊技術(shù)的發(fā)展,基于級聯(lián)形狀回歸模型級聯(lián)姿態(tài)回歸(Cascaded Pose Regression, CPR)被Dollr等[5]在2010年首次提出,并用于人臉形狀的預測。接著,具有魯棒性的級聯(lián)姿態(tài)回歸(Robust Cascaded Pose Regression, RCPR)[6]在實現(xiàn)特征點定位的同時,還可以對特征點的可見性進行判斷。
近些年來,監(jiān)督下降方法(Supervised Descent Method,SDM)[7]從考慮如何使用監(jiān)督梯度下降的方法來求解非線性最小二乘問題,推動了人臉對齊在現(xiàn)實工程中的應(yīng)用。SDM認為相同特征點位置之間的尺度不變特征變換(Scale-Invariant Feature Transform, SIFT)[8]特征應(yīng)該相似,從而利用牛頓法建立級聯(lián)回歸模型,在人臉上取得較好的定位效果。接著,Ren等[9]用隨機森林模型學習局部二值特征(Local Binary Feature, LBF);劉袁緣等[10]提出非約束人臉特征點精確定位;張海艷等[11]提出應(yīng)用姿態(tài)估計的人臉特征點定位方法;賈項南等[12]提出改進的顯式形狀回歸定位算法。除了基于回歸的人臉對齊方法,基于深度學習的方法也大放光彩,如多任務(wù)級聯(lián)卷積網(wǎng)絡(luò)(Multi-Task Cascaded Convolutional Network, MTCNN)[13],實現(xiàn)了高精度的人臉檢測和特征點定位。
以上這些基于級聯(lián)回歸人臉對齊訓練過程中都要對原始圖片數(shù)據(jù)進行尺度變換的處理。一方面,圖片的變換會導致紋理的損失和形狀的微調(diào),會影響到特征的準確提??;另一方面,坐標尺度選擇不適合,會直接影響人臉對齊的精度。同時,當發(fā)現(xiàn)已有模型的泛化能力不夠時,通常的解決辦法是把新的數(shù)據(jù)集加入到原來的數(shù)據(jù)集中,重新訓練模型。這樣直接丟掉原有模型,不僅否定了自己以前的實驗結(jié)果,而且重新訓練帶來的訓練時長、模型不收斂等問題,甚至在面對龐大的數(shù)據(jù)集時,回歸求解根本不可計算。針對這些問題,本文提出一種基于增量式學習(Incremental Learning, IL)和尺度自適應(yīng)的人臉對齊方法:在增量式學習方面,通過充分利用原模型的預測結(jié)果與真實值帶來的偏差,按照一定的學習率增加原模型的參數(shù)值,快速有效地提高原模型的泛化能力。在人臉尺度自適應(yīng)方面,利用在人臉框內(nèi)投影而來的初始人臉與標準人臉建立對應(yīng)的映射關(guān)系,在迭代求解時,把任意尺度的人臉特征點映射歸一到標準尺度,實現(xiàn)人臉尺度的自適應(yīng);在特征提取時,計算當前預測特征點在原始圖片的位置,實現(xiàn)特征在原圖上的提取。實驗結(jié)果表明,本文所提方法有效地解決了已有模型泛化能力不夠就要被丟棄的尷尬,并且可以大幅度提升人臉的對齊精度。
本文主要工作如下。
1)利用不同人臉框的初始特征點與標準人臉特征點建立映射關(guān)系,將不同尺度的人臉統(tǒng)一到標準尺度,避免了圖片歸一化帶來的紋理損失,同時分析不同尺度下對模型預測的影響,并給出了最佳的人臉尺度。
2)提出一種增量式學習的回歸訓練方法。該方法在原有模型的基礎(chǔ)上,在新的數(shù)據(jù)集上進行訓練,避免了丟棄原模型和全部重新訓練帶來的模型訓練時間長、不收斂甚至不可計算等問題,能夠快速、有效地提高原模型的泛化能力。
在人臉圖像中,特征點是描述人臉形狀的重要信息,特征描述子是根據(jù)特征點在圖像位置提取而來。優(yōu)秀的特征描述子具有人臉尺度、縮放、光照等不變性,因此不同人臉相同特征點位置的特征描述整體上應(yīng)該相似。圖1顯示不同人臉在鼻尖處的特征直方圖。
如圖1所示,根據(jù)特征直方圖可以看出不同人在相同位置提取出來的特征在整體上是相似的,因此推導出特征與特征點的關(guān)系函數(shù):
(1)
其中:x為當前預測特征點(人臉形狀),h(x)表示從x處提取特征的函數(shù),當Δx趨近0的時候,相同位置的特征值相同,因此引入一個關(guān)系函數(shù)r(t)消除特征與特征點的量綱:Δx=h(x)(r(t)),令R=r(t),建立特征與特征點偏移量間的最小化目標函數(shù):
(2)
其中x*代表人臉的手工標注點。式(2)通過不斷最小化Δx使得預測特征點的坐標逼近手工標注點的坐標。由于這個方程式非二次的,不可能一步迭代完成。為了進行線性回歸,令Φ=h(x),建立線性回歸方程:
(3)
其中:k代表第k次迭代,根據(jù)式(3)可以利用特征Φ來進行特征點位置的預測。
圖1 不同人臉的相同位置有相似特征
但是進行算法訓練時,為了統(tǒng)一人臉尺度對原始圖片進行歸一化處理,導致特征不能在原圖上進行準確提取,因此,如何在統(tǒng)一人臉尺度的同時實現(xiàn)特征在原圖上的提取是一個值得研究的問題。
為了在方法訓練時,在保證人臉尺度統(tǒng)一的同時也能在原圖上進行特征提取,本文提出一種任意尺度的人臉自動投影到標準尺度人臉的方法,簡稱人臉投影變換(Face Projection Transformation, FPT)。該方法巧妙地避開了圖片預處理階段,通過建立任意人臉與標準尺度人臉的特征點映射關(guān)系,實現(xiàn)人臉尺度的自適應(yīng)和原圖紋理的無損失。同時本文提出了一種基于增量式學習訓練方法:在原有模型的基礎(chǔ)上,在新的數(shù)據(jù)集上進行訓練,這樣避免了丟棄原模型和全部重新訓練帶來的模型訓練時間長、不收斂甚至不可計算等問題,能夠快速、有效地提高原模型的泛化能力。
FPT方法的核心是將任意尺度的人臉自動投影到標準尺度人臉。在實現(xiàn)人臉尺度自適應(yīng)時,為了探究尺度對人臉對齊的影響,分別選擇100×100、200×200、400×400、600×600這4種不同的尺度人臉。對于每種尺度,選取多張帶有手工標注點的相同尺度正臉圖片,對標注點集進行對齊,采用Procrustes Analysis[14]算法,得到該尺寸下的標準人臉,如圖2所示。
選取一個標準人臉,對于任意尺度人臉的特征點坐標進行投影變換。假定人臉的一個特征點為p=[uv1]T,對應(yīng)的標準人臉的特征點為pstd=[u′v′ 1]T,根據(jù)平面投影變換可以得到:
T[uv1]T=[u′v′ 1]T
(4)
(5)
圖2 不同標準人臉的尺度
根據(jù)式(5)得到任意尺度人臉與標準尺度人臉間的變換矩陣T,建立任意尺度人臉在標準尺度人臉下的表示,如式(6):
x′=FPT(x)=Tx
(6)
其特征點在標準尺度人臉下的形象表示如圖3所示。
圖3 FPT坐標變換
從圖3可以看出,原始人臉的特征點在經(jīng)過FPT后,不僅在坐標尺度和標準人臉xstd的坐標尺度一致,而且在形狀上逼近了標準人臉xstd。
本文將FPT應(yīng)用到人臉對齊,簡稱人臉投影變換對齊(Face Projection Transformation Alignment, FPTA)。在訓練階段,選擇標準尺度下的人臉xstd,引入FPT方法。令x*′=FPT(x*),xk′=FPT(xk),根據(jù)式(3)得到FPTA的線性回歸方程:
(7)
其中:xk+1=FPT-1(xk+1′);Φk為當前預測的特征點在原圖提取出來的特征;R為特征與偏移量間的關(guān)系矩陣,該關(guān)系矩陣的最優(yōu)化求解函數(shù)如下:
(8)
算法1 FPTA算法。
2)用式(5)建立臉特征點x*在標準人臉xstd下的映射關(guān)系及其表現(xiàn)形式x*′;
3)利用xk在原圖上進行特征提取;
4)利用式(8)求得對應(yīng)的Rk和xk+1′;
5)利用xk+1=FPT-1(xk+1′)求出特征點在原圖的位置;
6)重復步驟3)~5)直到達到指定次數(shù)K。
通過實驗仿真發(fā)現(xiàn),當K≥4時算法收斂。
從圖4看出,F(xiàn)PTA算法在計算Δx時利用FPT方法實現(xiàn)人臉尺度的自適應(yīng),在迭代更新的時候利用FPT逆運算得到預測特征點在原圖的位置,從而實現(xiàn)特征在原圖上的提取。通過實驗仿真發(fā)現(xiàn),當?shù)螖?shù)達到4時算法收斂。
圖4 人臉對齊實例
通過式(8)可以看出,當模型泛化能力不夠時,只能把新的數(shù)據(jù)集加入到原有數(shù)據(jù)集中,重新訓練,以得到滿足要求的新模型;但是數(shù)據(jù)量的增大會直接導致模型訓練時間增加與不收斂,甚至當數(shù)據(jù)集過大的時候,求解時,龐大的矩陣將會出現(xiàn)不可計算等問題,因此在FPTA算法的模型基礎(chǔ)上,進行增量式學習(IL)訓練:
(9)
其中:lr是微調(diào)系數(shù),稱為學習率,初始由人工設(shè)定。式(9)可以通過最小二乘法解決ΔRk,進行模型的微調(diào):
(10)
通過式(10)的求解可以很快讓原模型在新的數(shù)據(jù)集上進行多次微調(diào),從而到達對新姿態(tài)也有較好泛化能力的模型。本文將此方法簡稱為增量式學習的FPTA算法,具體描述如算法2。
算法2 基于增量式學習的FPTA算法。
1)fork=1 toKdo
2)對于每張圖片利用Rk和式(7)進行特征點xk′的估計;
3)利用式(10)計算ΔRk,并求出Rk′;
4)利用式(9)和Rk′評估出xk+1′;
5)利用xk+1=FPT-1(xk+1′)反解算出特征點在原圖的位置。
通過實驗發(fā)現(xiàn),有時在新數(shù)據(jù)集上進行一次模型的微調(diào)并不能達到模型對該數(shù)據(jù)集的泛化要求時,可以設(shè)置較小的學習率對模型進行多次微調(diào)。
本章通過5個實驗來說明本文的主要工作與貢獻。所有實驗都是Intel i5- 7500 CPU@3.40 GHz的Windows 10平臺下進行的,實驗選取的數(shù)據(jù)集如表1。
表1 實驗用人臉數(shù)據(jù)集
其中LFPW(Labeled Face Parts in the Wild)包含811張訓練圖片和224張測試圖片;Helen有2 000張訓練圖片和330張測試圖片;AFW和IBUG具有大姿態(tài)的人臉;CelebA(CelebFaces Attributes)包含20多萬名人的大規(guī)模人臉數(shù)據(jù)集,其圖像涵蓋大姿態(tài)、復雜的背景,非常適合用于算法魯棒性的檢測。
同時,實驗特征提取可以使用SIFT、方向梯度直方圖(Histogram of Oriented Gradient, HOG)[15]等特征,本文從速度考慮,實驗選用HOG特征。在求解最小二乘優(yōu)化時可以使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)進行求解。實驗發(fā)現(xiàn)當?shù)螖?shù)K=4時,算法收斂效果較好。
為了快速研究不同歸一化尺度對人臉對齊算法影響,本節(jié)分別選擇尺度為100×100、200×200、400×400和600×600的標準人臉,用FPTA算法在LFPW訓練集上進行訓練,單次訓練迭代4次用時1.5 h,并在Helen、AFW、LFPW上進行測試分析。測試的分析結(jié)果如表2所示。
表2 不同標準人臉下的FPTA結(jié)果 %
根據(jù)表2的結(jié)果可以分析出,坐標尺度在400×400時對齊精度最好。通過實驗數(shù)據(jù)分析發(fā)現(xiàn),當選取的尺度過小時,人臉框與標準人臉產(chǎn)生的初始人臉特征點集存在更多的重合,會導致模型泛化能力減弱;當尺度過大的時候,初始人臉特征點集尺度離散較大,導致求解最小二乘時,模型的參數(shù)數(shù)值差過大,從而影響到模型的魯棒性,所以在后面的實驗中都選擇400×400的標準人臉。
本節(jié)共有兩個實驗,第1個實驗是把LFPW、Helen、IBUG結(jié)合為一個數(shù)據(jù)集(共2 946張)進行單獨的FPTA訓練,得到了modelA;第2個實驗是先在LFPW、Helen訓練集上進行FPTA算法的訓練集,得到初始modelB,考慮到modelB對大姿態(tài)人臉沒有較好的泛化能力,所以利用增量式學習在IBUG(135張)上進行模型的微調(diào),得到對大姿態(tài)有較好泛化能力的modelC,并對modelA、modelB、modelC進行了實驗分析。三個模型的對齊誤差分析結(jié)果如表3。
表3增量式學習的對齊平均誤差分析
%
Tab. 3 Alignment average error analysis of incremental learning
%
通過表3分析可以看出,通過增量式學習得到的modelC比modelB具有更好的泛化能力,而且其泛化能力比直接利用全部數(shù)據(jù)集訓練得到modelA的要更強一些;并且modelC的訓練時間比modelA的更短。同時在保證實驗環(huán)境相同的前提下,用開源的LBF算法和集成回歸樹(Ensemble of Regression Trees, ERT)[16]算法在Helen、AFW、LFPW測試集上進行68個特征點的對齊誤差測試分析,分析結(jié)果如表4所示。
表4 68個特征點的平均誤差比較 %
根據(jù)表4分析得出,本文方法在3個數(shù)據(jù)集上表現(xiàn)最好,對齊誤差都在4%以下。特別是在姿態(tài)變化較大的AFW數(shù)據(jù)集上,本文方法的對齊精度比ERT高2個百分點,比LBF高4個百分點,這充分說明了增量式學習的優(yōu)勢。圖4為本文方法的一些定位實例,從圖中看出,本文方法對姿態(tài)、遮擋有很好的魯棒性。
算法的魯棒性是評價算法好壞的標準,魯棒性分析是在對齊誤差的基礎(chǔ)上進行進一步的分析,因此,本節(jié)在3.2節(jié)的實驗基礎(chǔ)上選取了68個特征點中的15個關(guān)鍵點(每個眼睛邊緣6個點、鼻尖1個、2個嘴角)和基于深度學習的MTCNN、由粗到精的自編碼網(wǎng)絡(luò)(Coarse-to-Fine Auto-encoder Networks, CFAN)[17]和深度神經(jīng)網(wǎng)絡(luò)(Deep Convolutional Neural Network, DCNN)[18]進行5個關(guān)鍵點(兩個瞳孔、兩個嘴角、一個鼻尖)的對齊誤差分析。其中每個瞳孔的坐標由每個眼睛邊緣的6個點平均得來。MTCNN和DCNN是目前基于深度學習的最主流的人臉對齊方法,CFAN是人臉識別框架Seetaface中的人臉對齊方法。對齊誤差如圖5所示。
圖5 對齊誤差分析
通過圖5可以知道,在本文算法的對齊誤差都穩(wěn)定在0.03左右,MTCNN、CFAN和DCNN波動相對較大。匯總各數(shù)據(jù)集的測試結(jié)果后,F(xiàn)PTA的平均對齊精度比MTCNN高了2.79個百分點,比CFAN高了1.37個百分點,比DCNN高了2.37個百分點。在對齊誤差的基礎(chǔ)上,本文采用標準差對算法進行魯棒性分析,圖6為本文算法與基于深度學習的算法的分析結(jié)果。
圖6 不同算法的魯棒性分析
從圖6可以看出,基于深度學習的算法的標準差在AFW上都最大,且大于2%,但是本文算法的標準差還是在2%以下。結(jié)合其他兩個數(shù)據(jù)集的結(jié)果,本文算法的魯棒性比MTCNN高了1.39個百分點,比CFAN高了0.97個百分點,與DCNN近似,因此本文算法在68個點的訓練模型中選取出來的5個特征點在小數(shù)據(jù)集上無論在對齊精度上還是算法的魯棒性上都要優(yōu)于目前基于深度學習的人臉對齊算法。
為了進一步測試算法魯棒性,本文在大數(shù)據(jù)集上作人臉的5個關(guān)鍵點測試。為了縮短大數(shù)據(jù)集的測試時間,本實驗利用按照3.2節(jié)的第2個實驗選取7個點(兩個嘴角、四個眼角、一個鼻尖)進行增量式學習模型訓練。在測試的時候把兩個眼角的平均坐標作為該眼的瞳孔坐標。同時,在相同實驗環(huán)境下,對開源的MTCNN和CFAN也作了相應(yīng)的測試,與本文方法的對比分析如表5所示。
表5 大數(shù)據(jù)集上5個特征點的比較 %
本實驗中,CelebA是標準化后的數(shù)據(jù)集,有202 599張,去掉人臉框檢測錯誤帶來定位誤差比較大的人臉后,MTCNN、CFAN和本算法測試了相同的人臉一共181 509張。從表5結(jié)果可以看出,本文算法對齊精度略低于基于深度學習的對齊算法;但是從標準差來看,本文算法具有更強的魯棒性。圖7顯示的是對齊誤差較大的樣例,實驗發(fā)現(xiàn),當樣本姿態(tài)較大時,對齊誤差相對較大。這是因為訓練樣本的大姿態(tài)占比較少,導致算法模型對大姿態(tài)人臉沒有較好的泛化能力。
圖7 CelebA中錯誤大的樣本
本文從不同人臉相同特征點位置的特征描述子大致相似出發(fā),建立特征與特征點偏移量的關(guān)系方程,并提出一種基于尺度自適應(yīng)與增量式學習的人臉對齊方法:通過利用人臉框生成初始預測點與標準的人臉點建立映射關(guān)系,實現(xiàn)紋理特征在原圖上的提取和人臉尺度的歸一化;接著建立增量式學習方程,利用已有的模型在新的數(shù)據(jù)集上進行增量式的學習,快速有效地增強了原模型的泛化能力。實驗證明:本文的人臉尺度的選擇與增量式學習的方式,在人臉對齊上取得了很好的效果;同時該方法不僅適用于人臉對齊,還適用于其他回歸模型的求解。