孫天鵬,周寧寧,黃國方
1.南京郵電大學(xué) 計算機學(xué)院,南京 210023
2.國電南瑞科技股份有限公司,南京 211106
動漫是現(xiàn)在非常流行的一種藝術(shù)表現(xiàn)形式,這種藝術(shù)形式廣泛地應(yīng)用在社會的諸多方面,包括廣告、游戲、影視作品和攝影等多個方面。現(xiàn)在這個時代的年輕人大多受到過日本漫畫的影響,而日本漫畫也確實在全世界有很大的影響力,但是由于漫畫的繪制和生成大多采用的是手工繪圖后再通過電腦渲染來制作,花費的時間和人力都相對較多,這對于一般沒有繪圖基礎(chǔ)的人將無法完成制作。因此希望可以通過電腦將現(xiàn)實世界的圖片自動轉(zhuǎn)換為具有漫畫風格的圖片。同時可以人為地調(diào)控其是對人像或者是背景進行風格遷移以滿足不同人對圖片的要求。
伴隨著人們不斷摸索和對將身邊的實景轉(zhuǎn)化為動漫影像的方法的研究,從最開始的傳統(tǒng)算法NPR(nonphotorealistic rendering)到后來由Gatys提出基于卷積神經(jīng)網(wǎng)絡(luò)的風格遷移算法,經(jīng)由人們對Gatys算法的不斷改進最后在近幾年人們研究出GAN(generative adversarial network)可以將實景的轉(zhuǎn)換從簡單的紋理轉(zhuǎn)變到紋理的生成,開創(chuàng)了全新的圖像風格遷移的研究方向[1]。
最開始人們開發(fā)了很多自動的NPR算法來模仿包括卡通在內(nèi)的特定藝術(shù)風格。一些作品以簡答的陰影渲染3D形狀,從而產(chǎn)生類似卡通的效果。這種稱為著色的技術(shù)可以為藝術(shù)家節(jié)省大量時間,但是將現(xiàn)有的圖片或者視頻轉(zhuǎn)換成卡通片則效果不佳[2]?,F(xiàn)有開發(fā)的方法為創(chuàng)建具有平面陰影的圖像來模仿卡通風格,這種方法在優(yōu)化問題上商用圖像過濾或者公式化。但是使用簡單的數(shù)學(xué)公式很難捕捉豐富的藝術(shù)風格。特別是在對整個圖像均勻地應(yīng)用過濾或者優(yōu)化并不能提供藝術(shù)家通常做的高級抽象,例如使對象邊界清晰。同時NPR算法在面對不同的需求時需要花費大量的精力來制作特定的NPR算法。
目前,基于深度學(xué)習的圖像風格遷移已經(jīng)取得了相對較好的效果,所以深度學(xué)習成為了目前圖像到圖像轉(zhuǎn)換的常用方法[3]。該方法通過對風格圖像的樣式學(xué)習,將學(xué)習的樣式應(yīng)用于輸入的內(nèi)容圖像以生成結(jié)合了內(nèi)容圖像的內(nèi)容和風格圖像的風格的新圖像。這些方法主要利用深度特征之間的相關(guān)性和基于優(yōu)化方法對圖像的視覺風格進行編碼。
2016年Gatys等人率先采用深度學(xué)習提出了Neural Style的方法,其方法主要通過模擬人類視覺的處理方式,結(jié)合訓(xùn)練多層卷積神經(jīng)網(wǎng)絡(luò)(CNN),使計算機辨別并且學(xué)會藝術(shù)風格,從而用到原始圖像上,使原始圖像富有藝術(shù)感[4]。方法很好地達到了風格遷移的目的但是遷移效果較為僵硬且會出現(xiàn)內(nèi)容扭曲同時生成速度較慢。于是Johnson等人在2016年對Gatys等人提出的方法進行了改進,Johnson等人提出Fast Neural Style方法,其訓(xùn)練好一個風格模型后可以在極短的時間內(nèi)生成遷移后的藝術(shù)圖像,但是該方法僅僅改善了生成的速度但是在圖像生成的質(zhì)量方面仍然沒有顯著的提高[5]。在2017年,Luan等人在Gatys的工作基礎(chǔ)上加強改進,控制了風格遷移的內(nèi)容細節(jié)[6],與此同時Li等人采用馬爾可夫隨機場模型和訓(xùn)練過的DCNN網(wǎng)絡(luò)組合算法,大大減少了不準確的特征轉(zhuǎn)移來保留原始圖像的具體特征[7]。同樣是在2017年Huang等人通過編碼-解碼結(jié)果加速了風格遷移[8],但由于自編碼器的構(gòu)造中解碼器信息損失嚴重,導(dǎo)致圖像的遷移結(jié)果中紋理呈現(xiàn)“塊狀”,在分割邊緣上尤其明顯。2017年Li等人對自適應(yīng)實例規(guī)范化添加了白遷移和顏色遷移合稱為(WCT),WCT使風格遷移在特征的選取和色彩的校正上有了一定改觀[9]。但是無論方法如何改進,通過其方法生成的圖像還是簡單地停留在簡單的紋理轉(zhuǎn)變中無法從本質(zhì)上凸顯出特有的風格特點。
Radford和Metz等人在2015年所提出基于卷積生成對抗網(wǎng)絡(luò)的無監(jiān)督學(xué)習方法為人們在圖像風格遷移提供了新的研究方法,經(jīng)由實驗發(fā)現(xiàn)該方法在圖像數(shù)據(jù)集上進行訓(xùn)練所得出的處理結(jié)果有著十分不錯的效果[10]。但是由于該網(wǎng)絡(luò)需要成對的數(shù)據(jù)集,而且獲取轉(zhuǎn)移的對應(yīng)圖像是十分困難的所以該模型顯得不切實際,為了解決這個問題在后續(xù)提出了CycleGAN,CycleGAN是一個能夠采用不成對訓(xùn)練數(shù)據(jù)進行訓(xùn)練的圖像翻譯架構(gòu),同時在2017年由Zhu等人率先采用周期一致的對抗網(wǎng)絡(luò)進行不成對圖像到圖像的翻譯,從而解決了諸多訓(xùn)練數(shù)據(jù)集不匹配的問題[11]。但是CycleGAN的樣式化不能很好地捕捉卡通圖案,輸出的圖像對輸入圖的語義內(nèi)容不能充分地保留。
2018年Chen等人在對抗生成網(wǎng)絡(luò)的基礎(chǔ)上提出了CartoonGAN[12],其采用了新穎的網(wǎng)絡(luò)架構(gòu),其網(wǎng)絡(luò)結(jié)構(gòu)可以使用不成對的數(shù)據(jù)集進行訓(xùn)練同時能在最大程度上呈現(xiàn)出漫畫的風格特點。但是CartoonGAN所生成的圖像在人像方面會出現(xiàn)嚴重的歧義色塊導(dǎo)致。于是在2019年由Chen等人對其進行改進并且提出了Anime-GAN[13],其引入了灰度圖像并且更改了原CartoonGAN所采用的損失函數(shù)消除了人物出現(xiàn)歧義色塊的問題,但是其為了保證顏色的真實性導(dǎo)致人像和風景部分在風格遷移過程中的諸多細節(jié)丟失,包括人臉部分的眾多重要的紋理特征丟失。
以上方法均是基于深度學(xué)習的遷移方法,而樣本遷移學(xué)習是可以和深度學(xué)習結(jié)合使用的[14]。如果網(wǎng)絡(luò)中的特征是通用的,則遷移學(xué)習可以在基礎(chǔ)數(shù)據(jù)集中訓(xùn)練好基礎(chǔ)網(wǎng)絡(luò)后將其遷移到后續(xù)網(wǎng)絡(luò)中進行使用,從而起到很好的效果。但是這對數(shù)據(jù)集有著較高的要求,由于實驗中的動漫數(shù)據(jù)集是通過視頻隨機幀截取的方式進行數(shù)據(jù)集制作的,這使得數(shù)據(jù)集中的數(shù)據(jù)具有極高的隨機性,數(shù)據(jù)集中包含著動漫人物和風景,同時不同的動漫角色所繪制的方式也是不十分一致的,由于這些因素對遷移學(xué)習十分不友好。其次不同的畫家的漫畫風格是不同的,所以每次遷移學(xué)習都需要重新的訓(xùn)練,從而增加了網(wǎng)絡(luò)的復(fù)雜性,所以最終本文選用樣本遷移學(xué)習。
深度學(xué)習雖然是現(xiàn)階段圖像風格遷移的主要方式,但是類似于Gatys等人在2016年CVPR所提出的image style transfer using convolutional neural network(基于卷積神經(jīng)網(wǎng)絡(luò)的圖像風格遷移),該方法是通過卷積神經(jīng)網(wǎng)絡(luò)將圖像的紋理和圖像進行融合以達到風格遷移的效果,但是這對于動漫圖像是完全不夠的,動漫圖像中需要凸顯出動漫人物的線條以及人物和場景的層次感,而通過此方法是很難達到的。
GAN(對抗生成網(wǎng)絡(luò))是現(xiàn)階段最新的方法之一[15]。首先GAN框架主要由生成器和鑒別器組成,生成器將生成圖像輸入到鑒別器中欺騙鑒別器,從而達到將真實圖像去擬合動漫圖像線條和紋理的效果,這樣既不會損失原始圖像的內(nèi)容同時可以生成動漫圖像。其次GAN的生成網(wǎng)絡(luò)其參數(shù)更新來自于鑒別器的反向傳播而不是數(shù)據(jù)樣本,這樣可以大大減少參數(shù)保存,從而降低內(nèi)存的需求。鑒于以上原因本文選擇采用GAN進行圖像風格遷移。
針對目前流行的基于GAN的漫畫生成對抗網(wǎng)絡(luò)框架AnimeGAN和CartoonGAN在圖像遷移中存在細節(jié)丟失嚴重、色彩失真、合成痕跡明顯等問題。
本文首先通過引入可以實現(xiàn)通道注意力機制的Squeeze-Excitation-Residual-Block(擠壓激勵殘差塊)和漫畫臉部檢測機制,提出全新的ExpressionGAN,并新定義了融合內(nèi)容損失、對抗損失和顏色重建損失等因素的損失函數(shù),解決了AnimeGAN在人物臉部細節(jié)丟失嚴重、色彩失真的問題。
接著通過加入DSConv(分布偏移卷積)提出了新的SceneryGAN,加快了原始訓(xùn)練速度并消除了Cartoon-GAN生成的遷移圖像中的歧義像素塊。
通過卷積的手段優(yōu)化了Deeplabv3+生成圖像在融合時邊界過于明顯的問題。最后,提出結(jié)合ExpressionGAN、SceneryGAN和優(yōu)化后的Deeplabv3+的一種全新的對原始圖像人物和環(huán)境分別處理并融合的局部寫實感漫畫風格遷移模型。實驗結(jié)果表明,與AnimeGAN和CartoonGAN相比,本文的方法在訓(xùn)練速度、漫畫圖像生成質(zhì)量和圖像局部寫實感方面都有了明顯的提升。
本文提出了一個全新的可以控制圖片進行局部風格遷移的模型——局部寫實主義動漫模型,模型主要由三個深度學(xué)習的網(wǎng)絡(luò)框架組成。三個網(wǎng)絡(luò)分別為ExpressionGAN、SceneryGAN和Deeplabv3+。模型通過ExpressionGAN實現(xiàn)人像部分的風格遷移,通過Scenery-GAN實現(xiàn)人物背景的風格遷移,采用Deeplabv3+將圖片中的人像和背景進行分割,最后通過融合算法將兩者分別進行融合。具體框架如圖1所示。
圖1 局部寫實主義動漫模型Fig.1 Partial realistic animation model
本文提出了全新的ExpressionG AN,ExpressionGAN選用擠壓激勵殘差塊代替AnimeGAN中的反轉(zhuǎn)殘差塊。反轉(zhuǎn)殘差塊是在殘差塊的基礎(chǔ)上進行了一定的修改,但是其卷積操作的運算仍然是通過在局部接收域內(nèi)將空間和通道信息加以融合從而提取出特征信息。由于ExpressionGAN和AnimeGAN實質(zhì)上的訓(xùn)練圖像和應(yīng)用場景均包含人物和背景場景,所以本文希望可以通過添加通道注意力機制,來增強網(wǎng)絡(luò)的表示能力,讓網(wǎng)絡(luò)能夠盡可能地強調(diào)人物特征同時可以抑制背景特征所帶來的影響,從而達到優(yōu)化網(wǎng)絡(luò)對人物進行風格遷移的效果。
1.2.1 加入通道注意力機制
本文所采用的SE-Residual-Block是在殘差塊中添加了SE-Module(擠壓激勵模塊)來實現(xiàn)通道注意力機制[16]。無論是殘差塊還是反轉(zhuǎn)殘差塊對于每個通道都是一視同仁的,并沒有區(qū)分每個通道的重要性。這使得一些不太有用的信息會影響到重要的特征信息,同時也會存在在暴力篩選中將重要信息丟失的現(xiàn)象。SE-Module(擠壓激勵模塊)則相當于給網(wǎng)絡(luò)在特征提取時添加了重新校準的機制,通過該機制網(wǎng)絡(luò)可以學(xué)習和使用全局信息來給每個通道賦予不一樣的權(quán)值,從而達到選擇性地強調(diào)重要特征信息并且抑制不太有用的特征信息的效果。
SE-Residual-Block和Inverted-Residual-Block具體結(jié)構(gòu)如圖2所示。
圖2中虛線部分為SE-Module,SE-Residual-Block由標準卷積(Conv-Block)、全局平均池化層(Global pooling)、全連接層(FC)、LRelu激活函數(shù)、全連接層(FC)、Sigmoid函數(shù)和實例歸一化層(Inst-Norm)構(gòu)成。
圖3 擠壓激勵模塊結(jié)構(gòu)圖Fig.3 Squeeze and excitation structure chart
SE-Module(擠壓激勵模塊)主要分為Squeeze(擠壓)和Excitation(激勵)兩個部分。
Squeeze(擠壓)部分:通過對上層卷積傳入的特征圖U采用全局池化操作,通過對特征圖進行聚合,生成通道描述符,該描述符嵌入了通道方式特征響應(yīng)的全局分布,使得來自網(wǎng)絡(luò)全局接收域信息能夠被下一層利用。
Excitation(激勵)部分:通過基于通道之間的關(guān)系進行學(xué)習計算出每個通道的權(quán)值,隨后對特征圖U進行加權(quán),作為最后的輸出傳入后續(xù)網(wǎng)絡(luò)。
SE-Module(擠壓激勵模塊)具體結(jié)構(gòu)如圖3所示。其中X為輸入數(shù)據(jù),H′、W′、C′分別為輸入數(shù)據(jù)的高度、寬度和通道數(shù)。X通過Ftr卷積操作得到特征圖U。其中H、W、C分別為特征圖的高度、寬度和卷積核的數(shù)量。Fsq(·)為擠壓函數(shù),F(xiàn)ex(·,W)為激勵函數(shù),F(xiàn)scale(·,·)為加權(quán)函數(shù),為加權(quán)輸出。
SE-Module具體流程介紹:
輸入數(shù)據(jù)X通過卷積核V=[V1,V2,…,Vc]進行卷積操作得到U=[U1,U2,…,Uc],其中Ftr具體公式如公式(1):
其中,Vc表示第C個卷積核,S表示通道,Uc為通過Vc卷積得到的第C個特征圖。
由于在卷積運算中所有的通道相關(guān)性和通道捕捉的信息是相加從而糾錯在一起的,所以本文希望通過建模通道相互之間的依賴來實現(xiàn)通道權(quán)值的不同。
Squeeze(擠壓)部分:
由于Uc是通過每個Vc卷積得來的,所以每個卷積核相當于通過局部感受域來獲取信息,從而U所獲得的信息存在著局限性。于是希望通過將全局信息壓縮到一個通道描述符中。所以采用全局池化中的全局平均池化來生成通道統(tǒng)計信息,全局平均池化具體公式如公式(2):
其中,C為卷積核數(shù)量,H為高度,W為寬度。zc為全局平均化池得到的通道描述符。
通過Squeeze部分得到C個z值,將C個z值輸入到Excitation部分,即圖中的1×1×C的輸入。全局平均池化將全局的通道信息進行提取,后將信息輸入到Excitation部分。
Excitation(激勵)部分:
激勵部分則是利用擠壓操作中獲取的全局通道信息進行完全捕獲通道之間的依存關(guān)系。要求該部分可以在網(wǎng)絡(luò)中學(xué)習通道之間的非線性交互,所以采用了簡單的門控系統(tǒng)。其具體公式如公式(3):
其中,δ為Relu激活函數(shù),σ為Sigmoid函數(shù),W1和W2是分別用于兩個全連接層的降維和升維的權(quán)重,本文中W1=C/16,W2=C。第一個FC層通過W1降維后采用Relu激活后通過第二個FC層的W2進行恢復(fù)為原始維度,后將通過Sigmoid函數(shù)學(xué)習到的值進行歸一化將值取于0~1之間,最后將歸一化的值乘到原始特征U上公式如公式(4):
通過Squeeze部分將通道信息傳入Excitation部分全連接層的學(xué)習,隨后對原始特征圖U進行重新校準,從而加大重要通道信息的權(quán)重同時減少不太有用的特征通道的權(quán)值。
本文引用發(fā)布于2018年ECCV上的論文CBAM:convolutional block attention module的方法[17],將改進后的擠壓激勵模塊和殘差塊通過Grad-CAM進行可視化對比,具體對比如圖4所示。
圖4 Grad-CAM激活熱力對比圖Fig.4 Grad-CAM activation thermal contrast diagram
圖4中Photo為輸入原始圖像,ResNet為殘差網(wǎng)絡(luò),SE-ResNet為擠壓激勵殘差網(wǎng)絡(luò)。
通過熱力圖可以直觀地看出在添加了擠壓激勵機制后網(wǎng)絡(luò)在特征提取和中間層的激活中對重要信息更加具有針對性。從而證明本文所添加擠壓激勵殘差塊可以在一定程度上增強網(wǎng)絡(luò)的表示能力,優(yōu)化網(wǎng)絡(luò)中對人物特征的提取,同時減少背景圖像在特征提取過程中對圖像生成帶來的影響,最終達到優(yōu)化圖像生成的效果。
本文將SE-Residual-Block(擠壓激勵殘差塊)替換AnimeGAN中的Invert-Residual-Block(反轉(zhuǎn)殘差塊)得到ExpressionGAN,其具體結(jié)構(gòu)如圖5所示,圖5中紅色虛線框選出的為SE-Residual-Block。
圖5中結(jié)構(gòu)主要分為鑒別器和生成器,在生成器和鑒別器中,k為卷積核(kernel)大小,n為特征圖(feature map)個數(shù),s為步長。其中k7n64s1則表示為卷積核大小為7,特征圖數(shù)量為64,步長為1。生成器輸入為真實圖像,鑒別器輸入為真實圖像,生成器生成圖像,動漫圖像,動漫灰度圖,去線條化動漫圖像,去線條畫動漫灰度圖。其中a為動漫圖像,x為動漫灰度圖,e為去線條化動漫圖像,y為去線條畫動漫灰度圖,G(p)為生成器生成圖。
原始圖像輸入生成器首先通過人臉檢測機制對數(shù)據(jù)集中的隨機圖片進行篩選將檢測到的人臉圖片輸入到生成網(wǎng)絡(luò),ExpressionGAN的生成器可以看作一個編解碼器網(wǎng)絡(luò),它主要由標準卷積、深度可分離卷積、擠壓激勵殘差塊(SE-Residual Block)、上采樣和下采樣模塊組成。最后一個卷積層則是采用tanh非線性激活函數(shù)代替歸一化層。
在鑒別器中通過添加本文提出的漫畫人臉檢測機制,通過該機制將漫畫臉部對視頻隨機選取的漫畫圖像進行檢測,將檢測到漫畫臉的圖片選取到鑒別網(wǎng)絡(luò)中,相當于給漫畫圖像數(shù)據(jù)進行了預(yù)處理,可以進一步地提高網(wǎng)絡(luò)訓(xùn)練的針對性。
1.2.2 ExpressionGAN損失函數(shù)
ExpressionGAN的損失函數(shù)是在AnimeGAN的基礎(chǔ)上進行了修改。AnimeGAN通過使用灰度矩陣將原始卡通圖像轉(zhuǎn)換為灰度圖像,這樣做的目的在保留圖像紋理的同時可以消除暗色干擾。但AnimeGAN雖然解決了色塊的問題還是無法改善圖片顏色偏暗的問題。所以本文在其顏色重建損失中進行了修改。
ExpressionGAN損失函數(shù)定義如公式(5):
其中,G代表生成器,D代表鑒別器Ladv(G,D)和Lcon(G,D)為對抗損失和內(nèi)容損失。Lgra(G,D)為生成圖像在紋理和線條上漫畫風格的灰度對抗損失。Lcol(G,D)為恢復(fù)灰度圖像所構(gòu)造的顏色重建損失。ωadv、ωcon、ωgra、ωcol分別為各個損失函數(shù)權(quán)重,經(jīng)實驗其中ωadv=300,ωcon=1.5,ωgra=3,ωcol=10時達到最好效果。
本文中真實圖片數(shù)據(jù)定義為Sdata(p)={pi|i=1,2,…,N},動漫圖片數(shù)據(jù)定義為Sdata(a)={ai|i=1,2,…,M},動漫灰度圖定義為Sdata(x)={xi|i=1,2,…,M},去線條化動漫圖像為Sdata(e)={ei|i=1,2,…,M},去線條化灰度圖定義為Sdata(y)={yi|i=1,2,…,M}。
其中灰度對抗損失具體如公式(6):
其中,Gram表示特征的Gram矩陣。pi表示輸入圖片,G(pi)表示生成圖片,VGG(xi)則表示VGG中第一層的輸入的特征圖。
圖5 ExpressionGAN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.5 ExpressionGAN network structure diagram
內(nèi)容損失具體定義如公式(7):
其中,VGGl()為VGG第l層的特征圖,pi表示輸入圖片,G(pi)表示生成圖片為輸入數(shù)據(jù)。
灰度對抗損失和內(nèi)容損失均采用L1稀疏正則化進行損失計算。
為了消除AnimeGAN生成圖片顏色偏暗的問題,本文嘗試將原先的YUV格式的圖像轉(zhuǎn)換為LAB格式來構(gòu)造顏色重建損失Lcol(G,D),其中L通道使用L1損失,A和B通道則使用Huber損失。顏色重建損失可表示為公式(8):
最后生成器損失定義為公式(9):
鑒別器的損失函數(shù)為公式(10):
SceneryGAN是由兩個卷積神經(jīng)網(wǎng)絡(luò)構(gòu)成的:一個生成器G,用于將現(xiàn)實世界圖片轉(zhuǎn)換為漫畫圖片;另一個為鑒別器,鑒別器延用了CartoonGAN所采用的鑒別器。SceneryGAN是在CartoonGAN生成器的基礎(chǔ)上引入DSConv(分布偏移卷積)。來代替原生成器中的標準卷積。SceneryGAN具體結(jié)構(gòu)如圖6所示。
圖6為SceneryGAN的生成器,其中k為卷積核(kernel)大小,n為特征圖(feature map)個數(shù),s為步長,紅色虛線框中的內(nèi)容為替換標準卷積的DSConv(分布偏移卷積)[18]。
分布偏移卷積(DSConv)是標準卷積層的一種變體,其可以很好地替代原有的標準卷積,DSConv將傳統(tǒng)的卷積內(nèi)核分解為兩個組件:可變量化內(nèi)核(VQK)和分布偏移。通過在VQK中存儲整數(shù)值來實現(xiàn)較低的存儲器使用和較高的速度,同時通過應(yīng)用基于內(nèi)核和基于通道的分布偏移來保持和原始卷積相同的輸出。經(jīng)過反復(fù)的訓(xùn)練發(fā)現(xiàn)通過DSConv的替換,在網(wǎng)絡(luò)訓(xùn)練過程中速度得到了明顯的提升,同時改善了原有模型會在遷移后圖片出現(xiàn)部分亂碼的現(xiàn)象。
經(jīng)過多次對比本文最后采用Deeplabv3+來對現(xiàn)實圖片進行人像分割,實驗選用百度飛槳所提供的API對圖片進行分割得出背景和人像的mask圖。經(jīng)過人像切割可以很好地對人像部分和背景部分進行分離和切割,但是在人物的邊界處存在著鋸齒狀的像素塊,導(dǎo)致在將局部原始圖片和局部風格遷移圖片進行圖像融合時存在著邊界過于明顯的現(xiàn)象。由此本文采用卷積的方法,在圖像進行融合時通過一個5×5的卷積核對分割后的局部圖像進行邊緣模糊從而改善其邊緣的鋸齒狀現(xiàn)象,更加自然地將圖片進行融合。
本文使用Pytorch和lua語言實現(xiàn)ExpressionGAN、SceneryGAN、動漫臉部檢測和圖像邊緣優(yōu)化。實驗中得出的實驗?zāi)P涂梢蕴峁┙o后續(xù)其他人工作使用以便做出改進。所有實驗均在NVIDIA 1080ti GPU上進行。
圖6 SceneryGAN結(jié)構(gòu)圖Fig.6 SceneryGAN network structure diagram
由于ExpressionGAN和SceneryGAN兩個網(wǎng)絡(luò)模型對數(shù)據(jù)集中圖像不需要做到一一匹配,所以數(shù)據(jù)集可以由作者根據(jù)不同的漫畫藝術(shù)家風格進行自行選取。同時由于本文所設(shè)計的動漫人臉檢測有著很高的泛用性所以對于動漫圖片數(shù)據(jù)集的要求可以進一步地縮小。
為了更好地將ExpressionGAN、SceneryGAN以及局部風格遷移后的圖像與最新技術(shù)進行比較,本文在2.1節(jié)中介紹訓(xùn)練和測試數(shù)據(jù)。在2.2節(jié)中,將改進后實驗結(jié)果與先前的AnimeGAN和CartoonGAN實驗結(jié)果進行比較。在2.3節(jié)中,將優(yōu)化后的局部風格遷移圖像進行展示以呈現(xiàn)整體模型的圖片效果。在2.4節(jié)中展示了局部風格遷移圖。
訓(xùn)練數(shù)據(jù)包含真實圖像和卡通圖像,測試圖像則僅包含真實圖像。為了可以更好地展示出本文改進的網(wǎng)絡(luò)效果,實驗延用了CartoonGAN和AnimeGAN所選取的數(shù)據(jù)集。在ExpressionGAN中采用6 656張256×256真實圖像以及其中5 890張圖像用于訓(xùn)練,776張圖像用于測試。在SceneryGAN中從Flickr網(wǎng)站中下載的6 153張真實圖像,其中5 402張用于訓(xùn)練,其余真實圖像用于測試。在ExpressionGAN和SceneryGAN中選用同樣的漫畫圖像數(shù)據(jù)集,數(shù)據(jù)集來自宮崎駿和新海誠兩人的《千與千尋》《你的名字》和《起風了》三部動漫電影,通過隨機幀截取的方式對其進行截取,分別獲得4 573和4 212張兩位畫家作品的動漫圖像。
實驗結(jié)果對比主要有四個部分,分為:(1)與2019年ISICA上發(fā)表的AnimeGAN進行人像部分遷移的比較。(2)與2018年在CVPR上提出的CartoonGAN進行場景部分的比較。(3)將進行邊緣優(yōu)化后的分割圖像與未優(yōu)化的分割的圖像進行對比。(4)呈現(xiàn)整體框架生成的局部風格遷移圖。為了公平起見,在進行對比實驗中兩兩對比的網(wǎng)絡(luò)均采用相同的數(shù)據(jù)集以及相同的訓(xùn)練輪數(shù)。
2.2.1 ExpressionGAN與AnimeGAN實驗結(jié)果對比
實驗率先對原始的AnimeGAN以及CartoonGAN進行訓(xùn)練,隨后通過測試發(fā)現(xiàn)AnimeGAN雖然解決了CartoonGAN在風格遷移過程中局部顏色出現(xiàn)歧義的現(xiàn)象,但是從最終呈現(xiàn)結(jié)果可以看出AnimeGAN在人物和場景的遷移中丟失了很多重要的細節(jié),例如說人像臉部的五官,而在風景圖片遷移時則會出現(xiàn)線條的扭曲以及細節(jié)紋理的丟失。所以本文在AnimeGAN基礎(chǔ)上引入了一系列改進措施在很大程度上恢復(fù)了其在人臉部風格遷移時人物臉部特征的丟失的問題。
由圖7可以看出CartoonGAN在對于人物的風格遷移中有著很大的缺點,會出現(xiàn)十分明顯的歧義顏色,導(dǎo)致人物的皮膚呈現(xiàn)十分不合理的顏色,同時其人物漫畫的程度過小很難顯現(xiàn)出漫畫的特點。AnimeGAN雖然改善了顏色歧義的問題,但是AnimeGAN在人物臉部細節(jié)中有著很大的缺陷,人物臉部的五官等重要紋理出現(xiàn)了嚴重的丟失,而且整體圖像顏色偏暗。ExpressionGAN在整體上可以看出其可以鮮明地看出人物的臉部五官特征同時顏色方面也有了顯著的增強。
圖7 CartoonGAN、AnimeGAN和ExpressionGAN對比圖Fig.7 CartoonGAN,AnimeGAN and ExpressionGAN contrast figure
處理對網(wǎng)絡(luò)和損失函數(shù)的優(yōu)化本文還對圖像進行了預(yù)處理工作,通過選用OpenCV中的對象檢測器OpenCV_traincascade對動漫人物圖像進行訓(xùn)練使其可以框選含有動漫人物的動漫圖像。具體框選效果如圖8。
圖8 漫畫人物框選圖Fig.8 Comic character box selection
由于本文是希望生成類似于新海誠和宮崎駿所描繪的寫實感的動漫風格,所以人物臉部特征尤為重要,本文將ExpressionGAN和AnimeGAN人臉臉部特征進行了詳細的對比,對比結(jié)果如圖9所示。
圖9中紅色虛線框選為人物臉部重要特征的效果對比??梢悦黠@看出AnimeGAN在對人物進行風格遷移過程中人物臉部的很多重要特征會出現(xiàn)丟失的現(xiàn)象,從而無法達到理想的遷移效果。ExpressionGAN將人物臉部特征很好地還原,同時改進了AnimeGAN遷移圖像偏暗的問題。
由于每個風格遷移的風格不相同,其遷移后的效果沒有十分明確的指標進行硬性衡量。考慮到本文是進行寫實感漫畫風格遷移,于是本文在能區(qū)分漫畫圖像和真實圖像的基礎(chǔ)上對生成的人物遷移圖像和原始人物進行相似度對比。其中對比工具采用百度飛槳提供的人物臉部對比API。具體對比數(shù)據(jù)如表1所示。
圖9 AnimeGAN和ExpressionGAN人物臉部詳細對比圖Fig.9 Face detailed comparison of AnimeGAN and ExpressionGAN
表1 ExpressionGAN和AnimeGAN遷移圖像的真實度對比Table 1 Authenticity comparison of migration image of ExpressionGAN and AnimeGAN
表1中photos為150張真實圖像,并將這150張真實圖像通過ExpressionGAN和AnimeGAN各生成150張遷移圖像,分為3組,每組50張,通過將遷移圖像和真實圖像進行一一對比計算出每輪50此相似度的平均值。通過相似度可以看出由于ExpressionGAN臉部紋理的恢復(fù),相較于AnimeGAN在寫實感漫畫特點方面有著較為明顯的提升。
2.2.2 SceneryGAN與CartoonGAN實驗結(jié)果對比
在實驗中發(fā)現(xiàn)CartoonGAN在進行風格遷移時較為良好地保留了現(xiàn)實圖片的重要細節(jié)特征且對風景遷移中有著更為真實且良好的表現(xiàn),滿足了現(xiàn)在寫實感漫畫風格的場景需求,但是在訓(xùn)練過程發(fā)現(xiàn)CartoonGAN所生成的效果會存在一些不穩(wěn)定的像素塊,同時訓(xùn)練的速度較為緩慢,所以本文在CartoonGAN中引入分布偏移卷積(DSConv)得到SceneryGAN。將原始的CartoonGAN和SceneryGAN都進行200輪的訓(xùn)練,結(jié)果發(fā)現(xiàn)速度有了很大的提升,同時解決了生成圖片出現(xiàn)亂碼的現(xiàn)象。具體對比如表2和圖10所示。
表2 CartoonGAN和SceneryGAN訓(xùn)練時間對比Table 2 Comparison of training times between CartoonGAN and SceneryGAN
圖10 SceneryGAN和CartoonGAN對比圖Fig10 SceneryGANand CartoonGAN contrast figure
表2中SceneryGAN和CartoonGAN采用相同數(shù)據(jù)集進行訓(xùn)練,可以看出SceneryGAN在訓(xùn)練速度方面有了很大提升。本文使用原始CartoonGAN進行多次訓(xùn)練,發(fā)現(xiàn)在相同設(shè)備下仍然無法消除不穩(wěn)定的像素塊,通過DSConv的引入由于高效卷積在提升訓(xùn)練速度的同時,消除了像素塊的問題。
實驗需要將人像與背景風景通過不同的網(wǎng)絡(luò)分別進行風格遷移,通過本文的研究決定采用Deeplabv3+來對圖像進行分割,由于Deeplabv3+技術(shù)相對成熟,并且其人像切割的結(jié)果相較于其他網(wǎng)絡(luò)有著十分出色的表現(xiàn),所以實驗直接選用了Deeplabv3+的人像切割A(yù)PI。但是由于設(shè)備的局限性,本文采用的是256×256的圖片大小來進行圖片的訓(xùn)練。所以在進行人像切割后在人像邊緣處有著十分明顯的鋸齒狀邊界。具體分割圖像如圖11所示。
圖11 Deeplabv3+分割圖Fig.11 Deeplabv3+segmentation image
經(jīng)過多次實驗發(fā)現(xiàn)Deeplabv3+對人像切割的效果最為出色,通過其得出的Mask圖將背景和人像貼上0和1的標簽,后通過圖像融合時對0和1標簽的交替得到背景或在人像的局部遷移效果圖。但是由于存在鋸齒狀邊界的原有人像圖和背景圖片遷移后融合會出現(xiàn)明顯的邊界,所以本文考慮通過引入5×5卷積核對圖像進行卷積的方式對分割圖像進行了優(yōu)化,具體優(yōu)化對比效果如圖12。
通過圖12可以看出通過優(yōu)化器邊緣的鋸齒狀邊界得以模糊,明顯改善了圖片融合后出現(xiàn)鮮明邊界的問題,這樣使得圖像在切割后與背景進行融合時顯得更加自然,使得融合后的整體圖片更加優(yōu)秀。
圖12 邊緣優(yōu)化前后對比圖Fig.12 Comparison before and after edge optimization
該部分將展示通過上述內(nèi)容結(jié)合完成的局部風格遷移圖像,其主要分為背景局部風格遷移和人像局部風格遷移。背景風格遷移為現(xiàn)實圖片中的人像保持原有樣式不變,圖片背景的風景進行風格遷移。人像風格遷移為現(xiàn)實圖片中的人物背景保持原有樣式不變,圖片中人物進行風格遷移。具體實驗結(jié)果如圖13。
圖13 局部寫實感漫畫風格遷移圖Fig.13 Transference diagram of partial realistic comic style
通過三部分的展示很好地實現(xiàn)了圖像局部風格遷移。證明了該模型可以自由地控制圖片中人像或者背景部分的風格遷移,同時用戶可以自由地將兩者進行切換,很好地豐富了風格遷移的使用方法。
本文提出了ExpressionGAN和SceneryGAN,并且提出了全新的局部寫實主義動漫模型將ExpressionGAN和SceneryGAN結(jié)合運用到模型中實現(xiàn)局部風格遷移。ExpressionGAN針對AnimeGAN改進如下:
(1)ExpressionGAN將AnimeGAN中的反向殘差塊(Inverted-Residual-Block)改為擠壓激勵殘差塊(Squeezeand-Excitation-Residual-Block)。
(2)ExpressionGAN更改了AnimeGAN所提出的損失函數(shù),將原文中所采用的YUV通道輸入轉(zhuǎn)變?yōu)長AB通道輸入。
(3)ExpressionGAN在AnimeGAN網(wǎng)絡(luò)中的生成器和鑒別器分別添加漫畫人臉檢測機制。通過上述方法很好地改善AnimeGAN生成圖片中人物臉部特征丟失和生成圖片偏暗的問題。
提出的SceneryGAN針對CartoonGAN改進為:將原網(wǎng)絡(luò)中的標準卷積塊(Conv)替換為深度可分離卷積(DSConv)。通過改進大大加快了CartoonGAN訓(xùn)練速度,同時消除了訓(xùn)練過程中生成圖片出現(xiàn)不穩(wěn)定像素塊的問題。
本文所提出的新模型架構(gòu)運用了Deeplabv3+對輸入的內(nèi)容圖片進行人像切割,隨后經(jīng)過邊緣優(yōu)化處理得出優(yōu)化后的mask圖。將內(nèi)容圖像分別經(jīng)過ExpressionGAN和SceneryGAN得出整體風格遷移圖,得到整體風格遷移圖后將整體風格遷移圖像和mask圖進行圖像融合,得出局部人像風格遷移圖像和局部背景風格遷移圖像。最后將局部的人像遷移圖片或者局部的背景遷移圖片和原輸入圖片相融合得到局部風格遷移圖。
雖然本文的改進有著不錯的效果,但是仍然存在著一些缺陷有待后續(xù)改進,例如:人物臉部細節(jié)中線條過粗不能精細地還原原始圖片人物的臉部特點。同時本文方法現(xiàn)在僅局限于圖片,希望未來通過改進可以將這個方法使用于視頻文件中,這樣可以更好地投入實際應(yīng)用。