孫 健, 檀結(jié)慶
(合肥工業(yè)大學(xué)數(shù)學(xué)學(xué)院,合肥 230601)
圖像風(fēng)格遷移問題的本質(zhì)是將一幅圖像的風(fēng)格信息逐步轉(zhuǎn)移到另一幅圖像上,同時(shí)維護(hù)原有圖像的框架內(nèi)容,圖像風(fēng)格遷移在修圖小程序中發(fā)揮了重要的作用和價(jià)值,這些小程序輕松將照片變成藝術(shù)風(fēng)格作品. 圖像風(fēng)格遷移將藝術(shù)作品中的紋理轉(zhuǎn)移到真實(shí)照片上,傳統(tǒng)的紋理轉(zhuǎn)移方法是給定一幅紋理圖像,對(duì)其中的像素重新采樣并將這些像素拷貝到待合成圖像上,參考文獻(xiàn)[1-2]提出參數(shù)優(yōu)化模型,該模型基于特征映射之間的相關(guān)性矩陣(Gram矩陣)構(gòu)建風(fēng)格損失函數(shù),通過優(yōu)化算法實(shí)現(xiàn)了高質(zhì)量的風(fēng)格遷移和紋理轉(zhuǎn)移.為了提升效率,參考文獻(xiàn)[3-5]訓(xùn)練前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)快速紋理合成,這些方法的缺陷缺乏通用且有效的框架結(jié)構(gòu),即每一種風(fēng)格都需要單獨(dú)訓(xùn)練神經(jīng)網(wǎng)絡(luò),為了克服這個(gè)缺陷,參考文獻(xiàn)[6-8]提出將預(yù)先設(shè)定好的若干種風(fēng)格樣式在一個(gè)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,但這些方法僅僅能夠讓模型生成固定數(shù)量的預(yù)定義風(fēng)格的藝術(shù)圖像.為了克服上述問題,參考文獻(xiàn)[9]使用一個(gè)圖像重建的框架,首先,將圖像輸入編碼器得到中間特征,其次,對(duì)該特征進(jìn)行數(shù)學(xué)的線性變換,最后, 將變換后的特征重建到圖像空間上,該方法能夠在保證效率的前提下實(shí)現(xiàn)任意形式的風(fēng)格轉(zhuǎn)移,其局限是變換后的特征與藝術(shù)作品本身的風(fēng)格特征之間的某些統(tǒng)計(jì)量的相似度要求過低,參考文獻(xiàn)[10]利用特征變換實(shí)現(xiàn)快速的任意風(fēng)格遷移,該方法使得變換后的特征和風(fēng)格圖像呈現(xiàn)相同的Gram矩陣,風(fēng)格遷移算法高效并且具有泛化性,但是合成結(jié)果的質(zhì)量依舊較差.
本文在優(yōu)化模型的基礎(chǔ)上做出改進(jìn),使得合成結(jié)果具有更好的內(nèi)容結(jié)構(gòu)和局部細(xì)節(jié)保留,該方法的模型對(duì)于任意種類的風(fēng)格都是有效的.
本文方法的主要思想呈現(xiàn)出一種數(shù)學(xué)優(yōu)化的過程:將一幅待合成的圖像進(jìn)行優(yōu)化迭代以逐漸接近原始風(fēng)格圖像的紋理色彩,但若不加以約束則可能出現(xiàn)合成紋理混亂的情況,因此,該優(yōu)化的過程需要加以約束,將待合成圖像,內(nèi)容圖像和風(fēng)格圖像作為優(yōu)化模型的輸入依次得到其內(nèi)容特征和風(fēng)格表示的數(shù)學(xué)定義,構(gòu)建基于內(nèi)容特征差異的內(nèi)容損失函數(shù)和和基于風(fēng)格表示差異的風(fēng)格損失函數(shù),同時(shí)加入內(nèi)容圖像和輸入圖像的結(jié)構(gòu)損失函數(shù),總的風(fēng)格遷移損失函數(shù)是三者的線性組合,利用優(yōu)化算法對(duì)目標(biāo)損失函數(shù)進(jìn)行優(yōu)化迭代,最小化目標(biāo)損失函數(shù),取得合成結(jié)果,模型如圖1所示.
圖1 風(fēng)格遷移模型
把待合成的目標(biāo)圖像輸入神經(jīng)網(wǎng)絡(luò),將內(nèi)容圖像作為該優(yōu)化迭代問題的初始值是一個(gè)較好的選擇,假設(shè)有Cl個(gè)卷積核在網(wǎng)絡(luò)的第l層準(zhǔn)備就緒,每個(gè)核與輸入數(shù)據(jù)作用后產(chǎn)生的特征映射的尺寸被度量為Hl×Wl,則第l層全部特征響應(yīng)尺寸度量為Ml∈Cl×Hl×Wl,設(shè)Fl表示圖像在網(wǎng)絡(luò)第l層的特征映射的激活函數(shù),則在第l層的語義損失函數(shù)表示為
第l層的藝術(shù)損失函數(shù)可表示為
其中w表示每層的對(duì)應(yīng)的權(quán)重,α和β分別對(duì)應(yīng)內(nèi)容損失和風(fēng)格損失的比例,它們控制著整個(gè)風(fēng)格遷移效果的整體走向,前者的值越大,結(jié)果更加真實(shí),后者值越大則結(jié)果更加抽象,綜合實(shí)驗(yàn)結(jié)果,內(nèi)容與風(fēng)格權(quán)重比為1∶100的效果最佳,文中展示結(jié)果均基于此權(quán)重.
結(jié)構(gòu)相似性(Structural Similarity)是對(duì)于圖像相似程度的度量.它將結(jié)構(gòu)信息定義為三個(gè)屬性的融合,將圖像的失真建模為三個(gè)不同因素的組合,每一個(gè)因素在衡量圖像相似程度上發(fā)揮著不同角度的作用.其中圖像亮度比較的部分可以用下面式子衡量:
同理,圖像對(duì)比度比較部分表示如下:
圖像結(jié)構(gòu)比較部分表示如下:
其中
這里μx,μy,σx,σy,σxy分別對(duì)應(yīng)為圖像的均值、方差和它們的協(xié)方差,c1,c2,c3為常數(shù).因?yàn)閳D像結(jié)構(gòu)比較部分可以作為兩幅圖像之間結(jié)構(gòu)相似程度的度量,正好可以利用這一點(diǎn)作為內(nèi)容提升的核心動(dòng)力之一,所以該項(xiàng)可以用于構(gòu)建本文的結(jié)構(gòu)損失函數(shù),而亮度和對(duì)比度對(duì)于風(fēng)格遷移并無直接作用,因?yàn)樯适窃陲L(fēng)格損失函數(shù)中進(jìn)行轉(zhuǎn)換的,所以這兩者不予進(jìn)行利用.
在內(nèi)容損失函數(shù)的構(gòu)造上加入了輸入圖像與內(nèi)容圖像之間的結(jié)構(gòu)損失函數(shù),在優(yōu)化的過程中保持輸出結(jié)果在結(jié)構(gòu)上與內(nèi)容圖像更加一致.并且設(shè)定迭代的初始化輸入為白化后的圖像,而不是隨機(jī)的高斯噪聲,這樣做的目的是為了減少優(yōu)化迭代的次數(shù)從而實(shí)現(xiàn)效率上的提升,改進(jìn)的風(fēng)格遷移的內(nèi)容損失函數(shù)用(1)來表示:
(1)
其中,前面一項(xiàng)仍然為之前的內(nèi)容損失函數(shù),后面一項(xiàng)為
這里s(x,c)的取值范圍從0到1.
將參考文獻(xiàn)[11]中的一些數(shù)據(jù)作為待合成圖像的結(jié)構(gòu)框架來源,將參考文獻(xiàn)[12]的繪畫數(shù)據(jù)集作為藝術(shù)信息的遷移源泉.在訓(xùn)練過程中,利用卷積神經(jīng)網(wǎng)絡(luò)中能夠反映圖像語義特征的層級(jí)中的數(shù)據(jù)計(jì)算內(nèi)容損失函數(shù),利用網(wǎng)絡(luò)中的中間多層計(jì)算風(fēng)格損失函數(shù),通過優(yōu)化算法來優(yōu)化損失函數(shù),所有圖像大小均為512*512.實(shí)驗(yàn)設(shè)備是配備WINDOWS10系統(tǒng)的一體機(jī),CPU 為Intel I7 8700K 3.20GHz,RAM為16G.
3.2.1 實(shí)驗(yàn)結(jié)果展示
本文的算法遷移效果如圖2所示,第一行是內(nèi)容圖像,第二行是風(fēng)格圖像,最后一行是遷移效果圖,很明顯,本文算法產(chǎn)生的結(jié)果能夠?qū)L(fēng)格細(xì)化并且內(nèi)容清晰完整.與此同時(shí)將本文算法的算法[2,3,10]進(jìn)行對(duì)比,風(fēng)格遷移效果如圖3所示.
圖2 圖像風(fēng)格遷移效果
圖3第三行是參考文獻(xiàn)[2]的實(shí)驗(yàn)結(jié)果,存在一些意料之外的紋理,并且這些意料之外的紋理微小密集,它們大量地依附于圖像上.第四行是參考文獻(xiàn)[3]的實(shí)驗(yàn)結(jié)果,其中部分結(jié)果細(xì)節(jié)信息較為模糊.第五行是參考文獻(xiàn)[10]的實(shí)驗(yàn)結(jié)果,雖然整體效果比較抽象,但并沒有好的視覺體驗(yàn).最后一行為本文算法的遷移結(jié)果,可以看出,風(fēng)格化圖像的色彩相較于其他算法更加出眾,紋理結(jié)構(gòu)細(xì)密但是完全可以看出出處,內(nèi)容語義信息保留程度達(dá)到了很高的程度.因此,從視覺效果上本文的方法更勝一籌.
圖3 不同方法產(chǎn)生的結(jié)果
為了判斷結(jié)構(gòu)損失函數(shù)對(duì)圖像風(fēng)格遷移是否產(chǎn)生視覺價(jià)值,額外進(jìn)行如下對(duì)比實(shí)驗(yàn),如圖4所示,第二行左側(cè)圖像表示將結(jié)構(gòu)損失函數(shù)從內(nèi)容損失函數(shù)中剔除并且其他任何條件保持不變后風(fēng)格遷移的結(jié)果,第二行右側(cè)圖像表示將結(jié)構(gòu)損失函數(shù)加入內(nèi)容損失函數(shù)后,風(fēng)格遷移得到的結(jié)果,可以發(fā)現(xiàn),后者比前者保留了更多圖像的細(xì)節(jié),如更加細(xì)致的窗框和更加尖銳的塔頂和房屋結(jié)構(gòu).
3.2.2 客觀數(shù)據(jù)分析
本文從峰值信噪比、內(nèi)容損失、風(fēng)格損失對(duì)參考文獻(xiàn)[2,3,10]的風(fēng)格遷移結(jié)果和本文方法的結(jié)果進(jìn)行比較.峰值信噪比從客觀上衡量著圖像風(fēng)格遷移質(zhì)量的好壞;內(nèi)容損失表示圖像風(fēng)格遷移內(nèi)容保存是否完好,內(nèi)容結(jié)構(gòu)是否鮮明,它由生成結(jié)果與原始內(nèi)容圖像在卷積網(wǎng)絡(luò)中特定層的特征映射的均方誤差決定;風(fēng)格損失由生成結(jié)果與原始風(fēng)格圖像在卷積網(wǎng)絡(luò)中的特征映射的Gram矩陣決定,它表示藝術(shù)圖像的風(fēng)格是否被很好保存到了生成的結(jié)果上,客觀數(shù)據(jù)對(duì)比見表1.
表1 客觀數(shù)據(jù)分析
由表1可知,本文方法在峰值信噪比、內(nèi)容損失、風(fēng)格損失三方面都有較好的表現(xiàn),說明本文算法生成的風(fēng)格化圖像從質(zhì)量的角度出發(fā)具有出色的表現(xiàn),風(fēng)格化圖像遷移了更多的紋理信息.
注 代碼見https:∥note.youdao.com/s/WEfVeg2s
本文將參數(shù)優(yōu)化算法做出改進(jìn),通過將輸入圖像與內(nèi)容圖像的結(jié)構(gòu)損失加入到風(fēng)格遷移模型中,在優(yōu)化的過程中進(jìn)一步約束內(nèi)容框架,使得生成的結(jié)果更好地保留了內(nèi)容圖像的形狀和輪廓.本文方法克服了生成結(jié)果質(zhì)量較差的問題.客觀數(shù)據(jù)表明,本文算法能更好地實(shí)現(xiàn)風(fēng)格遷移任務(wù).
致謝作者非常感謝相關(guān)文獻(xiàn)對(duì)本文的啟發(fā)以及審稿專家提出的寶貴意見.