黎 智,徐 丹
基于卷積神經網絡的蠟染染色模擬
黎 智,徐 丹
(云南大學信息學院,云南 昆明 650504)
蠟染是中國少數民族的傳統技藝,廣泛流行于中國西南地區。蠟染模擬是針對布料染色進行模擬,主要有裂紋模擬和布料染色模擬2個關鍵工作。此前的蠟染染色模擬方法只能進行單色染色,且對暈染模擬效果不明顯。因此,提出一種基于卷積神經網絡的蠟染多色染色方法。首先,使用基于距離變換的方法生成裂紋,并對裂紋的形狀進行修正;然后,使用圖像標注軟件Labelme對圖像特定區域進行手動分割,以方便之后對其進行染色;最后,使用PhotoWCT算法對圖像的特定區域進行染色,并利用內容圖中的像素相似性來平滑染色后的結果,使結果更接近真實的蠟染圖像。實驗結果表明,該方法能針對圖像進行多色染色模擬,且在暈染效果方面較之此前的方法有明顯提升,更接近于真實蠟染圖像。
蠟染染色;距離變換;圖像分割;PhotoWCT算法;暈染
蠟染是一種具有獨特裝飾效果、色底白花的印染品?!顿F州通志》對蠟染的解釋是:“用蠟繪畫于布而染之,即去蠟,則花紋如繪”。在西南少數民族地區,人們崇拜自然界的萬物和鬼神,因此,將圖案印在自己的身上,不僅具有審美的功能,還能夠表達人們對自然的崇拜和敬仰。但是,傳統手工印染技術生產效率低、污染大,因此,蠟染模擬方法應運而生。
蠟染的特點主要體現在冰紋和布料染色特征上。浸染中,蠟層開裂,染料隨之滲入形成冰紋,其具有獨特的粗細、曲度、交叉、分布、形態等視覺特征。蠟染常用棉線紡布,由于紡線的交叉、重疊,產生了暈染、矩形織紋和邊緣梯度變化的布料染色特征。蠟染作品主要組成部分為圖案、冰紋和布料染色,在計算機模擬中,主要對冰紋和布料染色效果進行模擬。蠟染圖像的基本生成過程如圖1所示。

圖1 具有不同風格或特征的示例圖像
近年來,隨著深度學習的興起,卷積神經網絡(convolutional neural networks, CNN)強大的特征提取能力受到了廣泛關注,進而在計算機視覺領域得到廣泛的研究,取得了很多應用層面的成果。如喻揚濤等[1]提出的蠟染染色算法只能針對單一布料或單一顏色;而GATYS等[2]、ZHANG和DANA[3]提出的將深度卷積神經網絡應用于風格遷移方面的方法能夠將一種甚至多種風格遷移到內容圖上。本文針對蠟染布料染色這個關鍵工作采用深度卷積神經網絡進行模擬,并與真實的蠟染作品進行比較,以此證明深度卷積神經網絡在蠟染風格模擬研究上的可行性。
裂紋生成是蠟染模擬的第一步,主要包括2種方法:①基于物理建模:TERZOPOULOS等[4]引入公共圖形(graphics community)方法模擬彈性和非彈性物體的形變及裂紋,NORTON等[5]提出了彈簧質點(mass-spring)模型進行固體裂紋仿真;②基于非真實感繪制(non-photorealistic rendering,NPR):JIN等[6]提出了基于圖形處理器(graphics processing unit,GPU)的交互式大理石裂紋設計系統,LU等[7]采用了封閉形式的數學方法模擬裂紋,喻揚濤和徐丹[8]提出基于漫水思想的距離變換算法提高了裂紋生成效率。
隨著深度學習的開展,在非真實感繪制(non-photorealistic rendering,NPR)研究領域,對藝術風格圖像進行仿真模擬的研究在不斷深入。EFROS和FREEMAN[9]提出了以區塊為基礎的紋理合成算法,ZHAO等[10]提出了基于風格感知的圖像克隆算法均被應用于圖像風格遷移領域。
基于深度學習的圖像風格遷移的方法主要包括2種:①基于圖像迭代:文獻[2]提出利用CNN進行圖像藝術風格遷移,其遷移效果較先前的遷移算法有了長足的進步,LI和WAND[11]提出了結合馬爾可夫隨機場(Markov random fields,MRFs)和CNN的圖像合成算法,YIN[12]提出基于內容感知的神經風格遷移算法;②基于模型迭代:JOHNSON等[13]提出了基于感知損失的實時風格遷移算法,ULYANOV等[14]提出了基于圖像紋理的神經網絡模型,以前饋傳播的方式進行紋理合成和圖像風格化,ZHANG和DANA等[3]提出了多風格的實時風格遷移網絡。
圖像風格遷移應用于蠟染模擬則主要針對于布料染色。在布料染色方面,劉世光等[15]對布料上污漬效果進行模擬,MORIMOTO和ONO[16]對日本扎染的織紋進行模擬,喻揚濤等[1]對平織紋棉布料進行單色模擬。
通過對上述算法的比較,本文采用基于CNN的方法對蠟染染色進行模擬。首先,為了生成更加逼真的蠟染裂紋,使用漫水標記變換算法(flood identity transform,FIT)[8]生成裂紋,并通過添加高斯噪聲對裂紋的形狀進行擾動,使得到的裂紋更接近于真實的蠟染裂紋;然后,為了分割出內容圖和風格圖中的特定區域,對圖像中所需要的區域使用圖像標注軟件Labelme[17]進行分割,使圖像中的特定區域得到自定義的標簽,以便將風格圖中的指定顏色染色到內容圖的指定區域;最后,為了使結果圖中的線條不扭曲且圖案邊緣不生成結構偽影,使用照片級增白和著色變換(photo whitening and coloring transform,PhotoWCT)算法[18]對圖像進行染色,并通過像素相似性對染色后的結果進行平滑,使生成圖像更具有真實蠟染圖像所具有的特征。
本文以CNN為蠟染染色模擬的主要理論基礎,并將其分為3個處理階段:圖像的裂紋生成、語義分割和染色模擬。將前一階段的輸出作為后一階段的輸入,依次完成每一階段的工作,最終得到蠟染染色結果。具體過程如下:首先,對內容圖使用基于距離變換的方法生成裂紋;然后,對風格圖和加了裂紋的內容圖使用Labelme進行分割;最后,使用PhotoWCT算法將風格圖的顏色遷移到內容圖上。其框架流程如圖2所示。

圖2 蠟染染色模擬流程圖
本文在裂紋生成模擬中,采用文獻[8]提出的基于距離變換的方法得以實現。先對蓋蠟區進行距離變換,變換后的結果用于產生裂紋種子點以及確定裂紋的生長方向。距離變換完成后,隨機產生種子點,并由其開始沿2個相反的方向生成初始裂紋。之后,經過形態修正,以單像素裂紋輪廓的形式存儲。
2.1.1 距離變換
首先,設輸入圖像為,蓋蠟區為,蓋蠟區邊緣和裂紋為,舊裂紋和邊界處張力為零。因為張力與距離有關,可用距離代替張力,因此求中任一點至距其最近裂紋的距離,即

其中,()的計算僅限蓋蠟區。為了體現裂紋的寬度特征,還需記錄年齡。()初始化為

然后使用FIT算法進行距離變換。在該算法中,初始化先進先出隊列,取得最新生成裂紋編號,其上所有點入列,()=;隊首元素出隊,對?(),若()+|–|<(),則()=()+|–|,()=(),入隊;若非空,轉上一步,若為空,算法結束。
在FIT算法[8]中,新裂紋的產生只對其附近像素的距離產生影響,裂紋越短,影響的像素越少。在圖3的距離圖中,紅色線條為裂紋,橙色框內為新裂紋生成后,距離值將發生改變的區域。

圖3 新裂紋對距離值的影響
2.1.2 裂紋生成
當單條裂紋生成時,首先利用隨機算法找到一個種子點,然后從該點進行生長,到達舊裂紋時停止。當裂紋數量達到要求時,算法終止。


圖4 冰紋生成結果
2.1.3 裂紋視覺特征控制
使用參考寬度()、密度()、隨機度()控制裂紋的視覺特征。其中,()為不考慮年齡時裂紋的寬度;()為單位面積分布的裂紋數量;()為冰紋的擺動幅度。另,因為交點加粗程度與到交點距離cross()及到裂紋距離()有關,所以交點復合距離為

其中,plr為點線比,控制交點的加粗程度。圖5為不同plr值對交點加粗的影響,可以看出,plr值越大,交點加粗現象越明顯。
圖像語義分割可以采用全卷積網絡(Fully convolutional networks,FCN)[19]等自動分割的算法實現。但由于本文的內容圖是白描圖,自動區域分割算法不適用。同時為了滿足一幅圖多顏色蠟染的目的,同一語義部分可能需要暈染不同的顏色;另外,風格圖只需分割其中特定的部分,而無需進行完全分割。因此,自動分割算法無法滿足上述特殊的分割要求。本文選擇Labelme[17]對內容圖和風格圖進行語義分割,界面如圖6所示。Labelme是基于LabelMe[20]改進的一個圖形界面的圖像標注軟件,其使用Python語言編寫。其可用于目標檢測、圖像分割、圖像分類等任務,還可以對視頻進行標注,生成VOC或者COCO格式的數據集。
將內容圖和風格圖分割成既定的部分,然后將其中需要相對應的部分定義為相同的語義標簽,如將圖7中綠色部分均定義為標簽“1”,在后續的染色過程中,將風格圖中對應風格分割圖中標簽為“1”的部分的色彩傳輸到內容圖中對應內容分割圖中標簽為“1”的部分。分割后的圖像保存為JSON格式,使用命令labelme_json_to_dataset將JSON文件轉為一組圖像和標簽文本文件。

圖6 Labelme分割界面

圖7 分割圖
2.3.1 圖像風格化
將內容圖和風格圖進行語義分割和標注處理后,需要對內容圖進行染色,即風格化。圖像風格化步驟可以通過風格遷移算法增白和著色變換(whitening and coloring transform,WCT)[21]來實現。該算法在圖像特征空間中,將內容圖的特征和風格圖的特征進行整合(編碼),再通過一個通用的解碼網絡將整合的特征進行解碼,進而產生風格化后的圖片。WCT算法不需要針對某一種特征圖進行訓練,可以使用任意風格圖對內容圖風格化。但是,該算法會產生結構偽像,在應用于蠟染染色中會使內容圖中的圖案邊緣扭曲,如圖8(c)所示。因此,本文考慮基于WCT算法改進后的PhotoWCT[18]算法。
在WCT中,首先構建一個用于一般圖像重建的自動編碼器網絡。在該網絡中,采用VGG19模型作為編碼器E,對圖片進行編碼,并保持編碼器的權重不變,然后設計解碼網絡,采用像素重建損失和特征損失訓練解碼器D,以重建輸入圖像。編碼器與解碼器對稱,使用上采樣層來放大特征圖的空間分辨率。訓練了自動編碼器之后,在網絡瓶頸處插入一對投影功能,白化變換P和著色變換P來實現風格化。WCT的關鍵思想是通過2個投影將內容圖像的特征相關性與風格圖像的特征相關性直接匹配。即,給定一對內容圖像I和風格圖像I,WCT首先提取其矢量化特征H=(I)和H=(I),然后轉換內容特征H,即


圖8 WCT與PhotoWCT對比圖
在PhotoWCT中,為了更好地保留局部細節,解碼器需使用上池化層代替上采樣層,并加入池化掩碼以記錄相應池化層中每個最大池化區域的最大值,即

2.3.2 圖像風格平滑
經過風格化后的圖像仍然不像蠟染圖像,如圖8(d)所示,因為語義相似的區域通常風格化不一致,所以利用內容圖中的像素相似性來平滑風格化后的結果。



圖9 網絡結構圖

圖10 δ值與平滑結果的關系
式(6)是基于圖表的排名算法,在排名算法中,是二進制的輸入,其中每個元素指示特定項是否查詢。在該方法中,為風格化的結果,最優解是基于成對像素擬合的的平滑版本,對語義相似區域的風格化的一致是有利的。該優化問題是一個簡單的二次問題,采用封閉形式的解決方案為

由于構造的通常是稀疏圖,因此可以高效地計算上式的逆運算。即整個平滑步驟可以寫為

2.3.3 相似性矩陣計算
為了計算相似性矩陣,一般選用高斯相似性(Gaussian affinity,GaussianAFF)

其中,I和I為相鄰像素,的RGB值;為全局縮放超參數。對于具有相似顏色的相鄰像素,相似性很高,當色差遠大于時,相似性接近于零。在實踐中值是很難確定的,其會產生過度平滑(圖11(d))或風格化不一致(圖11(e))的結果。因此,為了避免選擇全局縮放超參數,使用摳圖相似性(matting affinity,MattingAFF)[22]


蠟染染色模擬的過程如圖12所示。其中,從圖12(d)可以看出,為了避免結果的色彩過于雜亂,僅選取風格圖中的部分顏色對內容圖進行暈染,為了得到更佳的體現暈染效果,在風格圖中選取的圖形部分均較小。

圖11 GaussianAFF與MattingAFF對比圖

圖12 蠟染染色模擬的過程
為了驗證本文算法的有效性,在Linux+ Windows環境下進行實驗。實驗設備配置:操作系統Ubuntu 16.04LTS、Windows 7專業版,處理器Intel(R) Core(TM) i7-6700 CPU@3.40 GHz,內存8 GB。其中,裂紋生成在Visual Studio 2019中實現,語義分割階段在PyQt+Python環境下實現,風格化階段在pytorch+Python環境下實現。
本文染色階段所使用網絡,采用VGG19模型中的conv1_1到conv4_1作為編碼器E,編碼器的權重由ImageNet預訓練給出,解碼器D是編碼器的逆,解碼器的詳細配置見表1。通過使用Microsoft COCO數據集最小化2重建損失和感知損失來訓練解碼器,采用WCT中提出的多級風格化策略并將PhotoWCT應用于不同層中的VGG特征。

表1 解碼器配置表
圖13為使用語義分割和未使用語義分割的染色圖像及局部放大效果圖。從圖13(a)可以看出,未使用語義分割直接染色出現的色彩雜亂無章,不符合實際蠟染的效果。而從圖13(b)可以看出,使用語義分割后再進行染色,出現的色彩有序,更符合視覺效果及實際蠟染效果。

圖13 語義分割與染色結果的關系
圖14給出了使用文獻[1]算法和本文算法染色后的圖像及局部效果放大圖。從圖14(a)和14(b)對比可以看出,使用文獻[1]算法暈染效果沒有使用本文暈染效果好。從圖14(c)可以看出,使用文獻[1]算法若想得到較好的暈染效果則無法同時對背景進行染色,而從圖14(d)可以看出,使用本文提出的算法可以在保證前景暈染效果較好的同時對背景也進行染色。從圖14(e)可以看出,若使用文獻[1]算法進行多色染色,則無暈染效果,而從圖14(f)可以看出,使用本文算法可以進行多色染色且暈染效果較好。
蠟染染色模擬的實驗結果及對比如圖15所示??梢钥闯?,文獻[1]算法更適合表現傳統的單色蠟染,而本文算法更能表現現代的多色蠟染效果。
雖然本文算法在一些輸入樣本中能取得較好的模擬結果,但也存在一些質量較低的結果。如圖16所示,本文算法所得結果幾乎無暈染效果,主要是對風格圖分割時所選取的區域過大造成的。因為內容圖本身是由一些較小的圖形所組成的,為了保留這些小圖形,因此內容圖被分割的較小,若風格圖被分割的過大,可能導致風格圖中的顏色特征不能較好的在內容圖中所體現。

圖14 文獻[1]算法與本文算法結果

圖15 蠟染染色模擬實驗結果

圖16 質量較低的蠟染染色模擬結果
針對現有算法只能模擬傳統的單色蠟染,且無法較好地模擬真實蠟染的暈染效果,本文提出了基于CNN的蠟染多染色模擬方法。該方法利用圖像標注軟件Labelme對圖像進行語義分割,對圖像的所需區域進行標注,使染色過程更具有針對性,避免了生成的染色結果出現雜亂的顏色,具有更好地視覺效果;利用PhotoWCT算法對內容圖進行染色并平滑,使最終獲得的染色結果更貼近真實的現代多色蠟染,且較好地模擬了真實蠟染圖像的暈染效果。實驗結果表明,使用本文算法染色后的圖像,能得到較好的接近真實蠟染圖像的結果。但是,該算法仍存在不足之處,如無法較好地模擬真實蠟染所具有的矩形織紋、邊緣梯度變化效果,這些將是今后的工作中需要進一步研究解決的問題。
[1] 喻揚濤, 俞振璐, 錢文華, 等. 基于擴散的蠟染染色模擬[J]. 系統仿真學報, 2018, 30: 2117-2124.
[2] GATYS L A, ECKER A S, BETHGE M. Image style transfer using convolutional neural networks[C]//IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2015: 2414-2423.
[3] ZHANG H, DANA K J. Multi-style generative network for real-time transfer[EB/OL]. [2019-07-28]. https:// arxiv.org/abs/1703.06953.
[4] TERZOPOULOS D, PLATT J, BARR A, et al. Elastically deformable models[J]. Computer Graphics, 1987, 21(4): 205-214.
[5] NORTON A, TURK G, BACON B, et al. Animation of fracture by physical modeling[J]. The Visual Computer, 1991, (7): 210-219.
[6] JIN X G, CHEN S C, MAO X Y. Computer-generated marbling textures: a gpu-based design system[J]. IEEE Computer Graphics and Applications, 2007, 27(2): 78-84.
[7] LU S F, JAFFER A, JIN X G, et al. Mathematical marbling[J]. IEEE Computer Graphics and Applications, 2012, 32(6): 26-35.
[8] 喻揚濤, 徐丹. 蠟染冰紋生成算法研究[J]. 圖學學報, 2015, 36: 159-165.
[9] EFROS A, FREEMAN W. Image quilting for texture synthesis and transfer[C]//Proceedings of the 28th Annual Conference on Computer Graphics and Interactive Techniques. New York: ACM Press, 2001: 341-346.
[10] ZHAO Y D, JIN X G, XU Y Q, et al. Parallel style-aware image cloning for artworks[J]. IEEE Transactions on Visualization and Computer Graphics, 2015, 21(2): 229-240.
[11] LI C, WAND M. Combining markov random fields and convolutional neural networks for image synthesis[C]// IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2016: 2479-2486.
[12] YIN R. Content aware neural style transfer[EB/OL]. [2019-07-25]. https://arxiv.org/abs/1601.04568.
[13] JOHNSON J, ALAHI A, LI F F. Perceptual losses for real-time style transfer and super-resolution[C]// European Conference on Computer Vision. Heidelberg: Springer, 2016: 694-711.
[14] ULYANOV D, LEBEDEV V, VEDALDI A, et al. Texture networks: feed-forward synthesis of textures and stylized images[C]//International Conference on Machine Learning. New York: ACM Press, 2016: 1349-1357.
[15] 劉世光, 陳國軍, 楊鵬, 等. 布料上污漬效果的真實感模擬[J]. 計算機輔助設計與圖形學學報, 2008, 20(9): 1110-1116.
[16] MORIMOTO Y, ONO K. New cloth modeling for designing dyed patterns[C]//ACM Siggraph Asia 2010 Posters. New York: ACM Press, 2010: 11.
[17] Baidu. Labelme[EB/OL]. [2019-07-28]. https://github. com/wkentaro/labelme.
[18] LI T J, LIU M Y, LI X T, et al. A closed-form solution to photorealistic image stylization[C]//European Conference on Computer Vision. Heidelberg: Springer, 2018: 468-483.
[19] LONG J, SHELHAMER E, DARRELL T. Fully convolutional networks for semantic segmentation[C]// IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2015: 3431-3440.
[20] Baidu. LabelMe[EB/OL]. [2019-06-30]. http://labelme. csail.mit.edu.
[21] LI Y, FANG C, YANG J, et al. Universal style transfer via feature transforms[C]//Neural Information Processing Systems. Cambridge: MIT Press, 2017: 385-395.
[22] LEVIN A, LISCHINSKI D, WEISS Y. A closed-form solution to natural image matting[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 30(2): 228-242.
Batik dyeing simulation based on convolutional neural network
LI Zhi, XU Dan
(School of Information Science & Engineering, Yunnan University, Kunming Yunnan 650504, China)
Batik, a traditional art of the Chinese ethnic minority, is widely popular in southwest China. The Batik simulation mainly includes two major tasks: crack simulation and fabric dyeing simulation. In this paper, we mainly focus on fabric dyeing simulation. Previously, the method of Batik dyeing simulation can only perform monochromatic dyeing, and the simulation effect of self-dyeing is not obvious. Thus, a multicolor batik dyeing method based on convolutional neural network is proposed. To begin with, the crack was generated by the method based on distance transformation and then the shape of the crack is modified. Furthermore, we used Label me to segment the specific areas of the image manually, which facilitated the subsequent coloring. Finally, the PhotoWCT algorithm was applied to dye the specific regions of the image, and then the pixel affinities in the content map were used to smooth the dyed result. In this way, the result obtained is closer to the real Batik image. The experimental results indicate that, the method proposed in this article is applicable to multicolor dyeing simulation. In addition, this method is superior to the previous method in terms of sfumato effect.
batik dyeing; distance transform; image segmentation; PhotoWCT algorithm; sfumato technique
TP 391
10.11996/JG.j.2095-302X.2020020196
A
2095-302X(2020)02-0196-08
2019-10-01;
2020-01-06
國家自然科學基金項目(61540062,61761046);云南省教育廳科學研究基金產業化培育項目(2016CYH03);云南省“云嶺學者”計劃項目(YNWR-YLXZ-2018-022)
黎 智(1995-),女,云南宣威人,碩士研究生。主要研究方向為非真實感繪制、語義分割。E-mail:zli0605@163.com
徐 丹(1968-),女,云南昆明人,教授,博士。主要研究方向為基于圖像的建模和繪制、非真實感繪制、圖像處理與理解、虛擬現實、多媒體等。E-mail:danxu@ynu.edu.cn