魏 瑋, 劉騰龍
(河北工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與軟件學(xué)院,天津 300401)
人臉分割一直是計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),現(xiàn)有的人臉分割技術(shù)主要是將人臉完整地從圖像中分割出來,即沿著人臉紋理梯度變化大的邊緣進(jìn)行分割。例如:龔勛等人[1]建立混合能量活動(dòng)輪廓模型來分割人臉完整區(qū)域;毋立芳[2]等人根據(jù)人臉輪廓的平滑性,利用曲線擬合補(bǔ)充不確定邊緣點(diǎn)來進(jìn)行人臉完整區(qū)域的分割等。
然而,在基于2D的視頻人臉替換的過程中,需要用泊松融合[3]將源人臉替換到目標(biāo)人臉上,由于每個(gè)人的臉型不同,使得泊松融合的掩膜邊界并不能同時(shí)經(jīng)過源人臉邊緣和目標(biāo)人臉邊緣,這種基于人臉邊緣輪廓的分割算法最終會導(dǎo)致融合邊緣出現(xiàn)滲色現(xiàn)象。為了達(dá)到視頻人臉替換效果自然,不發(fā)生滲色的現(xiàn)象,需要在人臉非邊緣處進(jìn)行分割,即在人臉內(nèi)部紋理平滑區(qū)域進(jìn)行分割。高巖等人[4]提出了一種約束條件下的五官替換算法,其通過在源五官和目標(biāo)五官間進(jìn)行插值,用戶根據(jù)經(jīng)驗(yàn)調(diào)節(jié)插值權(quán)重,以此控制泊松融合后人臉替換效果的好壞,但是該算法的處理對象只是單張圖片。Dale K等人[5]指出,視頻人臉替換后,替換效果會出現(xiàn)抖動(dòng)、滲色的問題。在無需3D人臉建模的視頻人臉替換領(lǐng)域,為了防止替換后出現(xiàn)抖動(dòng)的現(xiàn)象,需要考慮人臉非邊緣分割的時(shí)間連續(xù)性問題,即對連續(xù)幀人臉非邊緣分割輪廓建立相關(guān)性約束。目前,針對基于2D的視頻人臉替換過程中出現(xiàn)抖動(dòng)和滲色問題的研究還很鮮見,本文以此為切入點(diǎn),并結(jié)合前人在視頻域上進(jìn)行完整人臉分割和在單張圖片上進(jìn)行人臉替換的研究成果,針對基于2D的視頻人臉替換的特定需求,提出一種防抖動(dòng)和滲色的視頻人臉非邊緣分割算法。該算法旨在防止視頻人臉替換后出現(xiàn)抖動(dòng)和滲色等問題,使得視頻人臉替換效果自然逼真。
圖1為防抖動(dòng)與滲色的視頻人臉非邊緣分割的算法框圖。
圖1 算法框圖
人臉特征點(diǎn)定位是視頻人臉非邊緣分割的基礎(chǔ),人臉特征點(diǎn)的準(zhǔn)確定位確保了視頻人臉非邊緣分割的準(zhǔn)確性。主動(dòng)形狀模型(active shape model,ASM)[6]是表達(dá)人臉形狀和用于人臉特征點(diǎn)定位的經(jīng)典方法,具有較高的魯棒性,其是一種基于點(diǎn)分布模型(point distribution model,PDM)的算法。本文采用了包含眉毛、眼睛、鼻子、嘴巴在內(nèi)的68個(gè)人臉特征點(diǎn),圖2顯示了人臉特征點(diǎn)的位置。
圖2 ASM特征點(diǎn)定位
在視頻人臉替換過程中,由于源視頻與目標(biāo)視頻的人臉大小和角度不一,且人臉形狀是隨著時(shí)間的變化而變化的,其所對應(yīng)的人臉特征點(diǎn)位置坐標(biāo)也隨之改變,如,口型的改變會導(dǎo)致嘴巴上的ASM特征點(diǎn)位置坐標(biāo)也相應(yīng)地改變。
為了將源視頻人臉向目標(biāo)視頻人臉對齊,提出一種基于奇異值分解的普氏對齊算法[7]來計(jì)算源視頻人臉和目標(biāo)視頻人臉的對齊參數(shù)。首先,分別得到矩陣A=[a1,a2,…a68]T,B=[b1,b2…b68]T,其中A,B分別代表源人臉和目標(biāo)人臉的68個(gè)特征點(diǎn)所組成的矩陣。對矩陣ATB進(jìn)行奇異值分解(single value decomposition,SVD)[8],即
ATB=U∑VT
(1)
得到源人臉向目標(biāo)人臉對齊的旋轉(zhuǎn)矩陣R和縮放因子S,即
(2)
式中 tr(∑A),tr(∑B)分別為源人臉和目標(biāo)人臉特征點(diǎn)的協(xié)方差矩陣的跡。
根據(jù)對齊參數(shù),將源人臉向目標(biāo)人臉進(jìn)行對齊,即
(3)
式中μ1,μ2分別為源人臉和目標(biāo)人臉68個(gè)特征點(diǎn)的坐標(biāo)均值。
視頻人臉替換需要將源人臉五官替換到目標(biāo)人臉五官的對應(yīng)區(qū)域,因此需要讓源人臉和目標(biāo)人臉的大小和角度保持一致。但由于源人臉和目標(biāo)人臉的差異性,使得源人臉和目標(biāo)人臉的特征點(diǎn)并不能達(dá)到100 %對齊。為了防止人臉替換時(shí)融合邊緣出現(xiàn)滲色現(xiàn)象,本文設(shè)計(jì)了一種同時(shí)適應(yīng)于源人臉五官和目標(biāo)人臉五官的非邊緣分割方法,使得源人臉和目標(biāo)人臉五官同時(shí)包括在該非邊緣分割輪廓之內(nèi)。
(4)
(5)
對人臉外輪廓點(diǎn),用于人臉非邊緣分割的特征點(diǎn)為
(6)
對鼻子、下嘴唇、眉毛點(diǎn),用于人臉非邊緣分割的特征點(diǎn)為
(7)
依次得到最終的36個(gè)關(guān)鍵特征點(diǎn)。
圖3 用于人臉非邊緣分割的特征點(diǎn)
對36個(gè)關(guān)鍵特征點(diǎn)進(jìn)行線性插值[9],得到非最優(yōu)的人臉非邊緣分割輪廓,如圖4所示。
圖4 線性插值示意
在圖4中,黑點(diǎn)為人臉非邊緣分割的關(guān)鍵點(diǎn)。如,在左外眼角點(diǎn)27與臉輪廓點(diǎn)0連線上線性插值(經(jīng)驗(yàn)系數(shù)1/3)得到分割點(diǎn)70,左鼻梁點(diǎn)38與臉輪廓點(diǎn)1連線上線性插值(經(jīng)驗(yàn)系數(shù)1/3)得到分割點(diǎn)71,下嘴唇點(diǎn)57與人臉外輪廓點(diǎn)7連線上線性插值(經(jīng)驗(yàn)系數(shù)1/2)可得到分割點(diǎn)77,……依次連接這些插值點(diǎn),就得到非最優(yōu)的人臉非邊緣分割輪廓(紅色線條所示)。圖5給出了非最優(yōu)的人臉非邊緣分割效果。
圖5 非最優(yōu)的人臉非邊緣分割效果
由于連續(xù)幀人臉的運(yùn)動(dòng)可以看作小范圍運(yùn)動(dòng),因此,最優(yōu)的人臉非邊緣分割輪廓搜索區(qū)域的確定,防止了連續(xù)幀的人臉非邊緣分割輪廓出現(xiàn)大范圍的偏移。本文設(shè)計(jì)用連續(xù)三幀非最優(yōu)的人臉非邊緣分割輪廓來確定中間幀的最優(yōu)人臉非邊緣分割輪廓的搜索區(qū)域。具體步驟為:
1)得到連續(xù)三幀非最優(yōu)的人臉非邊緣分割輪廓的并集區(qū)域,如圖6(a)所示;2)得到連續(xù)三幀非最優(yōu)的人臉非邊緣分割輪廓的交集區(qū)域,如圖6(b)所示;3)讓并集區(qū)域減去交集區(qū)域,得到最終的差集區(qū)域。即最優(yōu)的人臉非邊緣分割輪廓的搜索區(qū)域,如圖6(c)所示。
圖6 最優(yōu)的人臉非邊緣分割的搜索區(qū)域
考慮到視頻人臉替換需要采用泊松融合算法將源人臉替換到目標(biāo)人臉上,并且為了讓視頻人臉替換后效果自然,視頻人臉替換效果不出現(xiàn)滲色和抖動(dòng)的現(xiàn)象,就要求泊松融合在融合邊緣的紋理平滑以及連續(xù)幀的人臉非邊緣分割輪廓具有時(shí)間連續(xù)性。因此,最優(yōu)的人臉非邊緣分割輪廓不僅要考慮該幀人臉非邊緣分割處的紋理平滑性,還要兼顧前后幀人臉非邊緣分割輪廓的時(shí)間連續(xù)性。
為得到最優(yōu)的人臉非邊緣分割輪廓,本文設(shè)計(jì)了兼顧兩者的能量函數(shù)[10]來對其進(jìn)行量化處理。設(shè) 為人臉非邊緣分割輪廓上的像素集合,能量函數(shù)為
E(I)=Esmo(I)+aEsuc(I)
(8)
式中E(I)為總能量值,Esmo(I)為幀內(nèi)能量項(xiàng),Esuc(I)為幀間能量項(xiàng),a為幀間能量項(xiàng)和幀內(nèi)能量項(xiàng)之間的平衡因子,決定各量對總能量值的影響大小。尋找最優(yōu)的人臉非邊緣分割輪廓就是優(yōu)化能量函數(shù),使其值達(dá)到最小。
5.2.1 幀內(nèi)能量項(xiàng)
幀內(nèi)能量項(xiàng)所刻畫的就是讓人臉非邊緣分割輪廓在人臉紋理平滑處進(jìn)行分割,保證泊松融合后融合邊緣不出現(xiàn)滲色現(xiàn)象。本文采用信息熵來表示人臉紋理的平滑程度。在信息論中,信息熵表示隨機(jī)變量的不確定性程度,隨機(jī)變量的不確定性越大,其所對應(yīng)的信息熵也就越大。
在最優(yōu)人臉非邊緣分割輪廓的搜索區(qū)域內(nèi),本文采集人臉非邊緣分割輪廓上所包含的每一個(gè)像素的4鄰域像素點(diǎn)(去除重復(fù)的像素點(diǎn)),然后建立該像素集合所對應(yīng)的像素直方圖。
設(shè)Ii是像素直方圖中灰度值為i,i∈{0,1,…,255}的像素,其概率分布為
P(I=Ii)=Pi
(9)
式中pi=∑Ii/∑I,∑Ii為像素直方圖中像素值為Ii的像素個(gè)數(shù),∑I為像素直方圖中像素個(gè)數(shù)的總和。
該像素集合的信息熵為
(10)
當(dāng)像素直方圖的信息熵越小,所對應(yīng)的幀內(nèi)能量值就越小,紋理就越平滑。
5.2.2 幀間能量值
幀間能量項(xiàng)所刻畫的是讓人臉非邊緣分割輪廓在前后幀上具有時(shí)間連續(xù)性,防止前后幀融合邊緣的灰度變化導(dǎo)致出現(xiàn)抖動(dòng)的現(xiàn)象。假設(shè)求第t幀的人臉非邊緣分割輪廓,則幀間能量項(xiàng)為
Esuc(I)=‖IS(t)-IS(t+1)‖+‖IT(t)-IT(t+1)‖+ ‖IS(t)-IS(t-1)‖+‖IT(t)-IT(t-1)‖
(11)
式中IS和IT分別表示源視頻人臉和目標(biāo)視頻人臉的非邊緣分割輪廓。一般來說,如果第t幀人臉非邊緣分割輪廓與前后幀人臉非邊緣分割輪廓越相似,其幀間能量值就越小。
由于全局能量最小化[12]是一個(gè)NP難問題,本文采用動(dòng)態(tài)規(guī)劃(dynamic programming)[13]方法讓能量趨于最小化,即讓人臉非邊緣分割輪廓趨于最優(yōu)。首先將初始的人臉非邊緣分割輪廓分成6段,分別計(jì)算每一段輪廓的幀內(nèi)能量值和幀間能量值,然后在最優(yōu)人臉非邊緣分割輪廓的搜索區(qū)域內(nèi),對每一段輪廓分別進(jìn)行膨脹和腐蝕[14]操作,再計(jì)算每一段膨脹輪廓和腐蝕輪廓的幀內(nèi)能量值和幀間能量值,保留總能量值最小所對應(yīng)的輪廓,即為最優(yōu)的人臉非邊緣分割輪廓。
在得到最優(yōu)的人臉非邊緣分割輪廓后,以該分割輪廓作為下一幀人臉非邊緣分割的初始分割輪廓,在下一幀最優(yōu)人臉非邊緣分割輪廓的搜索范圍內(nèi),建立相應(yīng)的能量函數(shù),通過動(dòng)態(tài)規(guī)劃算法依次得到后續(xù)幀最優(yōu)的人臉非邊緣分割輪廓。
系統(tǒng)環(huán)境采用的是Intel Core i3處理器,運(yùn)行內(nèi)存是8 GB,64位操作系統(tǒng),開發(fā)環(huán)境是Visual Studio 2010。為了驗(yàn)證本文算法的適用性,測試實(shí)驗(yàn)分別搜索了5個(gè)電影目標(biāo)視頻片段及其分別對應(yīng)的用大華HF5221E攝像頭拍攝、自然光照采集下的模仿電影人物口型的源視頻片段。
將本文算法與未考慮防抖動(dòng)和滲色的視頻人臉非邊緣分割方法作對比,并采用李克特測試法來對其效果進(jìn)行比較,16名被測試者被要求觀看未考慮防抖動(dòng)和滲色的人臉替換視頻和基于本文算法的人臉替換視頻,并在觀看結(jié)束后對視頻的效果進(jìn)行打分,分?jǐn)?shù)的設(shè)定按照李克特分值分為5個(gè)級別:非常同意抖動(dòng)和滲色;同意抖動(dòng)和滲色;不一定抖動(dòng)和滲色;不同意抖動(dòng)和滲色;非常不同意抖動(dòng)和滲色。實(shí)驗(yàn)效果對比如下:
實(shí)驗(yàn)1滲色現(xiàn)象(電視劇《來自星星的你》中警察詢問男主角視頻片段)滲色現(xiàn)象對比實(shí)驗(yàn)所得李克特分為:未考慮防抖動(dòng)和滲色的視頻人臉替換分值為4.22,本文算法分值為1.51。
數(shù)據(jù)可以看出,其結(jié)果和圖7所示結(jié)果相同:由于未考慮抖動(dòng)和滲色的視頻人臉替換算法僅僅根據(jù)經(jīng)驗(yàn)權(quán)值進(jìn)行插值,以此來自動(dòng)得到每一幀的人臉非邊緣分割輪廓,有時(shí)經(jīng)驗(yàn)權(quán)值并不適用于每一幀人臉,最終導(dǎo)致融合邊緣出現(xiàn)滲色的現(xiàn)象,如圖7(b)所示,背景顏色漫延到人物右腮處;而本文算法充分考慮了源人臉和目標(biāo)人臉的差異性導(dǎo)致的源人臉特征點(diǎn)和目標(biāo)人臉特征點(diǎn)不是100 %對齊的問題,以及融合邊緣的紋理平滑性,使得滲色現(xiàn)象得到有效減輕,如圖7(c)所示,融合邊緣未發(fā)生滲色現(xiàn)象。
圖7 滲色現(xiàn)象對比效果
實(shí)驗(yàn)2正臉且角度無偏轉(zhuǎn)(電視劇《來自星星的你》中的警察抓捕視頻片段)。實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 未考慮防抖動(dòng)和滲色與基于本文算法的視頻人臉替換(實(shí)驗(yàn)二)
實(shí)驗(yàn)3側(cè)臉且角度無偏轉(zhuǎn)(電影《泰坦尼克號》中的女主角視頻片段)。實(shí)驗(yàn)結(jié)果如圖9所示。
圖9 未考慮防抖動(dòng)和滲色與基于本文算法的視頻人臉替換(實(shí)驗(yàn)三)
抖動(dòng)現(xiàn)象對比實(shí)驗(yàn)所得李克特分值為:實(shí)驗(yàn)2中,未考慮防抖動(dòng)和滲色的視頻人臉替換打分4.13,本文算法為1.91;實(shí)驗(yàn)3中兩者打分分別為4.25和2.03。
由李克特測試分值可以看出:其結(jié)果和實(shí)驗(yàn)2、實(shí)驗(yàn)3的結(jié)果相同。由于未考慮防抖動(dòng)和滲色的人臉替換算法只是簡單地對單幀人臉進(jìn)行非邊緣分割,相鄰幀的人臉非邊緣分割輪廓沒有相關(guān)性。如,第29幀(圖8(c))替換人臉的融合邊緣出現(xiàn)滲色現(xiàn)象,第30幀(圖8(d))替換人臉未出現(xiàn)滲色現(xiàn)象;第23幀(圖9(c))替換人臉的左眼角融合邊緣出現(xiàn)輕微滲色現(xiàn)象,第24幀(圖9(d))替換人臉的左眼角融合邊緣滲色現(xiàn)象加重,根據(jù)人眼的視覺暫留特性[15],視頻連續(xù)播放時(shí),融合邊緣處會出現(xiàn)抖動(dòng)現(xiàn)象。而本文算法綜合考慮了幀間人臉非邊緣分割的時(shí)間連續(xù)性和幀內(nèi)人臉的紋理平滑性,使得本文算法連續(xù)幀人臉右腮處、連續(xù)幀人臉左眼角的分割輪廓未出現(xiàn)大范圍的偏移,最終有效改善了視頻人臉替換的效果。
設(shè)計(jì)了一種防抖動(dòng)和滲色的視頻人臉非邊緣分割方法。通過對人臉進(jìn)行ASM特征點(diǎn)準(zhǔn)確定位,使得后續(xù)人臉非邊緣分割更加準(zhǔn)確;有效改善了視頻人臉替換效果。由于本文只是對于視頻人臉在大小和角度不變的情況下,對視頻人臉替換出現(xiàn)的抖動(dòng)和滲色現(xiàn)象進(jìn)行了研究,對于復(fù)雜情況下的視頻人臉,例如鏡頭或者人物的遠(yuǎn)近變化造成的人臉大小變化,以及由于鏡頭和人物的角度偏轉(zhuǎn)造成人臉角度變化等,則需要結(jié)合人臉的變化軌跡,建立相應(yīng)的能量函數(shù)來作進(jìn)一步的研究。