秦 楓, 盧芳芳, 林江南
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200090)
數(shù)碼影像器材使得成像分辨率越來越高,圖像可以清晰地顯示人臉中的所有細(xì)節(jié)信息,包括斑點(diǎn)、皺紋等影響美觀的因素。人臉美化技術(shù)在較完整地保留臉部細(xì)節(jié)等信息的前提下較好地去除掉人臉皮膚上的不理想因素,達(dá)到人臉美化的效果。由于其在電視機(jī)、數(shù)碼相機(jī)、攝像機(jī)、手機(jī)、投影儀以及視頻會(huì)議等多媒體系統(tǒng)中有潛在的應(yīng)用價(jià)值,使得這一技術(shù)的研究受到廣泛的關(guān)注。ARAKAWA K[1]提出了一種基于ε濾波器進(jìn)行人臉美化的方法,但ε-濾波器本質(zhì)上是一種低通濾波器,雖然對(duì)某些人臉瑕疵例如皺紋刪除效果較好,但是在雀斑、痘痘等方面效果并不顯著。LEE C等人[2]基于Viola-Jones方法來定位人像五官,并根據(jù)面部結(jié)構(gòu)的先驗(yàn)信息,通過混合高斯模型為基礎(chǔ)的貝葉斯分割方法提取皮膚區(qū)域,最后通過平滑處理以達(dá)到美化的目的。該方法效果一般,尤其是在紋理豐富的區(qū)域,會(huì)導(dǎo)致皮膚區(qū)域分割不準(zhǔn)確。韓靜亮等人[3]提出了一種基于迭代的中值濾波美化算法,預(yù)先使用二值化算法將人像粗分為特征區(qū)域和非特征區(qū)域,使用非線性濾波對(duì)非特征區(qū)域做迭代處理。該方法對(duì)于斑點(diǎn)去除效果較好,但在平滑皺紋區(qū)域時(shí),一定程度上造成圖像模糊。
本文根據(jù)我國乃至亞洲人民的主流審美準(zhǔn)則設(shè)計(jì)了一套對(duì)人像圖片進(jìn)行自動(dòng)修圖的人臉美化系統(tǒng)。該系統(tǒng)首先采用監(jiān)督下降法(Supervised Descent Method,SDM)[4]來實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)定位;其次采用交互式圖像變形實(shí)現(xiàn)人臉局部變形;最后采用一種加權(quán)均值濾波對(duì)人像進(jìn)行表面模糊處理,實(shí)現(xiàn)膚質(zhì)調(diào)整。相比傳統(tǒng)人臉美化系統(tǒng),該系統(tǒng)可以通過調(diào)整修圖的力度來達(dá)到瘦臉、美目、去斑等人臉美化的效果。同時(shí),美化后的圖片保留了原圖的清晰度和細(xì)節(jié)特征信息。
該自動(dòng)人臉美化系統(tǒng)包含3個(gè)主要功能:人臉關(guān)鍵點(diǎn)定位、五官調(diào)整和膚質(zhì)調(diào)整。首先輸入一張人像圖片,該系統(tǒng)根據(jù)用戶的選擇(五官調(diào)整、膚質(zhì)調(diào)整)進(jìn)行不同功能的自動(dòng)修圖,并輸出修圖結(jié)果。人臉美化系統(tǒng)框圖如圖1所示。
圖1 人臉美化系統(tǒng)框圖
要實(shí)現(xiàn)該系統(tǒng)中的五官調(diào)整和關(guān)鍵點(diǎn)位置調(diào)整功能,首先要識(shí)別圖中人臉關(guān)鍵特征位置(如瞳孔、嘴角、鼻尖等),才能針對(duì)臉型、五官進(jìn)行局部美化。
本文采用SDM算法實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)定位。SDM算法分為兩部分,第一部分是訓(xùn)練部分,目的是通過大量樣本的訓(xùn)練得到從平均形狀提取的尺度不變特征變換(Scale-invariant Feature Transform,SIFT)與平均形狀到真實(shí)形狀偏移量的數(shù)學(xué)關(guān)系;第二部分是定位部分,目的是利用訓(xùn)練結(jié)果求解測試圖片的關(guān)鍵點(diǎn)位置。
2.1.1 訓(xùn)練部分
訓(xùn)練部分包括計(jì)算平均臉和用平均臉回歸到真實(shí)臉兩步。具體步驟如下。
步驟1 首先準(zhǔn)備一個(gè)人臉樣本集,樣本集可以用手動(dòng)標(biāo)定的方式獲得,也可以從網(wǎng)絡(luò)下載標(biāo)定好的人臉庫(LFPW和AFW等)。本文采用手動(dòng)標(biāo)定的方式,對(duì)每張圖片記錄關(guān)鍵點(diǎn)坐標(biāo),總共標(biāo)定了240張人臉圖片。每張圖片取關(guān)鍵點(diǎn)的位置如圖2所示。
圖2 人臉特征點(diǎn)標(biāo)定位置
步驟2 取一份樣本副本,對(duì)該副本的所有人臉圖像進(jìn)行對(duì)齊,求出平均臉的位置。對(duì)齊采用普氏分析法[5],先根據(jù)兩幅圖片的關(guān)鍵點(diǎn)坐標(biāo)矩陣,用最小二乘法求出仿射變換矩陣,再用仿射變換把一幅圖對(duì)齊到另一幅圖。以上步驟完成了整個(gè)樣本的一次粗對(duì)齊,反復(fù)對(duì)齊樣本直到收斂,得到較準(zhǔn)確的對(duì)齊結(jié)果。對(duì)對(duì)齊后的關(guān)鍵點(diǎn)取均值,并用EmguCV中的Haar方法對(duì)對(duì)齊后的人臉圖片計(jì)算人臉矩形框,同樣取均值,得到平均關(guān)鍵點(diǎn)與平均人臉的相對(duì)位置。
步驟3 計(jì)算平均關(guān)鍵點(diǎn)到真實(shí)關(guān)鍵點(diǎn)的回歸矩陣。首先,取另一份樣本副本,為消除手動(dòng)標(biāo)定關(guān)鍵點(diǎn)時(shí)未計(jì)算方向的影響,先用Haar方法對(duì)每幅圖片計(jì)算雙眼的粗略位置,以雙眼為參照旋轉(zhuǎn)樣本圖片使人臉大致擺正。其次,把平均關(guān)鍵點(diǎn)用仿射變換方法放到每幅圖片的人臉矩形框中。接著,從平均關(guān)鍵點(diǎn)處提取SIFT特征向量。然后,依次對(duì)每個(gè)關(guān)鍵點(diǎn)求解回歸矩陣。把從同一下標(biāo)的關(guān)鍵點(diǎn)在每幅圖中提取的特征向量串成一個(gè)特征矩陣I,計(jì)算每個(gè)平均關(guān)鍵點(diǎn)到真實(shí)關(guān)鍵點(diǎn)之間的坐標(biāo)偏移量,把每幅圖中用同一下標(biāo)的關(guān)鍵點(diǎn)計(jì)算的偏移量串成一個(gè)矩陣R。求解特征矩陣I與偏移量矩陣R的線性關(guān)系,即求解回歸矩陣X,公式為
(1)
該方程表示從平均形狀提取的SIFT特征與平均形狀到真實(shí)形狀偏移量的數(shù)學(xué)關(guān)系,可以用最小二乘法公式解出,即
X=(ITI)-1ITR
(2)
用式(2)求出所有關(guān)鍵點(diǎn)的回歸矩陣,即得到第一次回歸的矩陣集合。使用求得的回歸矩陣對(duì)每幅圖像的平均關(guān)鍵點(diǎn)進(jìn)行修正,用修正結(jié)果取代原來的平均關(guān)鍵點(diǎn),作為下一次解回歸方程的輸入數(shù)據(jù)。訓(xùn)練到一定次數(shù)時(shí)結(jié)束訓(xùn)練。第一次回歸結(jié)果如圖3所示。
圖3 第一次回歸結(jié)果
2.1.2 定位部分
利用訓(xùn)練部分得到的級(jí)聯(lián)回歸矩陣集合,對(duì)樣本圖片進(jìn)行關(guān)鍵點(diǎn)定位。具體步驟為:首先,用Haar方法粗定位出圖片中的人臉矩形框,以雙眼為參照旋轉(zhuǎn)圖片使人臉大致擺正;其次,把平均關(guān)鍵點(diǎn)用仿射變換放置矩形框中;接著計(jì)算每個(gè)平均關(guān)鍵點(diǎn)處的SIFT特征向量,把特征向量與對(duì)應(yīng)的回歸矩陣相乘,得到平均關(guān)鍵點(diǎn)到真實(shí)關(guān)鍵點(diǎn)的坐標(biāo)偏移量。最后把平均關(guān)鍵點(diǎn)與偏移量相加,得到真實(shí)關(guān)鍵點(diǎn)的預(yù)測坐標(biāo)。
自動(dòng)人臉美化系統(tǒng)需要具備的五官調(diào)整功能(如雙眼增大、瘦臉等),可通過圖像局部變形技術(shù)實(shí)現(xiàn)。本文采用交互式圖像變形算法[6]。該算法的思想是:給定一個(gè)點(diǎn)x的坐標(biāo),該點(diǎn)在變形后的像素值是原始圖像中的某一點(diǎn)X0經(jīng)過變形得到的,因此,只要知道了X0與x的函數(shù)關(guān)系,就能求得點(diǎn)x處的像素值。
局部平移的函數(shù)關(guān)系為
(3)
式中:x——平移后的點(diǎn)坐標(biāo);
u——與x對(duì)應(yīng)的平移前的點(diǎn)坐標(biāo);
c,m——交互操作中鼠標(biāo)按下時(shí)的點(diǎn)與放開時(shí)的點(diǎn);
rmax——變形能影響到的最大半徑。
局部縮放的函數(shù)關(guān)系為
(4)
式中:r——變形中心到已知點(diǎn)的距離;
fs(r)——變形中心到已知點(diǎn)對(duì)應(yīng)的原圖中的點(diǎn)的距離;
α——縮放參數(shù)。
當(dāng)α=-1時(shí),局部區(qū)域被放到最大;當(dāng)α=1時(shí),局部區(qū)域被縮到最小;當(dāng)α=0時(shí),不產(chǎn)生變形。局部變形算法參數(shù)的取值,需根據(jù)關(guān)鍵點(diǎn)定位結(jié)果來決定。
2.2.1 臉型胖瘦的參數(shù)計(jì)算
本文提出的改變臉型胖瘦的參數(shù)計(jì)算過程如圖4所示。
圖4 臉型胖瘦的參數(shù)計(jì)算過程
由圖4可知,先求變形中心點(diǎn):連接56號(hào)點(diǎn)到4號(hào)點(diǎn),記該線段長度為l,在其延長線上取到4號(hào)點(diǎn)距離為l的點(diǎn)O作為變形中心點(diǎn)。再求變形半徑:取點(diǎn)O到5號(hào)點(diǎn)的距離r作為變形半徑。使用局部平移公式對(duì)該范圍進(jìn)行計(jì)算,再改變變形強(qiáng)度S,實(shí)現(xiàn)對(duì)臉型胖瘦的調(diào)整。
2.2.2 雙眼縮放的參數(shù)計(jì)算
改變雙眼大小的參數(shù)計(jì)算過程如圖5所示。
由圖5可知,先確定變形中心點(diǎn):連接30號(hào)點(diǎn)與34號(hào)點(diǎn),求出該線段的中點(diǎn)O作為變形中心點(diǎn)。再求變形半徑:取眼頭到眼尾的半徑的兩倍作為變形半徑,因此30號(hào)點(diǎn)到34號(hào)點(diǎn)的線段長度即為變形半徑,兩倍該長度即為變形直徑。使用局部縮放公式對(duì)該范圍進(jìn)行計(jì)算,再改變縮放系數(shù)α,實(shí)現(xiàn)對(duì)雙眼大小的調(diào)整。
2.2.3 用雙線性插值計(jì)算浮點(diǎn)坐標(biāo)顏色
雙線性插值[7]是一種計(jì)算浮點(diǎn)坐標(biāo)顏色的方法。該方法能讓圖片在縮放過程中保持平滑過渡。假設(shè)4個(gè)已知像素值的點(diǎn)的坐標(biāo)分別為(0,0),(0,1),(1,0),(1,1),使用雙線性插值求點(diǎn)(x,y)(其中0 f(x,y)≈f(0,0)(1-x)(1-y)+ f(1,0)x(1-y)+ f(0,1)(1-x)y+f(1,1)xy (5) 或者用矩陣運(yùn)算表示為 f(x,y)≈ (6) 自動(dòng)人臉美化系統(tǒng)需要具備的膚質(zhì)調(diào)整功能可以用保邊的圖像濾波算法實(shí)現(xiàn)。本文采用表面模糊算法[8]。該算法的實(shí)質(zhì)是一種加權(quán)均值濾波。 首先,輸入模糊半徑R和閾值Y。 其次,對(duì)圖像中的單個(gè)像素點(diǎn)x實(shí)現(xiàn)表面模糊,先根據(jù)式(5)計(jì)算x點(diǎn)周圍半徑R區(qū)域的所有像素對(duì)于x點(diǎn)像素值的權(quán)重wi,當(dāng)wi小于零時(shí),取wi=0。 (7) 式中:xi——第i個(gè)鄰域點(diǎn)的像素值; x0——x點(diǎn)的像素值。 接著,根據(jù)R范圍內(nèi)所有點(diǎn)的值和權(quán)重,計(jì)算出x點(diǎn)的新像素值。 (8) 最后,對(duì)原圖中的所有點(diǎn)計(jì)算新像素值,得到表面模糊的結(jié)果。 根據(jù)上述計(jì)算過程可知,對(duì)于一幅400×400像素大小的三通道彩色圖片,如果模糊半徑R的值是12像素,則權(quán)重的計(jì)算次數(shù)為400×400×3×25×25即3×108次。權(quán)重計(jì)算公式是浮點(diǎn)運(yùn)算,計(jì)算效率低,需對(duì)原公式進(jìn)行優(yōu)化。本文采用建立權(quán)重值查詢數(shù)組[9-10]、減少取三維數(shù)組地址的次數(shù)、使用三維交錯(cuò)數(shù)組取代三維普通數(shù)組、摘除權(quán)重公式中的絕對(duì)值、用整型計(jì)算替代浮點(diǎn)計(jì)算等方法,對(duì)原公式進(jìn)行了大幅優(yōu)化。最終權(quán)重計(jì)算公式為 (9) 式中:k=2.5Y+256。 本系統(tǒng)采用SDM算法實(shí)現(xiàn)關(guān)鍵點(diǎn)定位。首先采用SDM訓(xùn)練得到均值關(guān)鍵點(diǎn)和級(jí)聯(lián)回歸矩陣組,接著將訓(xùn)練好的均值關(guān)鍵點(diǎn)在待測圖像上提取特征向量,再和回歸矩陣相乘,得到均值關(guān)鍵點(diǎn)坐標(biāo)到真實(shí)關(guān)鍵點(diǎn)的偏移量,最后把均值關(guān)鍵點(diǎn)與偏移量相加,得到真實(shí)關(guān)鍵點(diǎn)的預(yù)測坐標(biāo)。使用訓(xùn)練好的回歸矩陣數(shù)組對(duì)20張不在訓(xùn)練集中的人臉圖片進(jìn)行測試,其中18幅人臉關(guān)鍵點(diǎn)定位準(zhǔn)確,2幅人臉關(guān)鍵點(diǎn)定位不太準(zhǔn)確。部分圖像如圖6所示。可見,基于SDM的人臉關(guān)鍵點(diǎn)定位算法適合正面人臉,側(cè)面人臉定位算法的魯棒性有待提高。 圖6 人臉關(guān)鍵點(diǎn)定位圖像 采用交互式圖像扭曲,結(jié)合已經(jīng)定位出的關(guān)鍵點(diǎn),實(shí)現(xiàn)五官調(diào)整,結(jié)果如圖7所示。 圖7 五官調(diào)整前后對(duì)比 采用表面模糊算法實(shí)現(xiàn)皮膚的磨皮功能,再用高反差保留、高斯模糊與線性光混合模式實(shí)現(xiàn)細(xì)節(jié)保留。將韓靜亮迭代多級(jí)中值濾波處理結(jié)果與本文提出的加權(quán)均值濾波處理結(jié)果進(jìn)行比較,具體如圖8所示。 圖8 兩種方法的膚質(zhì)調(diào)整結(jié)果對(duì)比 由圖8可知,加權(quán)均值濾波的表面模糊算法不僅能夠更有效地去除人像斑點(diǎn)、皺紋等瑕疵,而且能夠更好地保留圖像中的細(xì)節(jié)。 本文提出的自動(dòng)人臉美化系統(tǒng)主要包含3個(gè)部分,分別是人臉關(guān)鍵點(diǎn)定位算法、人像局部五官調(diào)整和平滑皮膚。每個(gè)部分均采用時(shí)下效果顯著的算法以實(shí)現(xiàn)功能,并在此基礎(chǔ)上進(jìn)行針對(duì)性優(yōu)化,尤其是在皮膚平滑方面,采用加權(quán)中值濾波效果顯著。但是在人臉關(guān)鍵點(diǎn)定位部分,存在一定的誤差。后續(xù)研究將進(jìn)一步探索新的關(guān)鍵點(diǎn)定位算法,以提升定位精確度。2.3 膚質(zhì)調(diào)整功能實(shí)現(xiàn)
3 實(shí)驗(yàn)結(jié)果與比較
3.1 關(guān)鍵點(diǎn)定位訓(xùn)練測試結(jié)果
3.2 五官調(diào)整測試結(jié)果
3.3 膚質(zhì)調(diào)整測試結(jié)果
4 結(jié) 語