聶宇 聶鑫 朱依琳 廖晨陽
摘要:隨著生活水平的逐日提高,人們對圖片的視覺需求不再僅僅局限于圖片的原始風(fēng)格,由此誕生了各式各樣的濾鏡,它們讓圖片更具有觀賞性。而基于機(jī)器深度學(xué)習(xí)的圖像風(fēng)格化應(yīng)用,可以在此方向更進(jìn)一步,利用訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行圖像特征提取,使圖片呈現(xiàn)出不同的藝術(shù)風(fēng)格。
關(guān)鍵詞:機(jī)器學(xué)習(xí);圖像風(fēng)格化;卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號: TP18? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)07-0015-03
Abstract: With the daily improvement of living standards, people's visual needs for pictures are no longer limited to the original styles,therefore? various filters have been born, which make the pictures more enjoyable. The application of image style transfer based on machine deep learning can go further in this direction, using the trained convolutional neural network model for image feature extraction, so that the pictures present different artistic styles.
Key words: Machine Leaning;Image stylization;Convolutional Neural Network
1 研究背景
機(jī)器學(xué)習(xí)作為一門專門研究計算機(jī)如何模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識或技能,在已有的知識結(jié)構(gòu)上使之不斷改善自身的性能的學(xué)科。機(jī)器能否像人類一樣能具有學(xué)習(xí)能力呢?1959年,美國的塞繆爾(Samuel)設(shè)計了一個下棋程序,這個程序具有學(xué)習(xí)能力,它可以在不斷地對弈中改善自己的棋藝。4年后,這個程序戰(zhàn)勝了設(shè)計者本人。又過了3年,這個程序戰(zhàn)勝了美國一個保持8年之久的常勝不敗的冠軍。這個程序向人們展示了機(jī)器學(xué)習(xí)的能力,提出了許多令人深思的社會問題與哲學(xué)問題[1]。
近年來,隨著人民生活水平的不斷提高,使用圖像成為人們記錄生活的主要方式。不論人們走到哪里,都是利用手機(jī)記錄身邊的人和景,讓生活過得如畫一般,圖片對于用戶的觀賞性成為用戶最關(guān)注的問題。無奈的是,用戶的拍照水平,而為了得到更具觀賞性的圖片只能通過后期處理,但是后期處理又是用戶的一大問題。然而在當(dāng)前圖片不具備一定觀賞性的條件下,如何讓圖片更具觀賞性?讓用戶更為喜愛?
而畫家的藝術(shù)品有自己獨特的藝術(shù)風(fēng)格,在這之前,沒有人工智能系統(tǒng)可以學(xué)習(xí)畫的風(fēng)格,但是在2015年8月,由Leon A. Gatys,Alexander S. Ecker,Matthias Bethge發(fā)表了論文《A Neural Algorithm of Artistic Style》,在論文當(dāng)中提出深度學(xué)習(xí)的算法,將畫的內(nèi)容(content)和風(fēng)格(style)分開來,然后將一幅畫的風(fēng)格和另一幅畫的內(nèi)容重新組合,生成新的畫。
2016年俄羅斯阿列克謝·莫伊辛恩科夫創(chuàng)建的Prisma軟件在蘋果商店發(fā)布,該軟件是利用神經(jīng)網(wǎng)絡(luò)和人工智能技術(shù),為普通照片加入藝術(shù)效果的照片編輯軟件。并在上線首周,收獲100萬活躍用戶。
2018年北京郵電大學(xué)發(fā)表論文《基于深度學(xué)習(xí)的圖像風(fēng)格化處理》,解讀了基于深度學(xué)習(xí)下的圖像風(fēng)格化處理過程。
本課題就是本著利用機(jī)器學(xué)習(xí),讓每一個用戶都能讓自己的照片更具觀賞性,即使用戶沒有畢加索一樣的繪畫藝術(shù)功底,可是卻能通過機(jī)器深度學(xué)習(xí)畢加索的畫,然后將畫的風(fēng)格遷移到照片當(dāng)中。
2 研究內(nèi)容
基于機(jī)器深度學(xué)習(xí)的圖片風(fēng)格化應(yīng)用程序,通過對TensorFlow框架的研究學(xué)習(xí)[2],利用已經(jīng)訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò),去學(xué)習(xí)各種風(fēng)格的圖片,然后風(fēng)格遷移到另外的圖片上。
該軟件主要分為服務(wù)器端和移動客戶端,服務(wù)器端采用Google的機(jī)器學(xué)習(xí)框架TensorFlow[3,4],編程語言使用Python,Web框架使用Django。移動客戶端采用Java和Android進(jìn)行開發(fā)。
移動客戶端通過攝像頭進(jìn)行圖像采集,然后將圖像上傳到服務(wù)器,針對用戶選取的風(fēng)格樣式,服務(wù)器利用訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行圖像特征提取,并且不斷地重塑圖像的風(fēng)格和內(nèi)容,最后將生成的圖片返回給移動客戶端。
3 風(fēng)格模型訓(xùn)練
(1)模型訓(xùn)練
圖像模型的訓(xùn)練是服務(wù)器端對一種圖片風(fēng)格的預(yù)訓(xùn)練,一般情況下利用算法來實現(xiàn)圖像的風(fēng)格遷移通常要耗費很長的時間,在CPU下進(jìn)行圖片遷移要耗費3至5個小時,即使在GPU下進(jìn)行圖片遷移都要十多分鐘,在這樣的情況下,用戶的體驗感特別差,所以為了提高用戶的體驗度,必須縮短圖片風(fēng)格遷移的時間,通過預(yù)先訓(xùn)練圖像風(fēng)格,然后利用生成的模型,用戶就可以在3-5秒以內(nèi)獲得服務(wù)器反饋的風(fēng)格遷移后的圖片。
圖像模型訓(xùn)練的訓(xùn)練網(wǎng)絡(luò)會根據(jù)內(nèi)容圖片和風(fēng)格樣式生成一張噪聲圖片,并將噪聲圖片傳給網(wǎng)絡(luò),這張噪聲圖片既具有內(nèi)容圖片的Content,又有風(fēng)格圖片的Style,然后再根據(jù)content loss值和style loss調(diào)整噪聲圖片,不斷重塑圖片的內(nèi)容與風(fēng)格,進(jìn)行了一定的次數(shù)后,loss值和相對于最開始時的值也就小了,而噪聲圖片也就具備了圖片的內(nèi)容與風(fēng)格[5-7]。
其中p→代表的是Content內(nèi)容圖像,x→表示生成的噪聲圖像,P和F分別代表它們對應(yīng)層的響應(yīng);且假設(shè)第L層的響應(yīng)是F1∈RNl × Ml ,其中Nl表示第L層過濾器的個數(shù),Ml表示過濾器的大小。Fijl表示的是第L層第i個過濾器在位置j的輸出。
因為某一層的Style可以用Gl∈RNl×Nl來表示,其中Nl×Nl表示不同過濾器響應(yīng)的內(nèi)積;a→表示Style的圖像,x→表示生成的噪聲圖像,Al和Gl分別表示第L層的Style。
最后通過優(yōu)化的方法使得Content loss和Style loss的總值最小,如式4:
其中[α和β]分別表示Content和 Style 的權(quán)重,當(dāng)[α]較大時,則噪聲圖片的內(nèi)容和Content圖片內(nèi)容更為吻合;當(dāng)[β]較大時,則噪聲圖片的風(fēng)格和Style圖片風(fēng)格更為吻合。
(2)訓(xùn)練實施
圖像模型訓(xùn)練功能通過訓(xùn)練好的VGG19卷積神經(jīng)網(wǎng)絡(luò)和COCO數(shù)據(jù)集來訓(xùn)練目標(biāo)風(fēng)格模型,COCO數(shù)據(jù)集中的train2014圖片作為輸入的內(nèi)容圖片,另外輸入一張要訓(xùn)練的風(fēng)格圖片。訓(xùn)練模型需要耗費很長的時間,但是使用訓(xùn)練好的模型進(jìn)行圖像風(fēng)格遷移則可以很快地得到結(jié)果。
圖像模型訓(xùn)練功能主要由兩個網(wǎng)絡(luò)構(gòu)成,分別是生成網(wǎng)絡(luò)(Image Transform Net)和損失網(wǎng)絡(luò)(Loss Network),如圖1所示。生成網(wǎng)絡(luò)接收一張圖片作為輸入,然后分別經(jīng)過卷積模塊,殘差模塊,和反卷積模塊,最后生成網(wǎng)絡(luò)輸出的也是一張圖片[5-7]。損失網(wǎng)絡(luò)把生成網(wǎng)絡(luò)輸出的圖片y作為輸入,對于每一張輸入的圖片y,它都有一個對應(yīng)的風(fēng)格目標(biāo)ys和內(nèi)容目標(biāo)yc,y通過和風(fēng)格目標(biāo)(ys)、內(nèi)容目標(biāo)(yc)進(jìn)行對比做損失計算,然后根據(jù)計算得到的loss值調(diào)整生成網(wǎng)絡(luò)的權(quán)重賦值,通過不斷調(diào)整loss值來達(dá)到目標(biāo)效果。當(dāng)模型訓(xùn)練開始后,訓(xùn)練網(wǎng)絡(luò)會根據(jù)內(nèi)容圖片和噪聲生成一張噪聲圖片,并將噪聲圖片傳給網(wǎng)絡(luò),計算loss值,然后再根據(jù)loss值調(diào)整噪聲圖片,不斷重復(fù)如此操作,進(jìn)行迭代了一定的次數(shù)后,loss值和相對于最開始時的值小了,而噪聲圖片也就具備了圖片的內(nèi)容與風(fēng)格。
服務(wù)器端通過命令的形式訓(xùn)練模型:
Python style.py --checkpoint-dir ./model/ --style ./style/udnie.jpg
style.py 是模型訓(xùn)練的腳本文件
--checkpoint-dir ./model/ 是訓(xùn)練好的模型保存的路徑
--style ./style/udnie.jpg是目標(biāo)風(fēng)格
在訓(xùn)練模型的過程中,會生成四個相關(guān)文件,如圖2所示,分別是:checkpoint、fns.ckpt.data-00000-of-00001 、fns.ckpt.index、fns.ckpt.meta。Checkpoint文件是文本文件,在這個文件里面記錄了保存的最新的checkpoint文件信息和一些其他的checkpoint相關(guān)文件列表;fns.ckpt.meta保存了網(wǎng)絡(luò)的圖結(jié)構(gòu),在這個文件當(dāng)中包含變量、集合等信息;fns.ckpt.data-00000-of-00001 、fns.ckpt.index都是二進(jìn)制文件,記錄了網(wǎng)絡(luò)中的所有權(quán)重和偏置等變量數(shù)值。
4 應(yīng)用功能
本應(yīng)用程序分服務(wù)器端和移動客戶端,功能示意如圖3所示。
服務(wù)器端:
(1)圖像存貯功能:實現(xiàn)用戶上傳的圖像數(shù)據(jù)的存貯;
(2)圖像風(fēng)格模型訓(xùn)練功能:實現(xiàn)圖像模型的訓(xùn)練,選取藝術(shù)風(fēng)格獨特,且觀賞性好的圖片進(jìn)行訓(xùn)練,生成特定的模型;
(3)圖像風(fēng)格化處理功能:實現(xiàn)圖像風(fēng)格化的轉(zhuǎn)變處理,將圖片的內(nèi)容層和模型的風(fēng)格層重組成新的圖片,如圖4所示。
移動客戶端:
(1)圖像采集功能:實現(xiàn)圖的采集,并將圖像上傳到服務(wù)器請求處理圖像,在服務(wù)器處理完圖片后接收處理后的圖片。
(2)圖像上傳功能:實現(xiàn)用戶上傳圖像。
5 結(jié)束語
在最初,我們通過人力提取圖像特征,準(zhǔn)備工作消耗了大量的人力物力;而現(xiàn)在,通過深度學(xué)習(xí)可以快速地提取圖像的特征,大大減少了資源消耗和技術(shù)要求,即使用戶不具備好的拍照水平,不具備后期處理圖片的能力,他們也可以對自己的圖片進(jìn)行風(fēng)格化處理,從而得到更具觀賞性的圖片。
隨著對卷積神經(jīng)網(wǎng)絡(luò)的進(jìn)一步研究,圖像風(fēng)格化的技術(shù)將會愈發(fā)成熟,圖像風(fēng)格將逐漸增加,用戶也將會有更多的選擇。
參考文獻(xiàn):
[1] 徐曉琳.面向大規(guī)模數(shù)據(jù)分析與分類的正則化回歸算法[D].合肥:安徽大學(xué),2017.
[2] 章敏敏,徐和平,王曉潔,等.谷歌TensorFlow機(jī)器學(xué)習(xí)框架及應(yīng)用[J].微型機(jī)與應(yīng)用,2017,36(10):58-60.
[3] 谷歌推出TensorFlow機(jī)器學(xué)習(xí)系統(tǒng)[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2015,28(11):92.
[4] 吳聯(lián)坤.基于TensorFlow分布式與前景背景分離的實時圖像風(fēng)格化算法[D].杭州:浙江大學(xué),2017.
[5] 李盛超.基于深度學(xué)習(xí)的圖像水墨風(fēng)格渲染應(yīng)用[D].南京:南京大學(xué),2017.
[6] 竇亞玲,周武彬,季人煌.基于卷積神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移技術(shù)[J].現(xiàn)代計算機(jī)(專業(yè)版),2018,(30):47-51,60.
[7] 萬士寧.基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別研究與實現(xiàn)[D].成都:電子科技大學(xué),2016.
【通聯(lián)編輯:唐一東】