趙凱風(fēng)
(合肥一中高三26班安徽省合肥一中,230601)
基于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)梵高的畫風(fēng)
趙凱風(fēng)
(合肥一中高三26班安徽省合肥一中,230601)
梵高的畫風(fēng)以筆觸與色彩為特色,對(duì)此類以筆觸、色彩見(jiàn)長(zhǎng)且形成獨(dú)特作畫風(fēng)格的畫家,基于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí),通過(guò)neural-style開(kāi)源庫(kù),可快捷地實(shí)現(xiàn)對(duì)梵高等畫家畫作的學(xué)習(xí)而將其他的圖片繪畫成已經(jīng)學(xué)習(xí)到的目標(biāo)風(fēng)格。
深度學(xué)習(xí);神經(jīng)網(wǎng)絡(luò);學(xué)習(xí)畫家風(fēng)格
最早從事通過(guò)深度神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)不同畫風(fēng)格而作畫的這個(gè)領(lǐng)域的是德國(guó)圖賓根大學(xué)的Bethge實(shí)驗(yàn)室,主要是由Leon Gatys、 Alexander Ecker 和 Matthias Bethge這三位研究員進(jìn)行研究的。后來(lái)全球很多開(kāi)發(fā)者基于德國(guó)這三位研究員的成果開(kāi)發(fā)了很多相關(guān)的開(kāi)源庫(kù),其中Anish Athalye基于TensorFlow開(kāi)發(fā)的neural-style庫(kù)是python版的深度學(xué)習(xí)畫家風(fēng)格作畫的開(kāi)源庫(kù)。
基于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)畫家風(fēng)格的基本原理是通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)將圖像分解成若干部分并不斷地被訓(xùn)練成為學(xué)習(xí)集;然后這些被分割的學(xué)習(xí)對(duì)象則被深度學(xué)習(xí)算法學(xué)習(xí),從而基于一張新的圖片而找到目標(biāo)的圖形結(jié)果。這種方法只適合以色彩、筆觸、紋理而見(jiàn)長(zhǎng)的畫家的畫作風(fēng)格,故而基于這種深度學(xué)習(xí)的算法,只適合梵高、畢加索等這類畫家的風(fēng)格。
不重復(fù)造輪子是計(jì)算機(jī)應(yīng)用科學(xué)的首要法則,選型合適的開(kāi)源庫(kù)可快速實(shí)現(xiàn)深度學(xué)習(xí)畫家的畫風(fēng)。而選擇python語(yǔ)言的開(kāi)源庫(kù),則是因?yàn)閜ython語(yǔ)言的開(kāi)發(fā)效率足夠高且此時(shí)對(duì)效率并無(wú)苛求,雖說(shuō)基于純cpu的算法實(shí)現(xiàn)會(huì)需要幾十分鐘的時(shí)間,但效率并非快速實(shí)踐深度學(xué)習(xí)畫家風(fēng)格的瓶頸問(wèn)題,反而實(shí)現(xiàn)深度學(xué)習(xí)畫家風(fēng)格的便捷度是首要訴求,因此開(kāi)發(fā)效率是瓶頸問(wèn)題。因此采用人性化、開(kāi)發(fā)效率搞的python語(yǔ)言來(lái)調(diào)用Anish Athalye的neural-style開(kāi)源庫(kù)。
Neural-style庫(kù)(https://github.com/anishathalye/ neural-style)的環(huán)境設(shè)置較為簡(jiǎn)單,以mac為例,其主要依賴于五種庫(kù)或文件,其中可用pip(python的包管理軟件)來(lái)直接安裝Scipy、Numpy、Pillow;TensorFlow的安裝較為復(fù)雜,可用pip安裝,而其中所出error,查詢stackoverflow以依次補(bǔ)全所需模塊即可,但需注意,mac系統(tǒng)下TensorFlow不支持調(diào)用GPU的版本,否則環(huán)境設(shè)置時(shí)會(huì)出錯(cuò),因此只可選擇只調(diào)用CPU的版本;最后則要下載Pre-trained VGG network文件,且此處應(yīng)嚴(yán)格從github的項(xiàng)目庫(kù)主頁(yè)來(lái)下載相應(yīng)版本的VGG文件,不同的VGG文件則會(huì)引發(fā)嚴(yán)重錯(cuò)誤。

當(dāng)環(huán)境設(shè)置好后,即可通過(guò)“python neural_style.py --content <content file> --styles <style file> --output<o(jì)utput file>”命令來(lái)實(shí)現(xiàn)“深度學(xué)習(xí)圖像A的風(fēng)格,把圖像B畫成圖像C”。以下圖為例(掃碼即可看見(jiàn)圖像本身),圖像A即上文所說(shuō)的畫家的畫作,命令中的<style file>即圖像A的文件名;<content file>即圖像B的文件名;<o(jì)utput file>即基于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)而輸出的圖像C的文件名。
綜上所述,經(jīng)多次實(shí)踐得出:從效果上來(lái)說(shuō)采用多層卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí),在學(xué)習(xí)紋理、色彩、筆觸方面非常合適、效果顯著、藝術(shù)感很強(qiáng),并與所學(xué)畫家的畫作風(fēng)格非常相像;從效率上來(lái)說(shuō),純用CPU的深度學(xué)習(xí),速度較慢,需要若干分鐘乃至若干小時(shí);基于GPU的可降低的速度到幾十秒以內(nèi);從運(yùn)行效率角度對(duì)為未來(lái)的展望,CPU平臺(tái)不適合作為機(jī)器學(xué)習(xí)的硬件平臺(tái),利用GPU加速是目前的一種方式,而未來(lái)圖像處理或人工智能的硬件平臺(tái)更有可能是FPGA被廣泛應(yīng)用。
[1] Leon A. Gatys, Alexander S. Ecker, Matthias Bethge. A Neural Algorithm of Artistic Style[D].Eberhard-Karls-Universitaet Tuebingen Press,2015
[2] Leon A. Gatys, Alexander S. Ecker, Matthias Bethge. Texture Synthesis Using Convolutional Neural Networks[J]. Computer Science, 2015, 70(1):51-5
Study on Van Gogh 's Style in Deep Neural Network
Zhao Kaifeng
(Hefei, one of the 26 Middle School in Hefei, Anhui Province,one in,230601)
Van Gogh's style is characterized by brushstrokes and colors. For those painters whose strokes and colors are famous for their unique style of drawing,based on deep neural network learning,through neural-style open-source library,Painter painting learning and other images will be painted into the target style has been learned.
depth learning;neural network;learning painter style