郭美欽,江健民
深圳大學(xué)計(jì)算機(jī)與軟件學(xué)院,廣東深圳 518060
人臉圖像風(fēng)格遷移是指將給定圖像的風(fēng)格采用計(jì)算機(jī)手段遷移到任一輸入圖像,使輸入圖像換成與給定圖像完全相同的風(fēng)格,而原圖像內(nèi)容保持不變.目前,主流的圖像風(fēng)格遷移算法都是針對(duì)通用圖像,通過(guò)全局或局部地轉(zhuǎn)換圖像的統(tǒng)計(jì)信息,來(lái)實(shí)現(xiàn)風(fēng)格轉(zhuǎn)換[1-4].由于人臉各部位的統(tǒng)計(jì)信息不一致,這些針對(duì)通用圖像的算法通常得不到正確的風(fēng)格轉(zhuǎn)換.
一些人臉圖像風(fēng)格遷移算法試圖通過(guò)對(duì)風(fēng)格圖像進(jìn)行適當(dāng)?shù)淖冃?,?lái)對(duì)齊輸入圖像,減小相對(duì)位置的統(tǒng)計(jì)差異.FIER等[5]基于圖像類比策略,通過(guò)添加位置引導(dǎo)和語(yǔ)義分割引導(dǎo),來(lái)減小人臉風(fēng)格遷移中人臉圖像的空間差異,但該算法針對(duì)的是繪畫風(fēng)格遷移,對(duì)真實(shí)照片不能保持輸入圖像的高清細(xì)節(jié).GATYS等[6]發(fā)現(xiàn)紋理能夠大致描述一幅圖像的風(fēng)格,提出利用圖像在卷積神經(jīng)網(wǎng)絡(luò)中的格拉姆矩陣來(lái)表征紋理,并在已完成訓(xùn)練的[7]VGG(Oxford Visual Geometry Group)網(wǎng)絡(luò)[8]的基礎(chǔ)上建立紋理模型[9].SELIM等[10]基于GATYS等[3]提出的算法,通過(guò)檢測(cè)人臉的特征點(diǎn)[11]并借助相應(yīng)的變形工具[12-13]來(lái)對(duì)齊風(fēng)格圖像,同時(shí)通過(guò)改寫輸入圖像在卷積神經(jīng)網(wǎng)絡(luò)中的特征圖,來(lái)縮小風(fēng)格圖像與輸入圖像特征圖之間的差異.但這種算法僅針對(duì)繪畫風(fēng)格遷移.SHIH等[14]提出一種采用多尺度局部統(tǒng)計(jì)轉(zhuǎn)換的技術(shù)來(lái)實(shí)現(xiàn)人臉真實(shí)照片間的風(fēng)格遷移算法(以下簡(jiǎn)稱SHIH算法),運(yùn)用了與SELIM等類似的人臉對(duì)齊技術(shù)來(lái)對(duì)齊輸入圖像與風(fēng)格圖像.該算法針對(duì)輸入圖像與風(fēng)格圖像對(duì)應(yīng)的語(yǔ)義分割內(nèi)容在空間差異較大的情況時(shí),往往難以得到理想的轉(zhuǎn)換結(jié)果.LUAN等[15]基于文獻(xiàn)[3]提出了DPST(deep photo style transfer)算法.該算法對(duì)圖像的各個(gè)語(yǔ)義分割內(nèi)容[16]分別進(jìn)行風(fēng)格轉(zhuǎn)換,解決了基于完整圖像的風(fēng)格遷移所帶來(lái)的“風(fēng)格溢出”問(wèn)題[3],同時(shí)通過(guò)添加一個(gè)與摳圖算法相關(guān)的拉普拉斯矩陣的正則化項(xiàng)[17],引導(dǎo)生成具有照片般真實(shí)的風(fēng)格遷移效果,既能精確轉(zhuǎn)換風(fēng)格,又能保持輸入圖像的高清細(xì)節(jié).但是,該算法在人臉圖像的風(fēng)格遷移任務(wù)中,對(duì)輸入圖像和風(fēng)格圖像之間的語(yǔ)義內(nèi)容存在空間位置上的差異時(shí),如因人臉姿態(tài)、拍攝角度所引起的空間差異,魯棒性不佳.而且,此算法在采用SELIM等提出的對(duì)齊策略時(shí),由于對(duì)齊時(shí)對(duì)風(fēng)格圖像有較大拉伸,影響風(fēng)格圖像的清晰度,從而影響合成圖像的清晰度.
本研究提出基于語(yǔ)義分割的對(duì)齊方案,對(duì)每個(gè)語(yǔ)義分割內(nèi)容進(jìn)行適當(dāng)?shù)乜臻g變換,同時(shí)盡量保持圖像的高清細(xì)節(jié).通過(guò)最大化卷積神經(jīng)網(wǎng)絡(luò)中的特征圖通道間的互相關(guān),對(duì)風(fēng)格圖像進(jìn)行適當(dāng)?shù)姆律渥儞Q,以期達(dá)到減輕矛盾的目的.實(shí)驗(yàn)結(jié)果表明,本研究提出的改進(jìn)算法,即使在輸入圖像和風(fēng)格圖像對(duì)應(yīng)的語(yǔ)義內(nèi)容在空間上存在較大差異的情況下,仍能取得較好的風(fēng)格遷移效果,使得人臉圖像的風(fēng)格遷移有了更好的空間不變性與魯棒性.
DPST算法主要有如下步驟.
為了將風(fēng)格圖像xs的風(fēng)格遷移到輸入圖像xi, 同時(shí)獲取不產(chǎn)生“風(fēng)格溢出”的合成圖像x, 需最小化如下?lián)p失函數(shù)[3]:
(1)
(2)
(3)
C為輸入圖像的語(yǔ)義分割通道數(shù),c為分割序號(hào); 格拉姆矩陣Gl,c[·]是語(yǔ)義分割后的特征圖矩陣與其轉(zhuǎn)置矩陣之間的內(nèi)積,即
Gl,c[·]=Fl,c[·] ·Fl,c[·]T∈RNl×Nl
(4)
Fl,c[x]=Fl[x]·Ml,c[xi]
(5)
Fl,c[xs]=Fl[xs] ·Ml,c[xs]
(6)
這里,Ml,c[·]為第l層的特征圖的第c個(gè)語(yǔ)義分割.
在式(1)的基礎(chǔ)上添加一個(gè)正則化項(xiàng),使輸出圖像具有攝像機(jī)拍攝的效果.由于該正則化項(xiàng)會(huì)影響風(fēng)格遷移,因此將式(1)已生成風(fēng)格遷移的圖像作為初始值,而非直接最小化.此過(guò)程中的損失函數(shù)可寫為
(7)
其中,式(7)中的前兩項(xiàng)與式(1)完全一樣;λ為該正則化項(xiàng)在這3項(xiàng)中的權(quán)重;第3項(xiàng)中Lm為添加的正則化項(xiàng)
(8)
這里,c為RGB三個(gè)通道中的某一個(gè);Vc[x]∈RN×l,表示合成的輸出圖像第c通道向量化的結(jié)果;Mxi為基于輸入圖像xi的拉普拉斯矩陣[17].
JADERBERG等[18]提出一種可用于網(wǎng)絡(luò)中反向傳播的仿射變換方法,包括網(wǎng)格生成以及可微采樣2個(gè)步驟.該方法通過(guò)目標(biāo)圖像大小以及仿射變換矩陣來(lái)反向推導(dǎo)網(wǎng)格點(diǎn)在原圖像中的位置,即原圖像的采樣點(diǎn).反向推導(dǎo)公式為
(9)
為保證采樣方式是可求導(dǎo)的,采用雙線性插值對(duì)式(9)中生成的采樣點(diǎn)進(jìn)行原圖像采樣,則目標(biāo)圖像第j個(gè)像素值為
(10)
其中,W和H為原圖像的寬與高;Snm為原圖像坐標(biāo)為(m,n)的像素值;wx和wy為原圖像坐標(biāo)為(m,n)的像素值在水平和豎直方向上的權(quán)重
(11)
本研究把從原圖像S到目標(biāo)圖像T關(guān)于參數(shù)矩陣θ的仿射變換記為
T=f(θ,S)
(12)
DPST 算法不具備空間不變性,即當(dāng)輸入圖像和風(fēng)格圖像各部分語(yǔ)義內(nèi)容在空間位置存在較大的差異時(shí),風(fēng)格遷移的結(jié)果可能不理想,造成風(fēng)格改變后的輸出圖像內(nèi)容失真.為此,本研究利用適當(dāng)?shù)姆律渥儞Q來(lái)減小輸入圖像和風(fēng)格圖像空間位置上的差異,并用網(wǎng)絡(luò)各層特征圖矩陣的互相關(guān),表征輸入圖像與風(fēng)格圖像各部分語(yǔ)義內(nèi)容在空間位置上的相似程度,再通過(guò)最大化該互相關(guān)進(jìn)行相應(yīng)地仿射變換.
通過(guò)優(yōu)化式(13)可獲取各部分語(yǔ)義分割的仿射變換矩陣θ.
(13)
其中,c為C個(gè)語(yǔ)義分割中的分割序號(hào);Mc[·]為相對(duì)于該語(yǔ)義分割,其值為0或1的標(biāo)注矩陣;h(·)為提取某一圖像對(duì)應(yīng)的Mc[·]中值為1的區(qū)域;f(·)為式(12)提到的仿射變換;xs和xi分別為風(fēng)格圖像和輸入圖像.這里利用與文獻(xiàn)[15]相同的網(wǎng)絡(luò),l為卷積層序號(hào);Fl[·]∈RNl×Dl, 是由各濾波器輸出的向量化特征圖組成的矩陣;ηl為第l層權(quán)重.
本研究算法結(jié)構(gòu)如圖 1.由圖1可見,所求的θ可通過(guò)引入梯度-?Lst/?θ來(lái)優(yōu)化更新.本研究算法的網(wǎng)絡(luò)主要包括網(wǎng)絡(luò)A(Net-A)和網(wǎng)絡(luò)B(Net-B)兩個(gè)部分.其中,網(wǎng)絡(luò)A是基于文獻(xiàn)[18]構(gòu)建的仿射變換網(wǎng)絡(luò),該網(wǎng)絡(luò)的輸入為風(fēng)格圖像的某一語(yǔ)義分割內(nèi)容,輸出為關(guān)于當(dāng)前語(yǔ)義對(duì)應(yīng)的仿射變換矩陣θ的仿射變換結(jié)果.在實(shí)現(xiàn)時(shí),我們將θ作為Net-A中的一個(gè)網(wǎng)絡(luò)層的權(quán)重來(lái)優(yōu)化.對(duì)于完整的仿射變換,θ被初始化為((1, 0, 0), (0, 1, 0)),以確保在首次迭代時(shí)Net-A不對(duì)輸入進(jìn)行空間變換.網(wǎng)絡(luò)B是修改后的VGG-19網(wǎng)絡(luò),本研究根據(jù)參數(shù)ηl在VGG-19網(wǎng)絡(luò)的相應(yīng)位置插入式(13)對(duì)應(yīng)的網(wǎng)絡(luò)層,同時(shí)刪除深層網(wǎng)絡(luò)中未參與計(jì)算的網(wǎng)絡(luò)層,以期通過(guò)精簡(jiǎn)網(wǎng)絡(luò)來(lái)減少運(yùn)算量.Net-B作為鑒別器,它主要用于提取特征,計(jì)算風(fēng)格圖像與風(fēng)格圖像的語(yǔ)義特征互相關(guān),即計(jì)算Lst. 因此,Net-B在迭代過(guò)程中不更新權(quán)重.同時(shí),Net-B在反向傳播時(shí)將梯度傳遞給Net-A.Net-A根據(jù)Net-B傳遞的梯度計(jì)算出?Lst/?θ,然后采用自適應(yīng)矩估計(jì)(adaptive moment estimation, ADAM)算法[19]對(duì)θ進(jìn)行迭代更新,并最終得到當(dāng)前語(yǔ)義分割對(duì)應(yīng)的最優(yōu)仿射變換參數(shù)θc.
圖1 空間變換算法示意Fig.1 Spatial transformation algorithm
用上述生成的C個(gè)仿射變換參數(shù)矩陣對(duì)風(fēng)格圖像進(jìn)行C次仿射變換,得到一簇風(fēng)格圖片,同時(shí)也對(duì)相應(yīng)的遮擋矩陣進(jìn)行仿射變換,即
(14)
(15)
(16)
(17)
因此, 式(1)和式(7)中的風(fēng)格損失可被改寫為
(18)
至此, 可按照第1章的方法來(lái)完成風(fēng)格遷移.
本實(shí)驗(yàn)在英偉達(dá)Tesla K80顯卡上完成.首先,按照文獻(xiàn)[15]的方式,對(duì)輸入圖像和風(fēng)格圖像進(jìn)行語(yǔ)義分割;然后,求得每個(gè)語(yǔ)義分割對(duì)應(yīng)的仿射變換矩陣,并根據(jù)這些仿射變換矩陣對(duì)風(fēng)格圖像進(jìn)行多次變換,得到一簇風(fēng)格圖像;最后,按照DPST 算法中的步驟進(jìn)行風(fēng)格遷移. DPST 算法在計(jì)算某一語(yǔ)義分割的特征圖的格拉矩陣時(shí),始終用同一張風(fēng)格圖像作為網(wǎng)絡(luò)輸入,并在網(wǎng)絡(luò)各層提取該風(fēng)格圖像對(duì)應(yīng)的語(yǔ)義分割內(nèi)容來(lái)進(jìn)行計(jì)算.而本研究算法在計(jì)算某一語(yǔ)義分割的特征圖時(shí),用該語(yǔ)義分割對(duì)應(yīng)的變換后的風(fēng)格圖像作為網(wǎng)絡(luò)輸入,并在網(wǎng)絡(luò)各層提取該語(yǔ)義分割的內(nèi)容進(jìn)行計(jì)算.
在采用ADAM算法更新仿射變換參數(shù)時(shí),本研究設(shè)學(xué)習(xí)率為0.01,其他參數(shù)使用ADAM算法推薦的默認(rèn)值.在式(13)中,ηl的取值與文獻(xiàn)[15]中βl一致,即網(wǎng)絡(luò)層conv1_1、 conv2_1、 conv3_1、 conv4_1和conv5_1的取值都為1×103,其他層的取值為0.實(shí)驗(yàn)發(fā)現(xiàn),如果直接按照此方法設(shè)置ηl, 由于各層相互影響,結(jié)果容易達(dá)到某個(gè)局部最優(yōu),從而得不到正確的空間變換.適當(dāng)減少計(jì)算互相關(guān)的層數(shù)有助于跳出可能的局部最優(yōu).若將ηl在網(wǎng)絡(luò)層conv1_1、 conv3_1和conv5_1的值設(shè)為1×103,其余層取值設(shè)為0,則基本能得到較好的仿射變換參數(shù).因此,在前500次迭代時(shí)將ηl在網(wǎng)絡(luò)層conv1_1、 conv3_1和conv5_1的值都設(shè)為1×103,其余層取值設(shè)為0.然后,在接下來(lái)的100次迭代中,將ηl在網(wǎng)絡(luò)層conv1_1、 conv2_1、 conv3_1、 conv4_1和conv5_1的取值都設(shè)為1×103,其余層取值設(shè)為0.
本研究選取了一些空間差異較大的輸入圖像和風(fēng)格圖像,將本算法與DPST算法和SHIH等提出的算法進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如圖2.其中,圖2中的(a)列是輸入圖像;(b)列是風(fēng)格圖像;(c)列是DPST 算法的結(jié)果;(d)列是SHIH算法結(jié)果;
圖2 DPST算法、SHIH算法與本研究算法的實(shí)驗(yàn)結(jié)果對(duì)比Fig.2 Comparative illustration of experimental results
(e)列是本研究算法在仿射變換過(guò)程中,用完整的仿射變換對(duì)風(fēng)格圖像進(jìn)行變換得到的實(shí)驗(yàn)結(jié)果.從該列實(shí)驗(yàn)結(jié)果來(lái)看,雖然相對(duì)DPST算法的結(jié)果有了一些改善,但有些圖像仍然丟失了局部的細(xì)節(jié);(f)列是本研究算法用仿射變換中的部分變換,即旋轉(zhuǎn)、縮放和平移(rotate translation and scale, RTS)的實(shí)驗(yàn)結(jié)果.
由圖2可見,采用僅有旋轉(zhuǎn)、縮放和平移的仿射變換比用完整的仿射變換具有更穩(wěn)定的結(jié)果.例如,第(4)行(e)列采用完整的仿射變換的合成圖像中,臉上有明顯的條紋,第(5)行(e)列的合成圖像中右眼則完全失真.由圖2還可見,對(duì)風(fēng)格圖像的拉伸會(huì)導(dǎo)致風(fēng)格圖像的失真,有時(shí)甚至?xí)?duì)實(shí)驗(yàn)結(jié)果產(chǎn)生較大影響.因此,本研究將采用仿射變換中的部分變換,即僅有旋轉(zhuǎn)、縮放和平移的仿射變換的結(jié)果作為最終結(jié)果.
圖2中第(1)行的輸入圖像和風(fēng)格圖像是DPST算法和文獻(xiàn)[14]都采用的人臉實(shí)例圖.實(shí)驗(yàn)結(jié)果發(fā)現(xiàn),所有算法的遷移效果都良好.但是,當(dāng)把風(fēng)格圖像旋轉(zhuǎn)15°后,如第(2)行所示,DPST算法的合成圖像中嘴唇部分嚴(yán)重失真,而SHIH等以及本研究算法仍能產(chǎn)生清晰的合成圖像.從圖2中第(3)到第(6)行的結(jié)果來(lái)看,DPST算法在輸入圖像和風(fēng)格圖像各部分語(yǔ)義分割內(nèi)容的空間差異較大時(shí),會(huì)產(chǎn)生非常模糊的合成圖像.在第(3)行中,輸入圖像與風(fēng)格圖像各語(yǔ)義分割內(nèi)容在空間上看上去比較接近,因此DPST算法的合成圖像失真相對(duì)較小,僅嘴唇部分有輕微模糊.第(4)到第(6)行的圖像中,由于輸入圖像和風(fēng)格圖像各語(yǔ)義分割內(nèi)容空間上差異較大,DPST算法的合成圖像中嘴唇部分非常模糊,幾乎丟了所有細(xì)節(jié).此外,有些結(jié)果眼睛部分也有不同程度的失真,如第(4)行右眼輕微失真,第(5)行和第(6)行的左眼部分幾乎完全喪失了局部細(xì)節(jié)等.而SHIH等提出的算法在第(3)到第(6)行的風(fēng)格轉(zhuǎn)換任務(wù)中,產(chǎn)生了不完全風(fēng)格化的結(jié)果,比如第(5)和第(6)行的整體顏色沒有得到轉(zhuǎn)換.另外,第(4)和第(6)行的結(jié)果可明顯看到人臉對(duì)齊時(shí)帶來(lái)的額外噪聲.相比之下,本研究的算法結(jié)果比DPST算法的結(jié)果要好很多.但是,通過(guò)觀察和分析本算法所取得的合成圖像,發(fā)現(xiàn)該算法有時(shí)也會(huì)帶來(lái)一些負(fù)面效果.例如,第(6)行(f)列和(e)列的圖像都出現(xiàn)了局部著色偏重的情況,這是由于空間變形引起了局部統(tǒng)計(jì)分布變化所導(dǎo)致的.另外,由于卷積操作,基于語(yǔ)義分割的風(fēng)格遷移方法仍然會(huì)存在輕微的“風(fēng)格溢出”現(xiàn)象,而基于語(yǔ)義分割的空間變換可能會(huì)導(dǎo)致各語(yǔ)義內(nèi)容存在空間上的重疊,導(dǎo)致上述現(xiàn)象.
本研究提出一種對(duì)空間差異魯棒的人臉圖像風(fēng)格遷移算法.通過(guò)相應(yīng)的仿射變換,自適應(yīng)地為輸入圖像的各部分語(yǔ)義分割的內(nèi)容匹配對(duì)應(yīng)的風(fēng)格圖像中的語(yǔ)義分割內(nèi)容,將空間變換后的一簇風(fēng)格圖像作為風(fēng)格參考進(jìn)行風(fēng)格遷移,來(lái)解決這兩者的空間位置差異導(dǎo)致合成圖像失真的問(wèn)題.實(shí)驗(yàn)結(jié)果表明,本研究算法在風(fēng)格圖像與輸入圖像在各部分語(yǔ)義分割內(nèi)容的空間位置存在較大差異時(shí),仍能產(chǎn)生令人滿意的效果.該算法與DPST算法和SHIH等提出的算法相比,空間不變性更好,魯棒性更強(qiáng),從而使人臉圖像風(fēng)格遷移的應(yīng)用場(chǎng)景更寬廣.本研究對(duì)于仿射變換參數(shù)的獲取是基于網(wǎng)絡(luò)迭代的方式,在更新仿射變換參數(shù)時(shí)會(huì)帶來(lái)不可忽略的時(shí)間代價(jià),這也是未來(lái)需要解決的問(wèn)題之一.