林 錦,陳昭炯,葉東毅
(福州大學 數學與計算機科學學院,福州 350108)
中國山水畫是中國傳統繪畫藝術的重要組成部分,以山川自然景觀為主要描繪對象.中國山水畫的仿真研究始于上世紀90年代,是計算機圖形圖像領域極具挑戰性的課題之一.以往的仿真工作大多側重對山水畫筆法和局部模型的仿真,近期有文獻對其構圖和整體藝術風格進行仿真,但是對整體色彩的仿真及控制的研究較少.而中國山水畫的色彩在藝術表現力方面有重要的作用.本文即著重研究如何在仿真生成山水畫的過程中實現對色彩的控制.對中國山水畫色彩仿真及控制的研究有助于該類畫作設色技巧的傳承與發展,可應用于藝術教育、設計模擬和數字娛樂等領域.
傳統的中國山水畫仿真方法主要可分為兩類:1)通過對山水畫的筆觸、繪制過程進行建模來仿真山水畫特有的筆法[1-4],該類方法可完成局部對象的繪制,但不易生成完整山水畫作;2)對描述山水場景的2D或3D的圖像進行紋理映射[5,6],使之具有山水畫的藝術風格,該類方法本質上是渲染而不是山水畫生成.
隨著深度學習的發展,產生了以下兩類仿真方法:
1)采用風格傳遞思想,通過訓練神經網絡,賦予用戶輸入的圖像以山水畫的藝術風格.Wang等人[7]、Gatys等人[8]通過學習獲得一個風格網絡,當用戶輸入任意一張圖像,神經網絡可將其轉換成具有藝術風格的圖像.這類方法本質上并不能實現中國山水畫的仿真生成,只是使內容圖具有了山水畫的風格特點,且未涉及中國山水畫局部色彩可控的仿真生成.
2)基于生成對抗網絡(Generative Adversarial Nets,GAN)的圖像異質轉換生成方法,通過學習山水畫數據樣本在語義布局圖約束條件下的分布,進而仿真生成中國山水畫.圖像異質轉換是指不同表現方式、不同來源獲得的不同質量的圖像之間的轉換.Isola[9]等人提出基于條件生成對抗網絡(Conditional Generative Adversarial Nets,CGAN)的像素級圖像異質轉換通用解決方案,用生成方式實現了圖像異質轉換.語義布局標簽圖到場景圖像的轉換是圖像異質轉換的一種,Park等人[10]認為在生成器中采用傳統歸一化層會洗去語義布局標簽圖的語義信息,因此提出空間自適應歸一化(SPatially-Adaptive(DE)normalization,SPADE),進而設計了高斯條件生成對抗網絡結構(Gaussian Generative Adversarial Network,GauGAN),其生成器采用變分自動編碼結構,在測試生成器時,其編碼器可作為樣式指導網絡,控制生成圖像的風格;Zhang等人[11]基于CGAN思想提出了一個基于樣例圖的圖像異質轉換通用框架,生成器可將輸入圖像轉換為具有樣例圖風格的真實圖像.以上方法都可實現基于語義布局標簽圖生成復雜場景圖像,且都可實現基于樣例圖的風格(紋理、色彩)可控圖像生成,但這些網絡結構和色彩控制方法都不是針對山水畫生成問題設計的.
顧楊等人[12]將CGAN應用于山水畫仿真生成,主要關注生成的仿真山水畫的構圖完整性、筆觸真實感,設計了多尺度特征融合的網絡結構(Multi-scale Feature Fusion CGAN,MSFF-CGAN),實現了布局標簽圖到仿真山水畫的生成,用戶可通過編輯布局圖,實現對畫作空間進行編輯的效果,是利用GAN進行山水畫仿真生成的一項有意義的工作.但對仿真生成的山水畫的色彩逼真度、可控性未加以考慮,生成結果存在植被顏色失真現象,且由于布局標簽圖的設計不足導致生成結果產生語義失真現象,同時網絡結構參數量較大.
針對上述問題,本文從標簽圖設計、網絡結構改進兩個方面進行了研究,提出一種局部色彩可控的中國山水畫仿真生成方法.主要結果如下:1)提出并設計了一種面向山水畫的多語義標簽圖,采用分層思想,按照內容、技法、顏色3個語義層次將山水畫中的對象歸納為6類,并設計了色塊與多語義內容對應的標簽圖.這種多語義標簽圖方便了用戶與網絡的交互,為此,需要用“手繪山水畫-多語義標簽圖”數據對訓練網絡,所以,本文提出了山水畫多語義標簽圖的分層分割生成算法,用于構造訓練數據集;2)提出了多尺度顏色類別關注的條件生成對抗網絡(Multi-scale Color Class Concerned CGAN,MS3C-CGAN).通過引入SPADE殘差塊(SPADE Residual Block,SPADE ResBlk)、雙線性上采樣結構對文獻[12]的生成器進行改進,改進后的網絡不僅在山水畫原有生成效果的基礎上增加了對顏色的仿真與控制,同時參數量相比于原生成器減少了24.45%.實驗結果表明,本文方法生成的仿真中國山水畫在保證構圖完整性的基礎上,色彩的表達和控制上更靈活,語義內容更為準確.同時還可以通過對抽象的多語義標簽進行設計和編輯實現對山水畫作圖像空間具象的植被色彩的編輯,展現了對山水畫仿真結果色彩的一種方便的、可控的手段,在現實生活中可應用在藝術教育、設計模擬等方面.
本文算法的基本過程是以多語義標簽圖為輸入,系統利用本文方法訓練的MS3C-CGAN網絡生成布局相仿、多種語義相對應的仿真中國山水畫.如圖1所示,圖中下方為顏色標簽與語義的對應關系.

圖1 本文算法流程圖
對中國山水畫設色、繪制技法進行分析發現,畫家取材于自然場景,運用不同的色彩來表現不同時令的山水風貌,且通常在植被這類景物上著色較為豐富,春季植被的顏色包含紅、黃、橙等暖色,展現生機的綠色,并配以中性色(黑、灰);夏季草木郁郁青青,主要以綠色、青藍色等冷色為主;秋季草稀葉疏,色調偏紅;冬季落木蕭蕭,以青黛色為主,偏黑灰(中性色).畫家對遠處、近處植被的刻畫技法不同,山石上的苔蘚、遠處的植被技法偏寫意,近處的植被刻畫較為細致、顏色較為鮮明,本文以寫實技法稱呼這種相對細致的手法.由此可見:山水畫色彩構成中植被的色彩是關鍵的部分,而植被按技法大致可分為寫意植被和寫實植被;寫意植被通常著色低調,視覺效果上顏色的差異較小,因此不再根據顏色進行細分;寫實植被是展現色彩的主要對象,按顏色又分為中性色植被、暖色系植被、冷色系植被3類.
因此,本文采用分層思想對山水畫中景物進行分類,如圖2所示,第1層按照內容語義分為云水、植被、山石,第2層按照技法語義將植被分為寫意植被和寫實植被,第3層按照顏色語義將寫實植被分為中性色植被、暖色系植被、冷色系植被.
布局標簽圖是指用不同色塊指代山水畫中不同類別的語義內容,同時每個色塊外形還應具有其內容的大致輪廓信息.確定山水畫的景物類別后,進一步本文設計了山水畫的多語義標簽圖,如圖2第1行所示為山水畫及其對應的多語義標簽圖,圖2中云水、山石、寫意植被、中性色植被、暖色系植被、冷色系植被內容圖左下角的顏色小方塊為各語義的顏色標簽.

圖2 山水畫中對象的分層分類示意圖
本文網絡結構的設計目標是實現從多語義布局標簽圖到仿真山水畫的轉換,且后者的紋理筆觸、色彩具有藝術真實感,在這一前提下,網絡結構盡可能輕量化.
本文基于CGAN思想進行網絡結構設計.MSFF-CGAN、GauGAN均基于CGAN思想,兩者的區別主要在生成器部分.如圖3(a)所示,MSFF-CGAN的生成器采用U-Net[13]的“編碼-解碼”和長連接結構(圖3(a)中生成器部分中的箭頭示意長連接),其輸入為布局標簽圖;如圖3(b)所示,GauGAN的生成器為類似“解碼”的結構,由多個SPADE殘差塊搭建得來,通過這一結構將布局標簽圖的信息饋送給生成器,而生成器的輸入為采樣于某一分布的向量,該分布所需的均值、方差信息由編碼器對真實圖進行編碼得到的潛在表示提供.根據設計目標本文需要一個能夠生成彩色山水畫的生成器結構.本文用GauGAN來實現3-標簽圖到仿真中國山水畫的轉換,對仿真結果進行分析發現,生成圖存在植被顏色失真的問題;用新設計的多語義標簽圖訓練并測試了MSFF-CGAN的生成器和GauGAN的生成器,發現后者生成的山水畫始終存在較為嚴重的顏色失真問題,因此本文生成器的框架仍采用U-Net結構.

圖3 3種網絡結構對比圖
分析發現,GauGAN與MSFF-CGAN的生成器參數量占比大,均在95%以上,且兩者的參數量差異主要在于非鑒別器部分.MSFF-CGAN的生成器內部模塊運用了C型短連接(短連接)結構,該結構增強了對山水畫紋理筆觸的學習,但使得卷積參數量增加.GauGAN生成器中未使用短連接結構,但其運用SPADE殘差塊構建的生成器仍可實現對山水畫紋理筆觸的學習,且參數量較少.因此本文刪除MSFF-CGAN生成器中的短連接,引入SPADE殘差塊重構生成器的解碼器部分,構建出一個更為輕量的網絡結構MS3C-CGAN,本文網絡結構示意圖如圖3(c)所示.接下來第3部分展開介紹改進的網絡結構細節.
文獻[12]采用U-Net的結構,并設計了短連接結構,構建了UC-Net生成器.短連接的具體操作是級聯、復用前兩層的特征圖,該操作增加了卷積核數量,最終使得計算量增加.本文的目標是用能夠實現短連接功能的結構替換短連接,構建出一個更為輕量的生成器.如圖4(b)所示,SPADE殘差塊相比于傳統的卷積模塊多了一條旁路特征流,也是特征的復用,但是是以直接相加的方式,未增加卷積的通道數;其內部的SPADE模塊通過對標簽圖進行額外卷積來輸出歸一化層所需的仿射參數(如圖4(a)),可實現短連接保留標簽圖信息的功能.

圖4 SPADE和SPADE殘差塊示意圖
因此,本文刪去UC-Net的短連接,用SPADE殘差塊、雙線性上采樣結構構建解碼器部分的9-15層,得到U-SPA-Net生成器,其原理圖如圖5所示.由于網絡層數較多,無法全部畫出,圖5僅展示了生成器的設計原理,SPADE和SPADE ResBlk內部具體參數請見圖4,其他各層卷積核大小均為4×4,其它參數見表1.

表1 本文生成器U-SPA-Net 參數表
本文生成器U-SPA-Net的參數量約為118.26M,比UC-Net減少了24.45%,實現了網絡的輕量化,減少了卷積計算量,改善反卷積上采樣引起的棋盤狀偽影[14]現象;鑒別器采用與文獻[12]相同的PatchGAN結構[9].
MS3C-CGAN網絡結構如圖5所示,全網參數量為125.83M,比MSFF-CGAN減少了23.51%.

圖5 本文MS3C-CGAN網絡結構圖
MS3C-CGAN網絡的訓練輸入為成對的“手繪山水畫(x)-多語義標簽圖(y)”數據.該模型的輸入還包含一個采樣于高斯分布pz(z)的隨機噪聲z[15].生成器G將輸入圖像(z,y)轉化為生成圖像G(z,y),鑒別器D鑒別二元組(G(z,y),y)和(x,y)的真假.生成器G盡力讓鑒別器將(G(z,y),y)鑒別為真,鑒別器D要盡力將真實數據和生成數據區分開,當鑒別器無法區分真實數據和生成數據時,認為生成器G達到最優.研究表明,對抗損失結合傳統的L1范數損失有助于減少模糊,提高生成圖的真實感[16,17].因此,本文設計的MS3C-CGAN網絡訓練的目標函數如下(其中λ表示正則系數):

MS3C-CGAN網絡的訓練需要大量的“手繪山水畫-多語義標簽圖”數據對.本文以文獻[12]收集的手繪山水畫數據集為基礎,另外還從國內山水畫網站收集同類型的畫作來擴充該數據集.采用圖像處理工具祛除新增手繪山水畫的題字、水印、非自然景觀的物體,篩除數據集中以下幾種情況的畫作:
1)山石和植被的紋理細節模糊;
2)山石部分整體的亮度顯著低于植被部分;
3)云水、山石、植被3部分的比例不協調.
為便于模型的訓練,將手繪山水畫裁剪為256×256大小的圖像.裁剪過程選擇那些云水、山石、植被3部分比例和諧的情況,最終整理篩選出1046對數據.
本文需要獲取手繪山水畫的語義內容,以形成“色塊—內容”對應的標簽圖,為此設計了多語義標簽圖的分層分割生成算法.山水畫中景物交融、虛實結合,尤其是植被細分后的景物之間更為貼近交融,因此在獲取多語義標簽圖時只需提出對象的大致輪廓,在每類內容的邊界上允許有一定的誤差.
手繪山水畫中留白部分多為云、水,較深色的多為山石,更為深色的多為植被.根據這一特點,第1層以RGB值將手繪山水畫的像素聚類為云水、山石、植被3個初始類;
由于第1層聚類結果較粗糙,初始山石類中可能包含淺色的寫實植被類像素,第2層以紋理特征為主結合顏色特征采用閾值法分出寫意植被、寫實植被2類;第3層進一步以顏色特征將寫實植被細分為中性色、暖色、冷色3類.最終根據像素的標注類別賦予相應的顏色標簽,生成多語義標簽圖.具體步驟如下:
算法1.山水畫多語義標簽圖的分層分割算法
輸入:手繪山水畫原作I
輸出:手繪山水畫對應的多語義標簽圖Layout
Step 1.第1層,對圖像I采用基于R、G、B的顏色聚類,生成云水、山石、植被初始類像素集合,分別記為X1、X2、X3;
Step 2.對圖像I采用簡單線性迭代聚類超像素分割[18]方法生成鄰域關聯的N個超像素塊{Si,i=1,2,…,N};

(1)
(2)
Step 4.記第2層分類結果為Yj,j=1,2,3,4,其中Y1:云水類,Y2:山石類,Y3:寫意植被類,Y4:寫實植被類;Y1=X1,將Y2、Y3、Y4初始化為空;
Step 5.i=1,2,…,N,執行:

a)Y2=Y2∪(X2∩Si);
b)若ti≤α則Y3=Y3∪(X3∩Si);
c)若ti>α則Y4=Y4∪(X3∩Si);

a)若ci∈A則Y4=Y4∪(X2∩Si)∪(X3∩Si);
b)若ci?A則Y2=Y2∪(X2∩Si),
Y3=Y3∪(X3∩Si);
3)其它情況:Y2=Y2∪(X2∩Si),Y3=Y3∪(X3∩Si);
Step 6.記第3層分類結果為Zk,k=1,2,3,其中Z1:寫實植被類的中性色植被類,Z2:寫實植被類的暖色系植被類,Z3:寫實植被類的冷色系植被類;將Z1、Z2、Z3初始化為空;
Step 7.i=1,2,…,N,執行:
若Y4∩Si≠?,則:
a)若ci∈B,則Z1=Z1∪(Y4∩Si);

Z2=Z2∪(Y4∩Si),否則Z3=Z3∪(Y4∩Si);
Step 8.賦予集合Y1,Y2,Y3,Z1,Z2,Z3相應的顏色標簽,生成多語義標簽圖Layout.
上述fhsv(x)=y表示將RGB顏色空間的值x=[r,g,b]變換到HSV顏色空間[20],結果為y=[h,s,v];V表示像素集合,W(V)表示V中顏色屬于暖色系的所有像素構成的集合;A表示淺綠色、黃色、粉色在HSV顏色空間的取值區間;B表示中性色顏色在HSV顏色空間的取值區間;超像素中初始植被、山石類像素的占比閾值分別為r1、r2,默認值均取0.6;α表示灰度共生矩陣非相似度統計量閾值.
本文訓練數據構造在windows的Matlab環境下實現.MS3C-CGAN在tensorflow環境下實現,硬件配置為GPU Tesla P100.“手繪山水畫-多語義標簽圖”的訓練樣本970對,測試樣本76對.使用adam優化器訓練MS3C-CGAN,學習率設置為0.0002,正則系數設置為100,迭代訓練200次.
與文獻[12]生成效果對比如圖6所示,文獻[12]方法的輸入是3-標簽圖,本文方法的輸入是多語義標簽圖.為了驗證本文方法的色彩仿真效果,選取帶有中性色植被、冷色系植被、暖色系植被的山水畫原圖,展示本文方法和文獻[12]的仿真生成效果對比,如圖6(a)-圖6(d)所示,本文方法生成的山水畫的色彩更接近原圖,更具藝術感;圖6(e)展示了本文方法對文獻[12]失真問題的改進效果.原圖下半部分兩株灌木之間有一片草地,文獻[12]生成圖中為一汪水,語義內容失真,而本文方法生成圖中為植被,語義內容更準確.

圖6 本文方法與文獻[12]生成效果對比
為了客觀評價仿真生成的山水畫圖像的質量,本文對比了二者與原圖的峰值信噪比(Peak Signal to Noise Ratio,PSNR),從表2可以看出本文方法生成的山水畫的PSNR值高于文獻[12]方法.

表2 文獻[12]與本文方法生成效果PSNR對比
此外,本文采用圖像紋理的粗糙度[12,21]來評估生成的山水畫和原圖在3類繪制景物上的相似性.粗糙度是計算每個像素點垂直和水平方向灰度變化最大的鄰域,通過這個鄰域的均值差值來反映圖像的紋理信息.因為粗糙度度量是在灰度圖上進行,無顏色信息,所以采用3-標簽圖作為3類景物的掩膜來計算其粗糙度.表3展示了原圖、文獻[12]方法、本文方法生成的山水畫分別在云水、山石和植被上的粗糙度對比,可以看出本文方法略占優勢.由上可知,本文的網絡結構在參數量減少23.51%的情況下,實際仿真效果還得到了提升.

表3 原圖與生成的山水畫在3類對象上的粗糙度對比
為了檢驗本文設計的多語義標簽圖能否改善GauGAN的色彩仿真效果,本小節用“手繪山水畫-多語義標簽圖”數據對訓練GauGAN.圖7為本文方法與GauGAN生成效果的對比圖.

圖7 本文方法與GauGAN生成效果對比
從視覺效果上看,GauGAN和本文方法生成的仿真山水畫的布局、筆觸紋理均和標簽圖、原圖相符;從色彩上看,GauGAN生成圖帶有彩色,色彩仿真效果有些微改善,但整體色彩和原圖差異仍然較大,而本文方法生成圖的色彩和原圖較為接近,更具色彩藝術真實感.
本文還對比了二者與原圖的峰值信噪比,從表4可以看出本文方法生成的山水畫的PSNR值高于GauGAN.

表4 GauGAN與本文方法生成效果PSNR對比
5.4.1 本文局部色彩可控的編輯生成效果
本文的目標是訓練一個能夠仿真生成中國山水畫的網絡,實際應用時用戶以數據集的多語義標簽圖為底本進行編輯,構造出符合自身植被顏色類別要求的多語義標簽圖,也可用自構的多語義標簽圖,輸入網絡生成仿真山水畫.
圖8中原圖左上角為其對應的多語義標簽圖,生成圖左上角為編輯得到的多語義標簽圖.如圖8所示,本文方法基本正確生成了與所編輯標簽對應的顏色類別的植被,實現了對生成圖中植被顏色類別的控制,在實際應用中用戶可以編輯布局標簽圖,一定程度上實現繪畫色彩的構思、仿真創作.

圖8 植被色彩可控的山水畫仿真實驗效果展示
5.4.2 本文其它實驗結果
本小節進一步展示了算法更多的應用結果.如圖9所示,本文方法能夠生成“青綠山水”、“淺絳山水”、“水墨山水”色彩風格的山水畫.

圖9 基于多語義標簽圖生成山水畫效果展示
本文針對布局標簽圖到仿真中國山水畫的轉換生成問題進行研究,采用分層思想提出并設計了一種面向山水畫的多語義標簽圖,并相應地設計了分層分割算法生成了多語義標簽圖,構造了“手繪山水畫-多語義標簽圖”數據對用于網絡結構的訓練;引入SPADE殘差塊、雙線性上采樣結構對MSFF-CGAN的生成器進行改進,使得其參數量減少了24.45%,獲得了更為輕量的網絡結構MS3C-CGAN.實驗結果表明,相比于現有方法,本文方法仿真生成的山水畫更具色彩藝術真實感,語義內容更為準確.本文層次設計方式可以推廣到其他語義類型,提供了山水畫后續標簽圖的擴展和豐富的一種思路和方法.
本文算法也存在一些不足,如生成的植被紋理不夠細膩、缺少小舟、人物、太陽等小景,這些不足將在后續工作中采用數據及網絡結構增強、多尺度分析、語義分割等方法進行改進和完善;同時后續還將對山水畫的風格進行細分,探索不同風格的特點,以期在網絡生成過程中進行選擇和控制.