彭玉元,趙朋朋,武有能,謝兵兵
(桂林電子科技大學(xué) a.藝術(shù)與設(shè)計學(xué)院;b.計算機與信息安全學(xué)院,廣西 桂林 541004)
非真實感繪制是利用計算機生成不具有照片般真實感,而具有手繪風(fēng)格的繪制技術(shù)。它的主要目的之一是為了表現(xiàn)圖像的藝術(shù)特征、模擬美術(shù)作品。水墨畫是具有悠久歷史的中國傳統(tǒng)繪畫,研究如何利用計算機繪制出優(yōu)秀的水墨畫作品對弘揚發(fā)展中國文化有重要的意義。
關(guān)于水墨畫的計算機繪制技術(shù)主要分為兩方面:基于物理的仿真繪制技術(shù)和基于非物理的以空間模型或原始圖像為基礎(chǔ)的自動或半自動的繪制技術(shù)。 基于物理仿真的研究取得了較好的效果,但是對毛筆、 水墨、 宣紙的物理特性模擬運算以及各種參數(shù)的設(shè)定, 使得繪制過程比較復(fù)雜, 難以操作, 繪制效率很低[1-4]。 對于基于空間模型的繪制, 如建立3D物體模型直接進(jìn)行渲染、 建立水墨粒子模型模擬其擴(kuò)散運動等, 也取得了不錯的效果, 但是過程繁瑣、 計算量大, 處理起來也很困難[5-8]。 基于圖像的水墨畫制技術(shù)簡單、 易操作, 近年來成為了研究熱點,取得了不錯的研究成果:Yu等[9]提出了基于真實圖片的水墨畫合成算法,在圖片上控制水墨筆觸,獲得了真實圖片的水墨畫效果;李丹等[10]提出了基于圖像類比的方法,對照片A和對應(yīng)的水墨畫風(fēng)格圖像A′類比來獲取對應(yīng)信息,讓濾波器學(xué)習(xí)匹配規(guī)律,使另外輸入的照片B可以轉(zhuǎn)化為帶有水墨風(fēng)格圖像B′;曹毅等[11]充分利用圖像處理的相關(guān)技術(shù)(圖像分割、 濾波處理等), 生成了水墨畫效果的圖像;Liang等[12]提出一種基于真實圖片的水墨線條繪制算法,對邊緣檢測出來的線條進(jìn)行水墨擴(kuò)散模擬,使真實圖片有一定的水墨效果;金煒煒[13]改進(jìn)基于圖像生成水墨畫的繪制過程,引入Perlin噪聲,獲得了不錯的水墨繪制效果。這些方法都是根據(jù)水墨畫一般性特征而設(shè)計的,而真正由畫家創(chuàng)作的水墨畫的優(yōu)美之處在于其整體的風(fēng)格。Gatys等[14]提出利用卷積神經(jīng)網(wǎng)絡(luò)模型,對圖像特征提取然后加以合成, 使一張圖像擁有另一張圖像的風(fēng)格。 這種方法對于水彩畫或油畫等色彩明顯的藝術(shù)圖像合成效果較好, 但對于水墨畫風(fēng)格圖像的合成效果不佳。 本文針對水墨畫的主要特征, 對輸入照片圖像進(jìn)行對比度增強預(yù)處理, 修改卷積神經(jīng)網(wǎng)絡(luò)模型對水墨畫圖像風(fēng)格提取算法, 使最后生成的圖像帶有較好的原水墨畫風(fēng)格。
卷積神經(jīng)網(wǎng)絡(luò)是深度神經(jīng)網(wǎng)絡(luò)中最強大的計算機視覺處理領(lǐng)域的一個模型,在物體識別的表現(xiàn)上超過了人類識別能力的模型。
訓(xùn)練完成的卷積神經(jīng)網(wǎng)絡(luò)模型, 對于圖像特征的提取具有一般性, VGG-Net具有很好的圖像轉(zhuǎn)化學(xué)習(xí)能力[15], 其卷積層的特征映射大小為3×3(濾波器大小), 能捕獲最小1像素左右的信息尺寸, 卷積的步長為1, 邊界填補為1, 這樣使得卷積層獲得了更多的非線性判斷。 在池化層VGG-Net使用的是2×2區(qū)域最大池化操作, 池化步長為2。 被訓(xùn)練好的模型經(jīng)過簡單的修改調(diào)整便可在深度學(xué)習(xí)框架(caffe-frame、 theano、 torch等)下進(jìn)行更多的應(yīng)用和研究(如圖像語義分割)[16]。 本文使用了VGG-Net的16個卷積層和5個池化層提供的特征映射空間而沒有用到任何一個全卷積層, 這樣可以使輸入圖像的尺寸大小是任意的。 在池化層保留了最大池化處理,而并沒有使用平均池化。
卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中第一個真正成功訓(xùn)練多層網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)算法,是由神經(jīng)元按層級結(jié)構(gòu)組成的前饋網(wǎng)絡(luò)。通過特征映射(濾波器)依次卷積輸入圖像的感受野信息,獲得平移、旋轉(zhuǎn)和縮放不變的圖像特征信息(特征圖),再依次把信息傳遞到高層。當(dāng)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)用作物體識別時,隨著層數(shù)的增加,圖像特征信息代表的目標(biāo)信息就越來越明確[14]。
如圖1所示,通過一張白噪聲圖像匹配照片在卷積神經(jīng)網(wǎng)絡(luò)中某一層的特征響應(yīng)的方法來獲取照片內(nèi)容。洇濕也就是水墨擴(kuò)散效果,是水墨畫的一個顯著特征,濕毛筆接觸宣紙時,墨水會從毛筆流入到宣紙,然后向周圍浸潤、滲透。卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像風(fēng)格提取時,考慮的是圖像整體風(fēng)格,而弱化了細(xì)節(jié)紋理方面,所以為了使生成的圖像在不同的灰度區(qū)域邊界擁有由黑到白的水墨擴(kuò)散效果,在水墨畫合成時應(yīng)對輸入的原照片圖像作增強處理,提高明暗對比度。
圖1 內(nèi)容提取Fig.1 Content extraction
一般認(rèn)為,紋理是一種反映像素在圖像空間分布的特征,通常表現(xiàn)為總體有規(guī)律而局部無規(guī)律的性質(zhì);又或者是一種反映圖像中同質(zhì)現(xiàn)象的視覺特征,體現(xiàn)了物體表面共有的內(nèi)在屬性,包含了物體表面結(jié)構(gòu)組織排列的重要信息以及其與周圍的聯(lián)系[17]。近年來,紋理合成的主流技術(shù)主要是對源紋理圖像內(nèi)在規(guī)律的提取、重構(gòu)。這種方法用在非紋理圖像上,可以認(rèn)為是對一張圖像風(fēng)格特征的提取。本研究使用Gatys等[18]提出的基于卷積神經(jīng)網(wǎng)絡(luò)的紋理合成方法。在已經(jīng)被訓(xùn)練好的用于圖像分類的卷積神經(jīng)網(wǎng)絡(luò)模型中,每一層的特征響應(yīng)間相互關(guān)系表示了紋理信息的空間匯總統(tǒng)計。如圖2所示,通過一張白噪聲圖像匹配水墨畫在卷積神經(jīng)網(wǎng)絡(luò)某些層特征響應(yīng)相互關(guān)系的方法來獲取水墨畫風(fēng)格圖像,在風(fēng)格獲取時,避免了空白區(qū)域特征響應(yīng)的互相關(guān)系有可能無意義情況,使生成的圖像保留了足夠的原水墨畫風(fēng)格信息。
對計算模型進(jìn)行改進(jìn),通過對輸入照片圖像進(jìn)行對比度增強預(yù)處理, 有助于卷積神經(jīng)網(wǎng)絡(luò)模型對照片內(nèi)容和水墨畫風(fēng)格的獲取,并通過修改計算參數(shù), 使得原來對于水彩畫或油畫等色彩明顯的藝術(shù)圖像合成效果較好的卷積神經(jīng)網(wǎng)絡(luò), 同樣適用于水墨畫風(fēng)格。
圖2 風(fēng)格提取Fig.2 Style extraction
對于輸入的照片,直接在RGB空間中對R、G、B3個分量進(jìn)行處理運算容易出現(xiàn)色偏。應(yīng)先把圖像從RGB顏色空間轉(zhuǎn)換到HSV顏色空間下,HSV顏色空間的3個基本屬性為色調(diào)(H)、 飽和度(S)、 明度(V),具體轉(zhuǎn)換如下:
(1)
式中:R、G、B的取值范圍是[0, 255];H的取值范圍是[0, 360];S的取值范圍是[0,1];V的取值范圍是[0,255]。把明度V當(dāng)作灰度圖像V1進(jìn)行直方圖均衡化處理,映射成一幅灰度分布均勻的圖像V2,變換函數(shù)為各灰度級概率的累積分布函數(shù)
(2)
式中:rk為V1歸一化的灰度級;k=0,1,2,…,L-1;n是圖像中像素的總和;nk是灰度級為rk的像素總數(shù);L是圖像中可能的灰度級總數(shù);T是變換關(guān)系;Pr(rj)是原圖像第k級灰度值的概率;sk是V2歸一化的灰度級。最后將圖像從HSV顏色空間轉(zhuǎn)換到RGB顏色空間,換算公式為
(3)
圖3a一張普通風(fēng)景圖經(jīng)過圖像增強后變?yōu)閳D像如圖3b所示。
圖3 圖像增強Fig.3 Image enhancement
(4)
對式(4)求關(guān)于F的導(dǎo)數(shù):
(5)
在l層通過誤差反向傳播算法便可求出關(guān)于x的梯度,直到在此卷積神經(jīng)網(wǎng)絡(luò)的l層映射的特征響應(yīng)與p在此層映射的相同,此時x便表示了關(guān)于p的內(nèi)容信息。
圖4a—c分別是使用VGG-Net第1層卷積層的第1組、第3層卷積層的第1組和第5層卷積層的第1組提取的內(nèi)容。
(6)
其中,i為第l層第i個濾波器;k為第i個濾波器的第k個位置的特征輸出;j為第l層第j個濾波器;k*為l層第j個濾波器上第k*個位置的特征輸出。
用一組格拉姆矩陣集合G′?{G1,…,Gl}便可確定一張圖像的風(fēng)格。 計算機視覺處理的卷積神經(jīng)網(wǎng)絡(luò)模型主要面向RGB圖像的輸入, 一張水墨畫從計算機視覺上理解是一張灰度圖像, 上面很多空白區(qū)域, 由于3×3濾波器范圍很小, 容易對應(yīng)到水墨畫圖像灰度全為0的3×3區(qū)域, 使得特征響應(yīng)的值忽略了濾波器的影響, 只受到神經(jīng)元基值的影響。 若此時基值為0, 那么兩個濾波器在這種情況下的互相關(guān)系就沒有意義。 為了避免這種情況,對上述互相關(guān)系進(jìn)行調(diào)優(yōu):
(7)
(8)
總損失為
(9)
式中:wl為每一層對總損失的權(quán)重影響。對式(9)求關(guān)于F特征響應(yīng)的導(dǎo)數(shù):
(10)
同樣地,根據(jù)誤差反向傳播算法可以求出關(guān)于x的梯度。如圖5a′是圖5a水墨擴(kuò)散效果的紋理合成圖像,圖5b′是圖5b山水畫風(fēng)格合成圖像。
圖4 內(nèi)容提取Fig.4 Content extraction
圖5 風(fēng)格提取Fig.5 Style extraction
以一張白噪聲圖片為基礎(chǔ),利用卷積神經(jīng)網(wǎng)絡(luò)模型VGG-Net同時進(jìn)行2.2節(jié)所述的照片內(nèi)容獲取處理和2.3節(jié)的水墨畫風(fēng)格獲取處理,此白噪聲圖片即可生成為一張水墨畫風(fēng)格圖像。
設(shè)p為一張圖像增強處理后的照片,a為一張水墨畫,x為一張白噪聲圖像, 則損失函數(shù)表示為
Ltotal(p,a,x)=αLcontent(p,x)+βLstyle(a,x)。
(11)
式中:α、β分別是照片內(nèi)容和水墨畫風(fēng)格在生成圖像中的權(quán)重影響。
照片內(nèi)容獲取使用的卷積層是CONV4_2, 水墨畫風(fēng)格獲取使用的卷積層是CONV1_1、 CONV2_1、 CONV3_1、 CONV4_1和CONV5_1,式(9)中的這幾個卷積層權(quán)重wl均設(shè)為1, 其他的全為0。 水
墨畫合成的總損失函數(shù)式(11)中,α設(shè)為1、β為5。從原風(fēng)格合成方法生成的圖6c可以看出,生成圖像的山體部分呈現(xiàn)出大面積的空白,并且遠(yuǎn)處天空部分還殘留著白噪聲圖像的紋理。相比之下,圖6d山體部分的墨色就比較均勻,圖像中的天空區(qū)域也減少了白噪聲圖像紋理。本文合成方法在Gatys的合成算法基礎(chǔ)上,首先基于HSV顏色空間的照片進(jìn)行圖像預(yù)處理來提高其明暗對比度,然后利用卷積神經(jīng)網(wǎng)絡(luò)模型VGG-Net獲取照片內(nèi)容以及水墨畫風(fēng)格的提取,最后依據(jù)水墨畫合成的總損失函數(shù)式(11)進(jìn)行參數(shù)調(diào)優(yōu),設(shè)置合理的照片內(nèi)容和水墨畫風(fēng)格在生成圖像中的權(quán)重,可以看出,通過這一系列的模型改進(jìn)使最后生成的圖像帶有較好的原水墨畫風(fēng)格。圖7是對其他一些圖像進(jìn)行合成的效果展示。
圖6 風(fēng)格提取Fig.6 Style extraction
圖7 效果展示Fig.7 Show results
通過分析水墨畫具有的洇濕擴(kuò)散特征,使用圖像增強算法對圖像作預(yù)處理,針對水墨畫圖像灰度為0的空白區(qū)域,填補其像素值,并依據(jù)卷積神經(jīng)網(wǎng)絡(luò)的性質(zhì),在已經(jīng)訓(xùn)練完成的卷積神經(jīng)網(wǎng)絡(luò)之上,通過計算,定義照片內(nèi)容的表示方法和水墨風(fēng)格的表示方法。通過一張白噪聲圖像同時去擬合一張照片圖像的內(nèi)容信息和一張水墨圖像的風(fēng)格信息,可以合成出效果較好的水墨風(fēng)格的圖像。