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