(復(fù)旦五浦匯實驗學(xué)校 上海 201700)
中國傳統(tǒng)繪畫,又稱國畫,是中華文化的傳統(tǒng)繪畫藝術(shù),也是琴棋書畫四藝之一。國畫中又以水墨畫為主。它是用毛筆蘸水、墨、彩作畫于絹或紙上。工具和材料有毛筆、墨、國畫顏料、宣紙、絹等,題材可分人物、山水、花鳥等,技法可分為具象和寫意。是我國歷史文化遺產(chǎn)的重要組成部分。
近年來,由深度學(xué)習(xí)所引領(lǐng)的人工智能技術(shù)浪潮,開始越來越廣泛地應(yīng)用到社會各個領(lǐng)域。其中,人工智能與藝術(shù)的交叉碰撞,在相關(guān)的技術(shù)領(lǐng)域和藝術(shù)領(lǐng)域引起了高度關(guān)注。以相關(guān)技術(shù)為基礎(chǔ)而開發(fā)的各種圖像處理軟件和濾鏡應(yīng)用更是一推出就立刻吸引了海量用戶。根據(jù)調(diào)研,目前一共有5種主流相關(guān)算法,分別是:
(1)基于筆畫的渲染,即對筆畫的各個特征進(jìn)行調(diào)整,類似各種畫圖工具的筆刷功能。
(2)圖像類比方法,即在數(shù)據(jù)庫中找類似的圖像替換目標(biāo)圖像中的對應(yīng)元素,如照片中的樹,通過類比找到數(shù)據(jù)庫中形狀類似、顏色類似的樹并予以替換。
(3)圖像濾波方法,即通過對顏色的調(diào)整,實現(xiàn)畫面的卡通畫或素描化。如通過RGB向灰度變換,形成黑白照片。
(4)紋理合成方法,即將對象的表面紋理材質(zhì)替換為其他類型,如將大理石材質(zhì)紋理替換膚色并應(yīng)用在人的圖像上,就能獲得大理石質(zhì)感的人物雕像圖片。
(5)神經(jīng)網(wǎng)絡(luò)風(fēng)格遷移,即通過卷積神經(jīng)網(wǎng)絡(luò),自動識別并提取需要的圖像特征,并應(yīng)用到目標(biāo)圖像中。因為這種方法和其他方法相比,不需要人工創(chuàng)建數(shù)據(jù)庫,因此該方法是目前的主流研究方法。
在研究中發(fā)現(xiàn),現(xiàn)有的很多圖像風(fēng)格化遷移技術(shù)雖然已經(jīng)基本可以實現(xiàn),但是由于開發(fā)人員和團(tuán)隊以外國為主,所以常見一些油畫、素描、漫畫類風(fēng)格遷移,而較少甚至沒有見過帶有中國元素的風(fēng)格遷移項目。而國畫作為我國傳統(tǒng)文化的重要組成部分,目前在我國甚至全世界都鮮有人通過人工智能的方法實現(xiàn)。
因此,本文計劃使用相對較成熟的風(fēng)格遷移算法,采用人工智能技術(shù)對一般風(fēng)景照片進(jìn)行國畫風(fēng)格的圖像風(fēng)格遷移處理,嘗試直接生成山水類國畫。
在神經(jīng)網(wǎng)絡(luò)之前,圖像風(fēng)格遷移算法的思路是分析某一種風(fēng)格的圖像,給那一種風(fēng)格建立一個數(shù)學(xué)或者統(tǒng)計模型,再改變要做遷移的圖像讓它能更好的符合建立的模型。
基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移在2015年由 Gatys et al.在兩篇論文中提出。它是第一個使用深度學(xué)習(xí)來給紋理建模的方法。他研究了紋理和風(fēng)格之間的區(qū)別并提出了紋理能夠描述一個圖像的風(fēng)格的觀點,以及如何只提取圖片內(nèi)容而不包括圖片風(fēng)格的解決方案。隨著這兩篇文章的出現(xiàn),圖像風(fēng)格遷移成為了深度學(xué)習(xí)領(lǐng)域研究的一個熱門方向,相關(guān)的研究如:多個預(yù)設(shè)風(fēng)格的融合,實時任意風(fēng)格遷移算法,圖片類比等大量涌出。同時,隨著技術(shù)的不斷更新和發(fā)展,圖像風(fēng)格遷移技術(shù)也大量應(yīng)用于各種軟件,為人們的生活帶來了便利。
由于國外相關(guān)資料豐富且完整,本文主要采用國外典型的風(fēng)格遷移人工智能算法①進(jìn)行改寫并嘗試在國畫創(chuàng)作上進(jìn)行應(yīng)用。
數(shù)字圖像是一個二維的數(shù)據(jù),對數(shù)字圖像做卷積操作其實就是利用卷積核(卷積模板)在圖像上滑動,將圖像點上的像素灰度值與對應(yīng)的卷積核上的數(shù)值相乘,然后將所有相乘后的值相加作為卷積核中間像素對應(yīng)的圖像上像素的灰度值,并最終滑動完所有圖像的過程。通過與不同的卷積算子(一些經(jīng)過設(shè)計的數(shù)組)進(jìn)行卷積計算,可以獲得不同類型的圖片特征,獲得圖像的各種隱含信息。
風(fēng)格遷移是本文的核心內(nèi)容,它使用VGGNet神經(jīng)網(wǎng)絡(luò)分別從原始圖片A(風(fēng)格)和原始圖片B(內(nèi)容)直接提取特征,然后使用梯度下降法,計算風(fēng)格和內(nèi)容損失值,獲取最優(yōu)的輸出結(jié)果。
VGG Net是由牛津大學(xué)的視覺幾何組(Visual Geometry Group)和GoogleDeepMind公司的研究員一起研發(fā)的深度卷積神經(jīng)網(wǎng)絡(luò)。它是一個多重卷積的結(jié)構(gòu):前面的卷積層從圖像中提取“特征”,而后面的全連接層把圖片的“特征”轉(zhuǎn)換為類別概率。其中,VGGNet中的淺層提取的特征往往是比較簡單的(如檢測點、線、亮度),VGGNet中的深層提取的特征往往比較復(fù)雜(如有無人臉或某種特定物體)。本文采用VGGNet中的VGG16的算法,結(jié)構(gòu)圖如圖1所示。
圖1:VGG16的算法結(jié)構(gòu)圖
VGGNet的處理過程是輸入圖像,提取特征,并輸出圖像類別。在VGGNet處理程序之后在進(jìn)行逆操作,先要輸入特征,然后輸出對應(yīng)這種特征的圖片。這就是一個完整的風(fēng)格遷移過程。
但是VGGNet中提供的默認(rèn)卷積計算參數(shù)可能不一定能滿足風(fēng)格遷移要求,于是在本文中另外采用了一個基于Tensorflow的訓(xùn)練程序進(jìn)行訓(xùn)練,并希望獲取較理想的計算參數(shù)。
圖2:程序流程圖
根據(jù)程序流程圖,本文用Python語言編寫了程序(略),用以實現(xiàn)AI國畫的生成。首先輸入如下國畫,作為被模仿的圖像。然后分別考慮簡單圖像的風(fēng)格遷移和山水風(fēng)景圖像的風(fēng)格遷移(見圖3)。
圖3:輸入的模仿圖像
從運行結(jié)果可以看到(見圖4),輸入目標(biāo)圖像中的兩筆3段曲線在經(jīng)過風(fēng)格遷移后,增加了具有水墨韻開的質(zhì)感。輸入圖像中,中下部分的紙張的褶皺和光線不均,也被系統(tǒng)提取了并進(jìn)行了遷移,形成了類似湖泊河流的畫面。
圖5:輸入的風(fēng)景圖
從這兩次遷移結(jié)果可以看出,山和水經(jīng)過風(fēng)格遷移算法運算后,都能獲得不錯的水墨畫質(zhì)感。但是圖5中左側(cè)的樹林,被算法識別為了山,這可能是因為在模仿圖像中,山和水在畫面中的占比較高,導(dǎo)致生成的替換特征也是以山和水為主。因此誤將樹林識別為山,并進(jìn)行了風(fēng)格遷移運算。
圖4:簡單圖像的目標(biāo)圖像和生成圖像
圖6:預(yù)處理后的風(fēng)景圖
圖7:AI生成的圖像
通過測試可以發(fā)現(xiàn),輸出的結(jié)果在色調(diào),顏色變化模型,物體外形上都接近或與一般山水國畫類似。但是最終生成結(jié)果與真實的國畫還有一定的距離。其主要原因可能出現(xiàn)在:
(1)訓(xùn)練集采用的是網(wǎng)絡(luò)上搜羅的訓(xùn)練集,而非專門為國畫準(zhǔn)備的訓(xùn)練集,導(dǎo)致在卷積運算參數(shù)的訓(xùn)練上,無法與國畫風(fēng)格進(jìn)行高度匹配。
(2)替換的特征內(nèi)容在整個VGG16卷積算法的中層,該層主要能提取出類似“筆觸”的特征,從而在一定層面上能體現(xiàn)出山水國畫中“山”的畫面樣式。但是對于“水”和山水畫中經(jīng)常出現(xiàn)的“舟”,“林”,“鳥”等,并不能較好的實現(xiàn)模仿。因為這些元素往往在圖像中過大或過小,很容易在最初的幾次卷積運算中被當(dāng)做噪聲或背景過濾。這些元素沒有加入后續(xù)運算,因此在反卷積運算中被徹底丟失。
通過以上兩個主要問題的分析和總結(jié),本文在下一階段中將進(jìn)行四個方向的改進(jìn):
(1)通過網(wǎng)絡(luò)爬蟲手段,生成國畫圖像訓(xùn)練集,并希望從該訓(xùn)練更準(zhǔn)確的卷積計算參數(shù)。
(2)通過對圖像進(jìn)行后處理,對遠(yuǎn)近山水進(jìn)行顏色深度的調(diào)整,使其更符合國畫特征。
(3)通過對圖像進(jìn)行后處理,通過較簡單的圖像疊加方式,添加國畫中經(jīng)常出現(xiàn)的“林”,“鳥”,“舟”等元素。
(4)嘗試對目標(biāo)圖像先進(jìn)行目標(biāo)分類,然后根據(jù)不同類目在畫面中位置,使用對應(yīng)的特征,進(jìn)行相應(yīng)的風(fēng)格遷移,最后再通過一些畫面平整方法將各部分組合。
注釋
① 該算法的網(wǎng)址為https://github.com/marcatmendez/fast-style-transfer-master