楊正昊,董建設,方婷紅,王志凌
(天津職業(yè)技術師范大學信息技術與工程學院,天津300222)
在圖像處理領域,融合風格創(chuàng)造新的圖像是近20年來興起的一個新的研究熱點。風格遷移任務的目標是將一張圖像A的某種特征,如紋理、線條、顏色等遷移到另外一張圖像B上,生成一張新圖像C,圖像C同時具有圖像A的風格特征和圖像B的語義內容。因此,風格遷移任務也被認為是圖像紋理或顏色的遷移,即在原圖像上模仿并合成特定的紋理。風格遷移的研究發(fā)展經(jīng)歷了2個階段,傳統(tǒng)方法采取手工建模的方式獲取圖像的紋理特征,效果不佳。基于深度學習的方法則采用神經(jīng)網(wǎng)絡來自動獲取圖像紋理特征,遷移的效率與質量有較大提高,風格遷移研究也重新被人們所重視。在藝術繪畫、時裝設計、計算機視覺等領域,風格遷移能協(xié)助藝術家更好地創(chuàng)造出特定風格的藝術作品。在影視、動漫、游戲制作中也可以更容易地生成目標內容,從而降低制作成本,節(jié)省制作時間?;陲L格遷移的創(chuàng)作在當前各社交網(wǎng)站上也深受歡迎。為了提高遷移速度與質量,本文提出了一種基于實例規(guī)范化的風格遷移方法,極大縮短了風格遷移所需的迭代次數(shù),遷移的質量也有所改善。
傳統(tǒng)風格遷移方法最早可追溯到21世紀初人們對自然圖像生成紋理的方法研究[1-2],研究人員采用手工建模的方法生成特定的紋理。Portilla等[3]發(fā)現(xiàn)圖像局部特征的統(tǒng)計模型可以在一定程度上描述圖像的紋理,并且成功地通過數(shù)學建模生成了一些紋理。Freeman等[4]在手工提取局部紋理后,通過無限重復提取紋理實現(xiàn)了紋理遷移,但是該方法生成的紋理非常生硬,實用性不強。雖然手工建模耗時耗力,不同的紋理往往需要建立不同的手工模型,模型間的遷移性也不強,但是還是為紋理生成提供了新的思路。受限于當時計算機硬件的發(fā)展水平,往后數(shù)十年圖像風格遷移的研究進展較為緩慢。
自從Geoffrey Hinton提出淺層神經(jīng)網(wǎng)絡[5-6],深度學習方法呈井噴式發(fā)展,并在各個領域廣泛使用,風格遷移領域也不例外。與傳統(tǒng)手工提取圖像紋理特征方法不同,卷積神經(jīng)網(wǎng)絡[7-9]可以自主地按照最優(yōu)方式提取圖像的特征。Gatys等[10-11]結合卷積神經(jīng)網(wǎng)絡提出一種有別于傳統(tǒng)方法的風格遷移模型,該模型首先使用內容圖像引入隨機噪聲生成一張過渡圖像,通過預訓練[12]好的VGG網(wǎng)絡[13]提取圖像特征并計算出內容損失和風格損失來迭代模型生成目標圖像。該方法能夠很好地遷移目標風格,但是由于人為引入的噪聲具有隨機性,在一定程度上遷移速度取決于過渡圖像質量的好壞,并且每次訓練都需要重新訓練網(wǎng)絡,實時性差,無法實現(xiàn)實時遷移。此外,該方法在直接更新圖像的像素值來實現(xiàn)風格遷移時,也會出現(xiàn)圖像失真的情況。針對實時性差的問題,Johnson等[14]提出在網(wǎng)絡模型前增加一個轉換網(wǎng)絡,只需要一次前向過程即可得到生成圖片;針對失真問題,Luan等[15]通過對損失函數(shù)的改進,使得在照片之間可以進行風格遷移且不失真。Li等[16]另辟蹊徑,認為批量歸一化層(batch normalization,BN)中的統(tǒng)計量(如均值和方差)包含不同位置和紋理的特征,通過簡單地調整目標圖像特征在通道(channel)方向上的均值和方差即可實現(xiàn)風格遷移,但該方法在采樣過程中,使用反卷積操作填充放大圖片時會引入偽影,對遷移效果造成影響。Goodfellow等[17]提出一種對抗生成網(wǎng)絡(generative adversarial net,GAN),網(wǎng)絡中的生成網(wǎng)絡和判別網(wǎng)絡通過對抗博弈達到納什均衡狀態(tài),使數(shù)據(jù)分布散度擬合。受GAN網(wǎng)絡啟發(fā),Isola等[18]提出了圖像到圖像翻譯的pix2pix模型,Zhu等[19]提出一種使用雙對抗生成網(wǎng)絡無監(jiān)督對抗網(wǎng)絡CycleGAN,CycleGAN創(chuàng)造性的雙向轉換,內容圖像的特征能被很好地保存。盡管GAN網(wǎng)絡在實現(xiàn)風格遷移任務上表現(xiàn)優(yōu)異,但是往往需要大量的數(shù)據(jù)集來訓練網(wǎng)絡,對計算資源的消耗也是巨大的。
風格遷移任務關鍵是準確獲取圖像的特征信息,在保持內容圖像主體不變的同時,將提取出的風格特征融入內容圖像來合成遷移后的目標圖像。
目前大多數(shù)采用深度學習方法的風格遷移算法都需要訓練模型來生成遷移后的圖像,因速度慢很難做到實時遷移,并且生成風格圖像的質量也參差不齊,難以定量評價。針對上述的問題,提出以下解決方案:①使用實例規(guī)范化[20]的方法生成過渡圖像,消除采用隨機噪聲生成過渡圖像的不確定性;②給特征提取網(wǎng)絡的各層賦合適的權重,從而更好地提取風格圖像的紋理和顏色,保留內容圖像的主體,模型結構框架如圖1所示。
圖1 實例規(guī)范化風格遷移模型結構框架
實例規(guī)范化風格遷移模型主要分為3個模塊:實例規(guī)范化模塊、特征提取模塊、遷移模塊。實例規(guī)范化模塊使用實例規(guī)范化的方法將輸入的內容圖像和風格圖像合成為過渡圖像;特征提取模塊主要由VGG-19網(wǎng)絡的卷積層部分構成,用于獲取內容圖像、風格圖像與過渡圖像的內容特征和風格特征;在遷移模塊中,使用特征提取模塊提取出內容圖像與過渡圖像的內容特征計算風格損失,風格圖像與過渡圖像的風格特征計算風格損失,聯(lián)合2種損失,采用梯度下降的方法更新過渡圖像的像素值,得到目標圖像。
Gatys所提出的算法在生成過渡圖像時采用基于內容圖像引入隨機噪聲的方法,盡管可以滿足風格遷移的需要,但是過渡圖像質量的好壞會直接影響模型的收斂速度,給模型的效率帶來了不確定性。
規(guī)范化概念的提出最早是為了解決深度神經(jīng)網(wǎng)絡中的協(xié)變量偏移問題,保證每一層網(wǎng)絡的輸入數(shù)據(jù)在分布上是相似的,從而加快網(wǎng)絡收斂,避免梯度消失和梯度爆炸,優(yōu)化網(wǎng)絡結構,提升網(wǎng)絡的泛化能力。Ioffe等[21]于2015年首次提出批量標準化(BN),通過計算輸入當前網(wǎng)絡層的一小批(batch)數(shù)據(jù)的均值和方差來標準化該層的輸入,使輸入數(shù)據(jù)服從均值為0,方差為1的正態(tài)分布。
不同于批規(guī)范化(BN)每次處理一批數(shù)據(jù)的方式,實例規(guī)范化(IN)是一種作用于單張圖像的統(tǒng)計特征處理方法,能獨立地計算出單張圖像的風格。具體定義為內容圖像的特征減去內容圖像的均值μ(c)的差,除以內容圖像的標準差σ(c),乘以風格圖像的標準差σ(s)再加上風格圖像的均值μ(s),公式為
使用實例歸規(guī)范化的方法,可以較為穩(wěn)定地生成具有一定風格圖像的內容圖像,能夠極大地減少模型的迭代次數(shù)。
特征提取模塊使用VGG-19網(wǎng)絡的卷積層提取圖像特征。VGG-19網(wǎng)絡由13個卷積層和3個全連接層組成。網(wǎng)絡中的卷積層堆疊使用尺寸為3×3卷積核取代大尺寸卷積核,在不改變感知野的同時,極大加深了網(wǎng)絡深度,確保網(wǎng)絡可以學習到更復雜的模式,也大幅減少了網(wǎng)絡的訓練參數(shù)。在構建卷積神經(jīng)網(wǎng)絡時,可以將卷積神經(jīng)網(wǎng)絡看作是一組線性的特征提取器,將圖像作為模型輸入時,輸出的一組圖像特征,靠近輸入端的淺層網(wǎng)絡包含較多圖像信息,靠近輸出端的深層網(wǎng)絡則包含圖像較多內容信息,這是由于圖像在淺層網(wǎng)絡經(jīng)過的卷積(Conv)和池化(Pooling)操作少,整體信息丟失少;到達深層網(wǎng)絡時,所需處理的內容越來越少,可保留更多內容信息。因此,采用為不同的風格特征層分配不同的權重的策略,權重隨網(wǎng)絡深度逐漸減小,權重設置方法如表1所示。
表1 風格特征層權重
風格遷移模型的損失函數(shù)包含內容損失和風格損失2部分。內容損失可以由內容圖像與過渡圖像固定特征層之間平方誤差定義為
式中:Fl和Pl分別為內容圖像和過渡圖像經(jīng)過卷積操作之后第l層的特征信息。
實驗中選取Block4_Conv2和Block5_Conv2來計算內容損失。
經(jīng)過卷積后得到的特征圖的協(xié)方差矩陣能很好地表示圖像的相關性,在風格遷移任務中表現(xiàn)為圖像的紋理特征,采用協(xié)方差矩陣作為風格損失也可以在一定程度上抑制圖像偽影和混色的問題,但是會損失部分位置信息,導致圖像內容有位移現(xiàn)象的產(chǎn)生。而Gatys算法中采用Gram矩陣能很好地保留圖像內容的位置信息。因此,本算法風格損失由風格圖像和過渡圖像各特征層的Gram矩陣的平方誤差與協(xié)方差誤差的和來定義,其表達式為
式中:G為Gram矩陣;cov為協(xié)方差;θ和γ是調整權重的超參數(shù),實驗中選取Block1_Conv1,Block2_Conv1,Block3_Conv1,Block4_Conv1和Block5_Conv1計算風格損失。
模型的總損失為
式中:α和β為調整內容損失和風格損失的超參數(shù)。
梯度下降算法通過多次最小化損失函數(shù)的迭代來優(yōu)化模型,學習率在迭代的過程中可以控制模型的學習速度,為提高模型訓練效率,避免訓練后期在收斂到全局最優(yōu)點時出現(xiàn)不良振蕩,使用學習率衰減的逆時學習率取代固定學習率。在訓練初期,逆時學習率的學習步長較大,可以較快地到達最優(yōu)值附近,在訓練后期小步長的學習率有效避免了梯度下降無法收斂到全局最優(yōu)點,甚至發(fā)散的情況。逆時學習率的計算式為
式中:α0為初始學習率;αt為t時刻的學習率;β為衰減率;T為衰減步長。
本實驗的環(huán)境為Windows 10操作系統(tǒng),GPU型號為NVIDIA GeForce RTX 3080顯卡,算法運行平臺為Python3.7,采用TensorFlow深度學習框架搭建模型,框架中的Keras庫包含有使用ImageNet數(shù)據(jù)集預訓練過的VGG-19網(wǎng)絡,用以加速網(wǎng)絡的訓練。
實驗選取2張內容圖像,4張風格圖像,如圖2所示,遷移后生成8張不同的圖像。
圖2 內容圖像與風格圖像
其中,圖2(c)為梵高的《星空》,筆觸線條短且數(shù)量多,顏色碰撞強烈;圖2(d)為畢加索的《格爾尼卡》,立體主義和超現(xiàn)實主義的創(chuàng)作手法使得畫作的形體和線條隨意、抽象;圖2(e)為中國傳統(tǒng)的水墨畫,著重突出筆墨在宣紙上暈染的效果;圖2(f)為一副線條犀利,顏色鮮明的現(xiàn)實主義畫作。
在預處理階段,將圖像的尺寸均裁剪為(450,400),以更好地提取風格圖像紋理。為了方便后續(xù)網(wǎng)絡計算,將圖像進行歸一化處理,使得圖像像素值分布由[0,255]變?yōu)閇0,1],歸一化操作不會改變圖像存儲的信息,在計算時也可以提高精度。因為使用了Keras庫中VGG-19網(wǎng)絡在ImageNet數(shù)據(jù)集上的預訓練權重,圖像在歸一化后需要減去ImageNet數(shù)據(jù)集圖像的均值,再除以ImageNet數(shù)據(jù)集圖像的標準差。
本實驗的相關參數(shù)設置:使用Keras庫中在ImageNet上預訓練過的VGG-19網(wǎng)絡,并去除全連接層,凍結網(wǎng)絡參數(shù),使其不可訓練,迭代20個epoch,每個epoch訓練100次,使用Adam優(yōu)化器,學習率使用逆時學習率,初始學習率設置為0.003,衰減率β為0.000 3,衰減步長為1,最終學習率衰減為0.001,風格損失與內容損失的比例為1∶10。
為了充分驗證模型的可行性和改進的合理性,與Gatys的風格遷移算法進行了2組驗證實驗和1組風格遷移效果對比實驗。
2.3.1 學習率與風格權重
前50次迭代中,隨網(wǎng)絡深度遞減的風格權重和逆時學習率對網(wǎng)絡效率的影響如圖3所示。
圖3 前50次訓練損失
實驗結果表明,迭代1次后,由于過渡圖像素值的大量更新,損失函數(shù)大幅下降,隨著迭代次數(shù)增加,模型逐漸收斂。當權重不變時,使用逆時學習率的收斂速度優(yōu)于使用固定學習率;而在學習率不變的情況下,賦予淺層特征層更多的權重,使初始的損失函數(shù)值在一個較低的水平。相比于原方法,使用逆時學習率和隨網(wǎng)絡深度遞減的風格權重,極大加快了網(wǎng)絡的收斂速度。
2.3.2 過渡圖像生成方式比較
實驗對比了使用實例規(guī)范化與引入隨機噪聲這2種生成過渡圖像的方式,如圖4所示。
圖4 過渡圖像生成方式比較
使用實例規(guī)范化生成的過渡圖在訓練初始時損失函數(shù)值遠遠小于使用引入隨機噪聲生成過渡圖像的方法,并且整體損失函數(shù)值降低了8%,下降速度提高了0.5%,較低的損失函數(shù)和較快的下降速度都使得模型能更快地收斂。
2.3.3 風格遷移效果對比
選取內容圖像2張,風格圖像4張分別進行風格遷移,將Gatys方法與本文方法進行對比,對比效果如圖5和圖6所示。
圖5 內容圖像1的遷移效果比較
圖6 內容圖像2的遷移效果比較
圖5 和圖6中,(a)、(b)、(c)、(d)分別為內容圖像使用Gatys方法實現(xiàn)4種風格遷移的效果,(e)、(f)、(g)、(h)分別為內容圖像使用本文方法實現(xiàn)4種風格遷移的效果。通過對比可以發(fā)現(xiàn),Gatys算法在全局風格遷移效果不佳,更類似于局部紋理的重復,內容主體不夠突出,并且圖像顏色的遷移不夠明顯。而改進后的算法因為采用了實例規(guī)范化生成過渡圖像,所以很好地保留了內容主體的清晰,并且圖像顏色的遷移效果有了進一步提升,采用協(xié)方差矩陣計算風格損失也使得遷移后的紋理更具有全局性,而不是局部紋理的簡單重復。
對于風格遷移的質量,很難用一些絕對的指標去評價,因為風格遷移可以看作是一種藝術創(chuàng)作,不同的人可能會對同一個遷移后的結果有不同的看法。常用的質量評估方法有2種:定性評估和定量評估。定性評估要求參與者使用肉眼評估不同算法遷移后的質量,這依賴于參與者的風格感知,這種評估結果可能會受到參與者屬性(如年齡、職業(yè))的影響。定性評估方法雖然存在一定程度的不確定性,但至少能夠提供一些有關人們的藝術風格偏好的信息。而定量評估是對于風格遷移算法的遷移速度、算法復雜度、圖像質量等的精確評估。本文采用峰值信噪比(peak signal-to-noise ratio,PSNR)和結構相似性(structural similarity,SSIM)相結合的方式來定量評價模型風格遷移的質量。
對遷移質量的評價采用峰值信噪比和結構相似性作為聯(lián)合評價指標。峰值信噪比衡量內容圖像與遷移后圖像的內容保留度,PSNR的一般取值范圍為[0,40],其值越大,表明遷移后的圖像內容越清晰,保留的內容越多;使用結構相似性來衡量風格圖像與遷移后圖像的結構相似度,SSIM的取值范圍為[-1,1],其值越大,兩圖像風格越接近,當兩圖像完全一致時,SSIM值為1。
在訓練時,每迭代1次計算1次PSNR和SSIM。因為PSNR和SSIM取值范圍不同且有一定差距,為了更直觀地比較變化,再計算時依據(jù)風格圖像的不同,給SSIM值乘上了不同的放大系數(shù),不同風格的放大系數(shù)由PSNR的均值除以SSIM的均值得到。聯(lián)合評價指標Q具體計算式為
遷移后圖像的平均PSNR和SSIM聯(lián)合評價指標Q分別如表2和表3所示。
表2 內容圖像1遷移效果評價
表3 內容圖像2遷移效果評價
通過比較可以發(fā)現(xiàn),在PSNR和SSIM的評價指標及聯(lián)合評價指標上,基于實例規(guī)范化模型生成的風格圖像在內容主體的保留、紋理和顏色的遷移效果方面基本優(yōu)于Gatys方法。但是在第3種風格的遷移實驗中,卻出現(xiàn)了截然相反的結論。本文認為,第3種風格的水墨畫強調意境與色彩的調和,使用的線條與顏色較為柔和,并且在創(chuàng)作時,顏料在宣紙上會出現(xiàn)暈染的效果,導致水墨畫的紋理特征不明顯,Gatys方法所生成的相似小紋理在結構上更接近于水墨畫的圖像紋理結構。
實驗設置迭代20代,每次迭代訓練100次。比較每次迭代所需時間,收斂所需的迭代數(shù),從而計算算法的總用時,如表4所示。
表4 收斂速度比較
將Gatys算法迭代10次后的損失函數(shù)值設置為收斂損失閾值,實例規(guī)范化方法的收斂代數(shù)即達到收斂損失閾值所需的迭代次數(shù)。相比Gatys方法,實例規(guī)范化方法盡管平均每代用時較多,但是較快的收斂速度使得總用時極大降低。
針對原有風格遷移算法遷移速度較慢且遷移質量不佳的問題,采用實例規(guī)范化和協(xié)方差矩陣的方法,提出一種新的圖像風格遷移模型,該方法更好地保留了原始圖像的特征信息,并采用遞減的風格權重與逆時學習率更好地利用了特征信息。實驗結果表明,基于實例規(guī)范化方法能夠在較好保留內容主體和保證遷移風格紋理的同時,加快遷移速度,減少訓練次數(shù),極大節(jié)約了訓練時間。未來將考慮進一步優(yōu)化模型,解決內容圖像生硬,遷移風格圖像顏色時可能導致原圖像內容語義改變的問題。