(復旦五浦匯實驗學校 上海 201700)
中國傳統繪畫,又稱國畫,是中華文化的傳統繪畫藝術,也是琴棋書畫四藝之一。國畫中又以水墨畫為主。它是用毛筆蘸水、墨、彩作畫于絹或紙上。工具和材料有毛筆、墨、國畫顏料、宣紙、絹等,題材可分人物、山水、花鳥等,技法可分為具象和寫意。是我國歷史文化遺產的重要組成部分。
近年來,由深度學習所引領的人工智能技術浪潮,開始越來越廣泛地應用到社會各個領域。其中,人工智能與藝術的交叉碰撞,在相關的技術領域和藝術領域引起了高度關注。以相關技術為基礎而開發的各種圖像處理軟件和濾鏡應用更是一推出就立刻吸引了海量用戶。根據調研,目前一共有5種主流相關算法,分別是:
(1)基于筆畫的渲染,即對筆畫的各個特征進行調整,類似各種畫圖工具的筆刷功能。
(2)圖像類比方法,即在數據庫中找類似的圖像替換目標圖像中的對應元素,如照片中的樹,通過類比找到數據庫中形狀類似、顏色類似的樹并予以替換。
(3)圖像濾波方法,即通過對顏色的調整,實現畫面的卡通畫或素描化。如通過RGB向灰度變換,形成黑白照片。
(4)紋理合成方法,即將對象的表面紋理材質替換為其他類型,如將大理石材質紋理替換膚色并應用在人的圖像上,就能獲得大理石質感的人物雕像圖片。
(5)神經網絡風格遷移,即通過卷積神經網絡,自動識別并提取需要的圖像特征,并應用到目標圖像中。因為這種方法和其他方法相比,不需要人工創建數據庫,因此該方法是目前的主流研究方法。
在研究中發現,現有的很多圖像風格化遷移技術雖然已經基本可以實現,但是由于開發人員和團隊以外國為主,所以常見一些油畫、素描、漫畫類風格遷移,而較少甚至沒有見過帶有中國元素的風格遷移項目。而國畫作為我國傳統文化的重要組成部分,目前在我國甚至全世界都鮮有人通過人工智能的方法實現。
因此,本文計劃使用相對較成熟的風格遷移算法,采用人工智能技術對一般風景照片進行國畫風格的圖像風格遷移處理,嘗試直接生成山水類國畫。
在神經網絡之前,圖像風格遷移算法的思路是分析某一種風格的圖像,給那一種風格建立一個數學或者統計模型,再改變要做遷移的圖像讓它能更好的符合建立的模型。
基于神經網絡的圖像風格遷移在2015年由 Gatys et al.在兩篇論文中提出。它是第一個使用深度學習來給紋理建模的方法。他研究了紋理和風格之間的區別并提出了紋理能夠描述一個圖像的風格的觀點,以及如何只提取圖片內容而不包括圖片風格的解決方案。隨著這兩篇文章的出現,圖像風格遷移成為了深度學習領域研究的一個熱門方向,相關的研究如:多個預設風格的融合,實時任意風格遷移算法,圖片類比等大量涌出。同時,隨著技術的不斷更新和發展,圖像風格遷移技術也大量應用于各種軟件,為人們的生活帶來了便利。
由于國外相關資料豐富且完整,本文主要采用國外典型的風格遷移人工智能算法①進行改寫并嘗試在國畫創作上進行應用。
數字圖像是一個二維的數據,對數字圖像做卷積操作其實就是利用卷積核(卷積模板)在圖像上滑動,將圖像點上的像素灰度值與對應的卷積核上的數值相乘,然后將所有相乘后的值相加作為卷積核中間像素對應的圖像上像素的灰度值,并最終滑動完所有圖像的過程。通過與不同的卷積算子(一些經過設計的數組)進行卷積計算,可以獲得不同類型的圖片特征,獲得圖像的各種隱含信息。
風格遷移是本文的核心內容,它使用VGGNet神經網絡分別從原始圖片A(風格)和原始圖片B(內容)直接提取特征,然后使用梯度下降法,計算風格和內容損失值,獲取最優的輸出結果。
VGG Net是由牛津大學的視覺幾何組(Visual Geometry Group)和GoogleDeepMind公司的研究員一起研發的深度卷積神經網絡。它是一個多重卷積的結構:前面的卷積層從圖像中提取“特征”,而后面的全連接層把圖片的“特征”轉換為類別概率。其中,VGGNet中的淺層提取的特征往往是比較簡單的(如檢測點、線、亮度),VGGNet中的深層提取的特征往往比較復雜(如有無人臉或某種特定物體)。本文采用VGGNet中的VGG16的算法,結構圖如圖1所示。

圖1:VGG16的算法結構圖
VGGNet的處理過程是輸入圖像,提取特征,并輸出圖像類別。在VGGNet處理程序之后在進行逆操作,先要輸入特征,然后輸出對應這種特征的圖片。這就是一個完整的風格遷移過程。
但是VGGNet中提供的默認卷積計算參數可能不一定能滿足風格遷移要求,于是在本文中另外采用了一個基于Tensorflow的訓練程序進行訓練,并希望獲取較理想的計算參數。

圖2:程序流程圖
根據程序流程圖,本文用Python語言編寫了程序(略),用以實現AI國畫的生成。首先輸入如下國畫,作為被模仿的圖像。然后分別考慮簡單圖像的風格遷移和山水風景圖像的風格遷移(見圖3)。

圖3:輸入的模仿圖像
從運行結果可以看到(見圖4),輸入目標圖像中的兩筆3段曲線在經過風格遷移后,增加了具有水墨韻開的質感。輸入圖像中,中下部分的紙張的褶皺和光線不均,也被系統提取了并進行了遷移,形成了類似湖泊河流的畫面。

圖5:輸入的風景圖
從這兩次遷移結果可以看出,山和水經過風格遷移算法運算后,都能獲得不錯的水墨畫質感。但是圖5中左側的樹林,被算法識別為了山,這可能是因為在模仿圖像中,山和水在畫面中的占比較高,導致生成的替換特征也是以山和水為主。因此誤將樹林識別為山,并進行了風格遷移運算。

圖4:簡單圖像的目標圖像和生成圖像

圖6:預處理后的風景圖

圖7:AI生成的圖像
通過測試可以發現,輸出的結果在色調,顏色變化模型,物體外形上都接近或與一般山水國畫類似。但是最終生成結果與真實的國畫還有一定的距離。其主要原因可能出現在:
(1)訓練集采用的是網絡上搜羅的訓練集,而非專門為國畫準備的訓練集,導致在卷積運算參數的訓練上,無法與國畫風格進行高度匹配。
(2)替換的特征內容在整個VGG16卷積算法的中層,該層主要能提取出類似“筆觸”的特征,從而在一定層面上能體現出山水國畫中“山”的畫面樣式。但是對于“水”和山水畫中經常出現的“舟”,“林”,“鳥”等,并不能較好的實現模仿。因為這些元素往往在圖像中過大或過小,很容易在最初的幾次卷積運算中被當做噪聲或背景過濾。這些元素沒有加入后續運算,因此在反卷積運算中被徹底丟失。
通過以上兩個主要問題的分析和總結,本文在下一階段中將進行四個方向的改進:
(1)通過網絡爬蟲手段,生成國畫圖像訓練集,并希望從該訓練更準確的卷積計算參數。
(2)通過對圖像進行后處理,對遠近山水進行顏色深度的調整,使其更符合國畫特征。
(3)通過對圖像進行后處理,通過較簡單的圖像疊加方式,添加國畫中經常出現的“林”,“鳥”,“舟”等元素。
(4)嘗試對目標圖像先進行目標分類,然后根據不同類目在畫面中位置,使用對應的特征,進行相應的風格遷移,最后再通過一些畫面平整方法將各部分組合。
注釋
① 該算法的網址為https://github.com/marcatmendez/fast-style-transfer-master