許鑫亮 ,楊澤昊,閆 宇,李鎮(zhèn)宇,戰(zhàn)國棟
(大連民族大學(xué) a.計算機科學(xué)與工程學(xué)院; b.設(shè)計學(xué)院;c.大連市漢字計算機字庫設(shè)計技術(shù)創(chuàng)新中心,遼寧 大連116605)
各式各樣的字體在不同行業(yè)扮演重要角色,通常稱帶有圖案、繪畫或裝飾性元素的字為“藝術(shù)字”[1]。在日常中word和excel有儲存好的藝術(shù)字庫供使用,也可以利用photoshop等專業(yè)工具來設(shè)計獨具特色的藝術(shù)字,搭配千變?nèi)f化的場景。但藝術(shù)字風(fēng)格迥異,輪廓、顏色搭配復(fù)雜,即使專業(yè)的設(shè)計師也需要大量時間來構(gòu)造,若是字?jǐn)?shù)需求增加,設(shè)計時間將會成倍上升。即使有字體生成轉(zhuǎn)換器,也是簡單的陰影、粗細(xì)、漸變等圖形基礎(chǔ)變化,難以形成一體化風(fēng)格。
本文正是基于此問題利用深度學(xué)習(xí)的方法設(shè)計,自動生成更具特色的藝術(shù)字。利用CNN以及基于其的風(fēng)格遷移,將漢字圖片作為原始輸入,用對應(yīng)圖片作為風(fēng)格,遷移生成藝術(shù)字。
風(fēng)格遷移源于Gatys[2]發(fā)表的開創(chuàng)性論文Neural Style Transfer,展示了深度卷積神經(jīng)網(wǎng)絡(luò)在圖像風(fēng)格遷移領(lǐng)域的優(yōu)良性能。從參數(shù)卷積層中學(xué)習(xí)到的順序表示可以分為“內(nèi)容content”和“風(fēng)格style”。圖像的特征信息通過VGG等深度卷積網(wǎng)絡(luò)傳遞,并且可以使用中間特征激活來融合一個圖像的“風(fēng)格style”與另一個圖像的“內(nèi)容content”。從預(yù)訓(xùn)練網(wǎng)絡(luò)的特征激活中得出損失函數(shù)是神經(jīng)風(fēng)格遷移背后的基本思想,風(fēng)格遷移藝術(shù)字示意圖如圖1。
圖1 風(fēng)格遷移藝術(shù)字示意圖
Gaty[3,4]等人的風(fēng)格遷移網(wǎng)絡(luò)可以從圖像中分離地提取圖像的內(nèi)容特征和風(fēng)格特征,使用預(yù)訓(xùn)練VGG19模型和構(gòu)造圖像特征的Gram矩陣作為風(fēng)格表示,利用圖像迭代的方式直接優(yōu)化初始噪聲圖像的像素,生成具有原內(nèi)容和新風(fēng)格的風(fēng)格化圖像。本實驗藝術(shù)字風(fēng)格遷移模型如圖2。
圖2 藝術(shù)字風(fēng)格遷移框架圖
本文對文字圖像進行風(fēng)格遷移,對于內(nèi)容損失可以忽略,只關(guān)注風(fēng)格遷移即可,故基于CNN的風(fēng)格遷移的損失函數(shù)表示如式(1):
Ltotal(Ic,Is,I)=αLs(Is,I)。
(1)
給定內(nèi)容圖像Ic、風(fēng)格圖像Is和生成圖像I。Ltotal為風(fēng)格損失函數(shù),度量給定風(fēng)格圖像和生成圖像之間風(fēng)格表示的差異,系數(shù)α表示風(fēng)格損失函數(shù)的權(quán)重值。風(fēng)格損失使用圖像特征表示的Gram矩陣(即沒有減去均值的協(xié)方差矩陣)對圖像風(fēng)格進行建模,風(fēng)格損失函數(shù)表示如式(2):
(2)
(3)
于是風(fēng)格遷移圖像質(zhì)量優(yōu)劣取決于卷積層的選擇,本實驗選擇VGG19網(wǎng)絡(luò)中的其中5個卷積層,分別標(biāo)為a~e層,各自對應(yīng)VGG19網(wǎng)絡(luò)中的['block1_conv1','block2_conv1','block3_conv1','block4_conv1','block5_conv1','block5_conv4'],以驗證其遷移效果。以“花”字作為輸入文字圖片,添加花朵的風(fēng)格圖像,進行同等次數(shù)訓(xùn)練。VGG19網(wǎng)絡(luò)模型圖如圖3。
圖3 風(fēng)格損失使用的VGG19卷積層
不同卷積層對應(yīng)遷移結(jié)果如圖4。a~e層卷積網(wǎng)絡(luò)由顏色特征提取逐漸變化至形狀輪廓、大小的提取,從左至右逐漸摒棄色彩,轉(zhuǎn)而關(guān)注花朵、枝條的形狀,輪廓等具體風(fēng)格特征。此處從某種意義上講,也驗證了CNN的可解釋性[5]。
圖4 不同卷積層對應(yīng)遷移結(jié)果
因此,對于藝術(shù)字的風(fēng)格遷移,目前的重點放在如何挑選卷積層及其權(quán)重配置,色彩與輪廓結(jié)合、形狀與顏色并重,才能產(chǎn)生較好的效果圖。經(jīng)過調(diào)節(jié)loss函數(shù)與各層之間的權(quán)重,嘗試諸多層級搭配如圖5。主要展示了兩層及三層作為風(fēng)格損失的效果,至于更多層的效果,首先是隨層數(shù)增多,迭代時間倍數(shù)增加。且由圖4,從b層之后深層卷積層對生成圖像紋理進行影響,效果基本相似但迭代時間較長。
圖5 搭配卷積層效果
考慮到兼顧生成風(fēng)格圖像的色彩與輪廓,由圖5各層搭配效果圖,最終本實驗選擇a+b+c三層作為風(fēng)格損失的結(jié)果,能適應(yīng)多數(shù)紋理較強的風(fēng)格,達到較好的藝術(shù)字效果。值得注意的是,a+b+c組合生成圖像中“花”字輪廓上的花枝紋理為風(fēng)格遷移中根據(jù)風(fēng)格圖像生成,也由此可以看出該組合的遷移對紋理及顏色保留的更好,更加適合后續(xù)藝術(shù)字的生成。
由于只訓(xùn)練風(fēng)格圖,淺層特征圖記錄顏色紋理等信息,越深層隨著感受野的擴大得到的特征圖會提取形狀內(nèi)容等高級信息。此處經(jīng)過調(diào)節(jié)loss函數(shù),綜合決定使用a、b、c作為卷積層使生成字體達到較好藝術(shù)效果。
基于卷積神經(jīng)網(wǎng)絡(luò)的風(fēng)格遷移[6]藝術(shù)字,其具體步驟如下:
(1)本實驗使用宋體、楷體、黑體、等線、仿宋、微軟雅黑六種基本字體,居中,可選參數(shù)設(shè)定文字內(nèi)容、圖片大小、文字圖片背景色、文字顏色、繪制文字圖像,并添加隨機噪聲。
(2)加入風(fēng)格圖片。設(shè)定內(nèi)容圖片與風(fēng)格圖片的權(quán)重[7],由于本實驗是提取文字內(nèi)容,故不用添加內(nèi)容圖片的權(quán)重,只關(guān)注風(fēng)格圖即可。下一步進行預(yù)處理圖片,將其變形至(1,width,height)形狀,數(shù)據(jù)歸一到0~1之間,再將0~1之間的數(shù)據(jù)變成圖片形式返回,歸結(jié)到0~255之間。最后結(jié)合文字圖片、風(fēng)格圖片、生成圖片作為輸入向量,啟用卷積神經(jīng)網(wǎng)絡(luò)。
(3)使用訓(xùn)練完成的VGG19網(wǎng)絡(luò)。將網(wǎng)絡(luò)中不同層存儲以作備用。定義Gram矩陣,求取風(fēng)格損失,即風(fēng)格圖片與結(jié)果圖片的Gram矩陣之差,對所有元素求和。糅合多個特征層的數(shù)據(jù)后取平均值。隨后進一步對風(fēng)格損失求取梯度。
(4)最后開始迭代。采用scipy的L-BFGS優(yōu)化器。L-BFGS算法具有收斂速度快、內(nèi)存開銷少等優(yōu)點,通過儲存前m次迭代的少量數(shù)據(jù)來替代前一次的矩陣,可以較高效地完成優(yōu)化。此處優(yōu)化最好使用GPU,三層平均速度9 s左右,比cpu速度提高10倍。在此期間繪制loss的圖表,對其進行分析,可以看出在1000次迭代后loss不再變化,事實上在20次左右loss值已下降到較低水準(zhǔn),如果只是應(yīng)用于精度要求不那么高的設(shè)計實現(xiàn),已達到要求。
(5)風(fēng)格遷移效果[8]。因為風(fēng)格遷移的本意是將風(fēng)格圖的藝術(shù)紋理轉(zhuǎn)移至內(nèi)容圖上,但藝術(shù)風(fēng)格是抽象難以形容的,故對算法的效果進行評估是一件困難的事情。目前對算法的評估方式主要有兩種,定性和定量評估。定性評估的主要手段是主觀感情評測,及人為調(diào)研來投票決定結(jié)果,但此法受被測人群藝術(shù)素養(yǎng)、知識理解、感情信息的影響巨大,不是最好的評估方式。定量評估則通過特定意義的數(shù)學(xué)指標(biāo)進行對比,主要使用的指標(biāo)是訓(xùn)練時間,但這些指標(biāo)不能用來評估風(fēng)格遷移算法的實現(xiàn)效果,比如簡單的藝術(shù)性、適用性。在風(fēng)格遷移領(lǐng)域中設(shè)計出一個標(biāo)準(zhǔn)性評估方法有助于理解如何改進現(xiàn)有的風(fēng)格遷移算法。而本文是生成藝術(shù)字內(nèi)容,故與市面上比較常用的幾款藝術(shù)字體生成器作比較,展現(xiàn)深度學(xué)習(xí)算法生成的內(nèi)容的優(yōu)越性。
藝術(shù)字生成器與風(fēng)格遷移藝術(shù)字對比如圖6。圖6a、6b、6c是利用市面上成熟的藝術(shù)字生成器制造的藝術(shù)字,可以看出它不能對字形改造,只能在原有字形基礎(chǔ)上,進行陰影、漸變、填充,再輔助顏色變化,簡單的達到藝術(shù)字模式生成。而風(fēng)格遷移藝術(shù)字明顯不同,如圖6d、6e、6f在原有字形固定的基礎(chǔ)上[9],紋理按照風(fēng)格圖片,與內(nèi)容圖片結(jié)合,能夠顯著表現(xiàn)出風(fēng)格特性,不再拘泥于固定的字形結(jié)構(gòu)。只需要簡單的一張風(fēng)格圖片,就能打造出合適的藝術(shù)字體,從而復(fù)用到不同場景,產(chǎn)生較好的效果。
圖6 藝術(shù)字生成器與風(fēng)格遷移藝術(shù)字對比
風(fēng)格遷移損失圖如圖7??梢钥闯龅?次之后loss值達到比較平穩(wěn)的狀態(tài)。而在百次后達到幾乎飽和的值,此刻風(fēng)格紋理已較好地融入圖像之中,風(fēng)格遷移也能達到較好的效果。
圖7 風(fēng)格遷移迭代loss圖
此次風(fēng)格遷移實驗擴展了藝術(shù)字應(yīng)用的種類,較好地完成了藝術(shù)字對應(yīng)風(fēng)格生成,在應(yīng)用上比市場上的藝術(shù)字生成器效果更好。而在精確度評價方面,利用VGG19網(wǎng)絡(luò)可以很好地學(xué)習(xí)對應(yīng)紋理特征,并對其可解釋性做出補充說明。