?

基于生成對抗網絡的圖像動漫化

2022-07-29 06:22翟慧聰王利群
計算機與現代化 2022年7期
關鍵詞:動漫損失卷積

翟慧聰,張 明,鄧 星,王利群

(江蘇科技大學計算機學院,江蘇 鎮江 212100)

0 引 言

圖像動漫化,像其他各種形式的藝術品一樣,是根據現實世界的情景創建和改造的。但是,想要給現實場景用手工的方式賦予動漫樣式是很耗時的,而且還需要大量專業的藝術技巧。為了能夠獲得高質量的動漫化圖像,藝術家們必須繪制出每一條線,并對所在的目標場景中各個顏色的區域添加一定的陰影。然而,現有的一些具有標準特性的圖像編輯軟件或者算法無法產生令人感到滿意的動漫化效果。所以,能夠將現實世界中的圖像自動轉換為高質量動漫風格的圖像的特殊技術是很有用的,對于藝術家來說,不僅可以避免重復的工作,而且能夠節省大部分的時間,讓他們可以投入更加具有創造性的工作中。

在非照片級且真實感渲染的領域[1],以藝術的方式對圖像進行風格化[2-3]已經得到了廣泛的研究。傳統的方法可以給特定樣式研發專用的算法,但這種方法需要付出巨大的財力和人力才能模仿某些藝術家的獨特風格。

近年來,基于學習的風格遷移方法[4]已經引起了很大的關注,特別是生成對抗網絡的提出,可根據所提供的樣式來對圖像進行風格化。Mirza等人[5]提出將傳統GAN(Generative Adversarial Network, GAN)擴展成一個條件GAN(Condational Generative Adversarial Network, CGAN),通過增加額外的輸入層將輔助信息輸入生成網絡和判別網絡,以此來實現條件模型,但生成的動漫圖像大部分含有偽影,并且有模糊的特征,圖像質量并不在人類視覺可接受范圍內。Isola等人[6]提出pix2pix模型,是一種基于條件GAN的圖像翻譯,將輸入圖像作為條件,學習從輸入圖像到輸出圖像之間的映射,雖說效果非常好,但是需要配對的數據集。所以為了解決該局限,Zhu等人[7]探索以循環方式制定模型來實現高質量的風格遷移,提出了CycleGAN(Cycle consistant Adversarial Network, CycleGAN)。與普通GAN不同的是該網絡由2個生成網絡和2個判別網絡組成,形成一個對偶結構,其顯著特征是該模型使用未配對的照片和動漫圖像進行訓練,解決了獲取配對數據集較難的問題。盡管如此,當面對藝術家在不同用例中的不同需求時,只是簡單地改變數據集是無用的,例如Chen等人[8]提出的專門為圖像動漫化而設計的CartoonGAN,它是一種新穎的具有邊緣損失的GAN框架,并且在某種情況下取得相對較好的效果,但是直接使用黑盒模型訓練數據會降低模型的通用性和圖像風格化的質量,在有些情況下會導致不好的結果。Wang等人[9]針對上述問題,做了大量的對人類繪畫行為和動漫形象的觀察,提出一種白盒模型,將圖像分解成3個動漫表示[10],即surface表征、structure表征和texture表征,通過平衡每個表示的權重,可以定性、定量地生成用戶偏好的動漫化圖像。

盡管基于學習的風格化已取得了巨大的成功,但這些學習方法中并沒有添加類似筆畫的紋理,導致生成的圖像效果比較相似。本文網絡模型以White-BoxGAN為基礎,主要學習3種動漫表示的提取和生成動漫化圖像,生成網絡為了應對寫實圖像和動漫圖像之間的大量樣式變化,在VGG19網絡的高級特征圖中引入了L1稀疏正則化[11]來作為內容語義損失,判別器網絡則采用了邊緣增強的對抗性損失,從而可以保留清晰的邊緣。藝術家們在畫動漫時,都是先畫出簡單的線條勾勒,所以本文提出改進texture表征的表示方法,用手繪圖代替顏色隨機失活[12]的表達方式,并結合3種表征損失訓練模型。

1 相關介紹

1.1 生成對抗網絡

生成對抗網絡[13]是由蒙特利爾大學Ian Goodfellow在2014年提出的機器學習架構,主要是由2個網絡組成,如圖1所示,一個是生成網絡G(Generator),另外一個是判別網絡D(Discriminator),生成網絡負責生成圖像,它的輸入是一個隨機噪聲z,通過該噪聲生成圖像G(z),由判別網絡來判斷這張圖像是真實的還是G生成的假圖像,即輸入為圖像image,輸出為0、1值,0表示圖像是由G生成的,1表示該圖像是真實圖像。其基本思想是:在訓練過程中,生成網絡盡可能去生成真實圖像來欺騙判別網絡,而判別網絡則是盡可能把生成的圖像和真實圖像區分出來,這樣就形成了動態的博弈過程。在最好的狀態下,生成網絡可以生成能夠“以假亂真”的圖像G(z),對于判別網絡來說,它很難判斷出G生成的圖像到底是不是真實的,此時生成網絡生成的圖像效果是最好的,質量也是最高的。對應的目標函數公式如下:

Ez~Pnoise(z)log(1-D(G(z)))

(1)

其中,Pdata是真實數據的概率分布,Pnoise是隨機噪聲數據的概率分布,E是期望,x是生成圖像數據,z是隨機噪聲數據。

圖1 生成對抗網絡結構圖

1.2 VGG19

卷積神經網絡在圖形識別上具有出色的能力,尤其是在2014年ILSVRC比賽中取得優異成績的VGGNet[14]。而預訓練的卷積模型中,VGG19[15]有更快的收斂速度和較好的泛化特性,整個模型中全部使用3×3卷積核,可以更好地保留圖像的性質,不論是輪廓線條還是顏色紋理。本文采用VGG19的前4個卷積塊,輸入的是特征,輸出的是對應特征的圖像。

2 網絡模型

本文采用GAN模型進行圖像動漫化,主要分成2部分,如圖2所示,一部分是生成網絡,生成網絡主要是根據輸入的原圖像去生成動漫圖像,另一部分是判別網絡。首先提取動漫圖像和生成圖像的surface表征、structure表征、texture表征,然后將動漫圖像和生成圖像的surface表征和texture表征輸入判別網絡,生成圖像的structure表征和生成網絡的原圖像輸入VGG19中,分別計算surface表征損失、structure表征損失、texture表征損失和語義內容損失,再不斷迭代,優化損失,更新網絡參數。

圖2 本文模型網絡結構圖

2.1 生成網絡

生成網絡是一個類U-Net[16]的全卷積網絡,主要功能是輸入一批真實圖像,生成一批動漫的圖像。本文的生成網絡模型如圖3所示,輸入為真實圖像,先進行批歸一化[17],使用一個7×7的卷積層提取低維度特征,接著進入2個下采樣層,每層卷積都是用3×3的SAME卷積,這樣可以避免特征圖組在合并之前的裁邊工作,后面都接著一個Leaky ReLU激活函數,可以有效防止訓練過程中神經元死亡問題,這里使用元素積的方式進行連接。然后進入4個殘差塊組來提取高維特征,每個殘差塊都是2層的3×3的SAME卷積,中間加上Leaky ReLU激活函數,殘差塊組的輸入輸出均使用加和方式跳躍連接[18]。之后經過2個雙線性插值的上采樣層,每層卷積都是用的3×3的SAME卷積加一個Leaky ReLU激活函數和雙線性插值方法,即使上采樣可以補充圖像的部分信息,但是還需要連接上淺層分辨率較高的圖像特征,可以避免補充的信息不完整,當卷積的次數越來越多時,提取的特征就具有深層的語義特征,也就更加有價值。最后經過一個7×7的卷積層生成圖像。本文的這種結構可以顯著地提高網絡深度,并充分利用殘差塊組結構對高維特征圖中的每個通道進行特征提取,可以獲取更豐富的高維信息。

圖3 生成網絡結構圖

2.2 判別網絡

判別器網絡基于PatchGAN[19]的思想,主要的功能是判斷輸入是真實圖像還是生成的圖像。當判別網絡輸出為0.5時,表示判別網絡已經分辨不出真實圖像和生成圖像了,也就表示生成網絡的輸出已經非常接近清晰圖像了。當判別網絡輸出不為0.5時,判別網絡會為生成網絡提供下降梯度,優化生成網絡的生成效果。本文的判別網絡如圖4所示,由7個卷積層組成,前6層是一樣的,每一層都是3×3的SAME卷積加上譜歸一化和一個Leaky ReLU激活函數,最后一層是1×1的SAME卷積加上譜歸一化[20]進行輸出,輸入為生成圖像和動漫圖像,判別網絡將輸入圖像隨機裁剪成多個N×N的圖像塊(Patch),再將這些圖像塊分別送入判別網絡,取多個圖像塊的平均值作為最終的判斷結果。與普通GAN的判別網絡相比,這種結構的輸出可以看成一個矩陣而不是一個數,矩陣中每一個元素都代表著原圖中某一塊區域的判斷結果。這就使得判別網絡可以對圖像多個區域進行綜合評價判斷,可以穩定訓練的同時并強制實施更多的約束,從而突出原圖的高頻細節,有助于生成網絡生成更加清晰銳利的邊緣,增強了對細節的判別能力。

圖4 判別網絡結構圖

2.3 損失函數

本文損失函數主要包括surface表征損失、structure表征損失、texture表征損失、語義內容損失和總變化損失。structure損失和語義內容損失采用在ImageNet上訓練過的VGG19作為特征提取網絡,計算生成圖像和真實圖像的深層特征之間的不同。

1)surface表征。藝術家用粗刷繪制草稿,表示圖像的平滑表面信息,將輸入圖像通過導向濾波器[21]處理,可以得到表面的表示結果,這樣可以保持圖像邊緣,同時平滑圖像,去除圖像的紋理和細節信息,保持全局語義結構。計算surface表征損失公式如下:

Lsurface(G,D)=logD(Fgf(Ic,Ic))+log(1-D(Fgf(G(Ip),

G(Ip))))

(2)

其中,Lsurface為表面損失,G為生成網絡,D為判別網絡,Fgf表示導向過濾器方法,Ic表示輸入動漫圖像,Ip為輸入的寫實圖像。

2)structure表征。把一些有相似特征的像素聚合,形成一些更有代表性的元素,這就使得全局內容相對平坦。作為圖像預處理的步驟,可以在不犧牲過多精度的同時降低維度,增加處理速度,并獲取全局結構信息和稀疏色塊。通過超像素方法處理,得到結構的表示結果,但是標準的超像素處理方法對于區域像素賦值采用均值,會降低對比度,因此本文采用了自適應[22]的處理方法。計算surface表征損失公式如下:

Lstructure=‖VGG(G(Ip))-VGG(Fst(G(Ip)))‖

(3)

其中,Lstructure為結構損失,Fst表示求超像素圖像的方法,VGG( )表示提取特征。

3)texture表征。動漫圖像的高頻功能是關鍵學習目標,亮度和顏色信息使得模型可以輕松區分動漫圖像和現實世界照片。本文提出用類似鉛筆手繪效果的結果來表示圖像的細節和邊緣信息,從而得到紋理的表示結果,保留高頻紋理,減少色彩的干擾。計算texture表征損失公式如下:

(4)

Ftx=(ω1θcosαcosβ+ω2θcosαsinβ+θsinα)×255

(5)

Ltexture(G,D)=logD(Ftx(Ic))+log(1-D(Ftx(G(Ip))))

(6)

其中,Ltexture為紋理損失,Ftx為求紋理表示的方法,α=π/2.2,β=π/4,δ=0.1。

4)其它損失。Lcontent為內容語義損失,如公式(7)所示,Ltv為總變化損失,如公式(8)所示,Ltotal為總損失,如公式(9)所示。

Lcontent=‖VGG(G(Ip))-VGG(Ip)‖

(7)

Ltv=‖?x(G(Ip))+?y(G(Ip))‖/(H×W×C)

(8)

Ltotal=λ1Lsurface+λ2Lstructure+λ3Ltexture+λ4Lcontent+λ5Ltv

(9)

其中,H、W為圖像的長與寬,C為通道,λ1=1,λ2=2×103,λ3=10,λ4=2×103,λ5=104。

3 實驗與結果分析

3.1 實驗過程

本實驗采用Python3.6、Tensorflow1.13.0、CUDN10.0.1和cuDNN7.4.0來搭建網絡模型,硬件平臺為GeForce NVIDIA 2080Ti GPU,批處理參數為16,訓練輪次為50000,學習率為2e-4,優化器為Adam[23]。

訓練集中寫實風景圖像采用train2014數據集,人臉圖像采用CelebA-HQ[24]數據集,動漫圖像是從動漫影片中截取的關鍵幀。訓練集訓練之前需要預處理成256×256,首先對生成網絡進行預訓練,用10000張風景圖像,每批次16張圖,一共迭代10000次。用預訓練的生成網絡作為初始化,這樣不僅可以加快梯度下降的收斂速度,獲得一個相對較低的模型誤差,還可以降低初始化不當導致梯度消失或梯度爆炸的問題。然后再用相同的方法把動漫圖像與風景圖像一塊訓練生成網絡和判別網絡,每5張圖像里有1張人臉圖像,訓練迭代50000次。

3.2 實驗結果分析

圖5、圖6、圖7分別是在surface表征、structure表征、texture表征上的處理結果,每張圖左上統一為原圖像,左下為對應的動漫化圖像,右側為對應的表征處理結果。圖8為多種損失組合實驗的結果,左上是Lcontent和Ltv生成的圖像,只是內容損失和對抗性損失并不能有力地約束動漫化的風格,生成效果較差。右上是加入Lsurface生成的圖像,更具平滑陰影的特征。左下是加入Lstrcture生成的圖像,里面代表性物體邊緣更加清晰。右下是加入Ltexture生成的圖像,紋理細節相對簡單,實驗結果表明,加入這3種損失是合理且有效的。針對不同物種在不同模型上的動漫化結果如圖9所示。

圖5 原圖像與動漫化圖像在surface表征上的對比圖

圖6 原圖像與動漫化圖像在structure表征上的對比圖

圖7 原圖像與動漫化圖像在texture表征上的對比圖

圖8 不同損失項組合的對比圖

圖9 不同物種在不同模型上動漫化的實驗結果

圖像動漫化好壞的標準是多方面的,為了充分評估動漫化圖像的效果,不僅需要人類視覺上主觀的評價,而且還結合了客觀的評價。本文采用PSNR[25]和SSIM[26]這2個指標對動漫化圖像進行定量評估,用FID[27]指標來評判模型的好壞。

PSNR為峰值信噪比,即圖像的峰值信號能量與噪聲平均能量的比,PSNR的值越高表示圖像動漫化效果越好,計算公式如下:

(10)

(11)

表1 各物種在不同模型下的PSNR 單位:dB

SSIM為結構相似性,即在亮度、對比度、結構這3方面對2張圖像的相似度進行比較,SSIM值越高表示圖像動漫化效果越好,計算公式如下:

SSIM(x,y)=[l(x,y)α×c(x,y)β×s(x,y)γ]

(12)

其中,α>0,β>0,γ>0,x、y為2張圖像,l(x,y)是亮度比較,c(x,y)是對比度比較,s(x,y)是結構比較。不同模型下的SSIM見表2。

表2 各物種在不同模型下的SSIM

FID是綜合考慮了真實數據與生成數據的分布,通過計算2個分布的均值和協方差矩陣來比較GAN模型的質量。各個數據都是從Inception V3[27]的最后一層中獲取到的,FID數值越小說明兩者的均值和協方差越相近,即兩者的概率分布接近,計算公式如下:

FID=‖μr-μg‖2+Trance(Σr+Σg-2(ΣrΣg)1/2)

(13)

其中,Trance表示矩陣的跡(主對角線各元素的和),矩陣開根號如果為復數,則只取實部。r、g分別表示真實圖像和生成的圖像,μ表示均值,Σ表示協方差矩陣。

不同模型的FID對比如表3所示。

表3 不同模型的FID

通過實際人眼觀察和表1、表2的實驗結果可以看出,本文方法在植物和建筑上生成的動漫化效果最好。從表3可以看出,與CartoonGAN和White -BoxGAN模型相比,本文模型對不同物種進行動漫化都能取得較好的效果??偟膩碚f,在texture表征上的改進也得到了較為相符的動漫化效果。

4 結束語

本文使用深度學習及生成對抗網絡的方法對寫實圖像進行了動漫化處理,在不同物種上取得了相對較好的動漫化效果。實驗表明,這些動漫化的表達是可控的,相比其他網絡更方便調試,生成的圖像質量更高,更符合人類視覺的審美。存在的不足是,模型無法判斷寫實圖像中某些細節是否重要,表現出的風景線條有些太淺,人臉線條有些太重,若想提高動漫化效果,如何自適應處理細節是下一步的重點研究問題。

猜你喜歡
動漫損失卷積
基于3D-Winograd的快速卷積算法設計及FPGA實現
胖胖損失了多少元
卷積神經網絡的分析與設計
從濾波器理解卷積
玉米抽穗前倒伏怎么辦?怎么減少損失?
基于傅里葉域卷積表示的目標跟蹤算法
動漫二次元
鋒繪動漫
開口笑
鋒繪動漫
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合