深度 | AI修圖藝術(shù):Prisma背后的奇妙算法
在Prisma的應(yīng)用下載評(píng)論區(qū)看到這么一句好玩的話:世界一半人在用《Pokemon GO》抓精靈,另一半人在用這個(gè)軟件修圖。
圖像編輯軟件早就數(shù)不勝數(shù),比如膠片風(fēng)的VSCO,拼圖美顏的拍立得、美圖秀秀,二次元卡通的魔漫相機(jī)、臉萌,自拍美顏的PICSPLAY、美顏相機(jī),主打?yàn)V鏡相機(jī)的Roookie Cam、MIX濾鏡大師等等,這些現(xiàn)象級(jí)產(chǎn)品在這個(gè)快速迭代的時(shí)代層出不窮, 那么Prisma憑什么在這樣的環(huán)境下殺出重圍?連俄羅斯總理梅德韋杰夫都特地“翻牌”了。
首先,Prisma不是簡(jiǎn)單地在原圖上轉(zhuǎn)換色調(diào)或者環(huán)境風(fēng)格,也不只是利用普通的濾鏡來改變圖像的光線、顏色或者重疊圖片,它會(huì)根據(jù)你提供的圖片內(nèi)容和你要求的風(fēng)格圖片的樣式重新“畫出”一張新的圖片,它并不一定使你變美,但它一定讓你遇見全新的自己(如下,左一為原圖)。
那么,Prisma與人工智能算法Neural art到底怎么回事?Prisma與CNN的具體結(jié)合、生成圖片的過程又是怎樣的呢?
Prisma與人工智能算法Neural art
Prisma的所做的風(fēng)格轉(zhuǎn)換是機(jī)器視覺領(lǐng)域一直在研究的一個(gè)問題,稱為texture transfer (紋理轉(zhuǎn)換),其目標(biāo)為將源圖片的風(fēng)格合成進(jìn)目標(biāo)圖片中同時(shí)保留目標(biāo)圖片的語意內(nèi)容。
本質(zhì)上來說,將圖片的內(nèi)容和風(fēng)格分離并不一定是一個(gè)定義明確的問題 (Well-defined problem),這是因?yàn)椴⒉荒軠?zhǔn)確定義出圖片中的哪部分屬于內(nèi)容,哪部分屬于風(fēng)格,很有可能內(nèi)容與風(fēng)格是交織在一起,沒有辦法進(jìn)行分離。
所以圖片的內(nèi)容和風(fēng)格是否可以完全分離這還是一個(gè)待解的問題,如果可以,那么用什么樣的方法呢?
Prisma背后的技術(shù)
Prisma背后的技術(shù)基于一篇今年CVPR oral文章 “Image Style Transfer Using Convolutional Neural Networks”。
其實(shí)早在Prisma引爆大眾市場(chǎng)的半年前,此方法的巧妙及其驚人效果已經(jīng)引起在學(xué)術(shù)界引起了廣泛關(guān)注。眾所周知在如今的人工智能領(lǐng)域引起革命的深度學(xué)習(xí)技術(shù)已經(jīng)將眾多任務(wù)推向了實(shí)用的水平,而Prisma用的技術(shù)也不出意外的基于深度神經(jīng)網(wǎng)絡(luò),它的系統(tǒng)核心是利用神經(jīng)表征來分離,再組合隨機(jī)圖片的內(nèi)容和風(fēng)格,以此來實(shí)現(xiàn)一個(gè)可用來描繪藝術(shù)圖像的算法。它的基本想法是利用一個(gè)多層的卷積神經(jīng)網(wǎng)絡(luò)(CNN)抽象出給定繪畫作品里一些高級(jí)的隱藏特征用來模仿繪畫風(fēng)格,并把這個(gè)繪畫風(fēng)格應(yīng)用到一個(gè)新的圖片上。
而在紋理轉(zhuǎn)換領(lǐng)域,之前傳統(tǒng)方法之所以沒能取得這么驚人的效果,其本質(zhì)原因在于之前非深度學(xué)習(xí)的方法只能獲取到目標(biāo)圖片低層次的圖片特征,這導(dǎo)致這些方法無法獨(dú)立的對(duì)圖片的語意內(nèi)容和風(fēng)格的變化進(jìn)行有效地建模,從而無法很好地對(duì)兩者進(jìn)行解耦和合成。
而深度神經(jīng)網(wǎng)絡(luò)之所以可以在眾多領(lǐng)域中取得驚人效果,正是由于其可以抽取出高層次的信息表征。Prisma所使用的方法之所以能成功,就是很巧妙地利用了深度神經(jīng)網(wǎng)絡(luò)抽取高層圖片表達(dá)的能力,能在幾十秒內(nèi)把一張普通的照片轉(zhuǎn)變成一副極具藝術(shù)特色的現(xiàn)代畫作或者西方名畫風(fēng)格作品。
奧妙在哪里?
下面將采用論文中的兩個(gè)示意圖完整剖析其中的奧妙。
正如上文所說,風(fēng)格轉(zhuǎn)換需要對(duì)圖片的內(nèi)容和風(fēng)格進(jìn)行單獨(dú)地表示,上圖中的分別將源圖(風(fēng)格提供方)和目標(biāo)圖(內(nèi)容提供方)輸入到由多層卷積層和池化層組成的深度神經(jīng)網(wǎng)絡(luò)中。對(duì)于目標(biāo)圖直接使用卷積的響應(yīng)在每一層中進(jìn)行重建,可視化的結(jié)果為紅色框中的結(jié)果,可以看出在低層的重建圖像幾乎和目標(biāo)圖一致,而越高層網(wǎng)絡(luò)重建出來的圖像的一些細(xì)節(jié)的像素被丟棄而那些圖片高層次的語意內(nèi)容被保留。而源圖計(jì)算每一層的卷積的特征圖(feature maps)的相關(guān)系數(shù)來重建出風(fēng)格的特征表示,從綠色框的可視化結(jié)果可以看出,這種抽取風(fēng)格表示的方式在不同網(wǎng)絡(luò)層成功提取出不同尺度的風(fēng)格特征。
上圖講解了深度神經(jīng)網(wǎng)絡(luò)如何對(duì)風(fēng)格和內(nèi)容表示進(jìn)行單獨(dú)的建模,接下去就可以使用監(jiān)督學(xué)習(xí)的深度神經(jīng)網(wǎng)絡(luò)進(jìn)行風(fēng)格的轉(zhuǎn)換了。
圖中左右兩邊的網(wǎng)絡(luò)用于抽取源圖的風(fēng)格表示和目標(biāo)圖的內(nèi)容表示,而中間的網(wǎng)絡(luò)用于對(duì)風(fēng)格進(jìn)行合成,論文使用的是白噪聲圖片作為啟始圖,思想是通過左右兩個(gè)網(wǎng)絡(luò)提供的風(fēng)格和內(nèi)容表征進(jìn)行監(jiān)督學(xué)習(xí),使得輸入圖片每一層抽取出來的風(fēng)格表征和高層抽取出來的內(nèi)容表征和左右兩個(gè)網(wǎng)絡(luò)相應(yīng)網(wǎng)絡(luò)層重建出來的表征越來越一致,如此通過標(biāo)準(zhǔn)的隨機(jī)梯度下降算法,不斷迭代使得白噪聲圖片變成最終想要的合成圖。
使用數(shù)學(xué)表達(dá)去描述上述思想就是需要構(gòu)造一個(gè)損失函數(shù)(紅框所示),此損失函數(shù)是由風(fēng)格損失項(xiàng)和內(nèi)容損失項(xiàng)兩者線性組成,其中alpha和belta分別代表風(fēng)格和內(nèi)容的權(quán)重比例,若alpha/belta高則生成圖會(huì)更凸顯出內(nèi)容而風(fēng)格化會(huì)少一些,低則生成圖會(huì)風(fēng)格化強(qiáng)烈但是內(nèi)容被稀釋,這也是Prisma提供用戶調(diào)節(jié)的原理所在。(風(fēng)格損失項(xiàng)和內(nèi)容損失項(xiàng)的具體細(xì)節(jié)可以參見論文。)當(dāng)有了損失函數(shù),就可以對(duì)圖像向量求解梯度,進(jìn)而使用后項(xiàng)傳遞算法就可以對(duì)輸入的圖像不斷進(jìn)行更新從而進(jìn)行風(fēng)格轉(zhuǎn)換(綠框所示)。
另外,通過在提取圖像風(fēng)格特征之前先改變圖像的大小,可以通過控制-style_scale參數(shù)該從圖像中提取哪種藝術(shù)特征。(三幅圖像從左到右,-style_scale=2.0、1.0、0.5)
除此之外,Prisma還可以使用超過一種風(fēng)格圖像來混合多種藝術(shù)風(fēng)格。(下圖分別為:”The Starry Night” + “The Scream”, “The Scream” + “Composition VII”)
或者在使用多個(gè)風(fēng)格圖像的時(shí)候,可以控制混合的程度來呈現(xiàn)不同的圖像類型。
還可以在保留顏色的前提下改變圖像風(fēng)格,比如說,如果你設(shè)置參數(shù)-original_colors 1,系統(tǒng)輸出的圖片會(huì)保留原圖的顏色(如下圖)。
以上就是Prisma背后的全部技術(shù)原理,當(dāng)我們剖析一下發(fā)現(xiàn)其實(shí)里面的原理并不復(fù)雜,對(duì)于熟悉深度學(xué)習(xí)的人來說,不出一周就可以復(fù)現(xiàn)出其中的算法。
但最重要的是體會(huì)到此算法成功的核心在于利用了深度學(xué)習(xí)網(wǎng)絡(luò)對(duì)于高層語意信息的表達(dá)能力,同時(shí)巧妙的構(gòu)造出損失函數(shù),其他的就只是順?biāo)浦鄣氖褂蒙疃壬窠?jīng)網(wǎng)絡(luò)進(jìn)行求解而已。
利用AI算法修圖雖酷,但Prisma也有一定的缺陷
比如說,一定要在有網(wǎng)絡(luò)狀態(tài)較好、網(wǎng)絡(luò)較快的狀態(tài)下才可以使用順暢,因?yàn)樾枰诰€加載繪畫風(fēng)格圖像以及用戶提供的內(nèi)容圖片需要發(fā)送到遠(yuǎn)程的服務(wù)器上進(jìn)行人工智能計(jì)算后再傳回來,所以,相對(duì)其他修圖軟件,它的圖片編輯速度慢很多,一般都需要等待幾十秒才可以看到預(yù)覽效果。
另外,因?yàn)樗械膱D片處理都是在云端完成,所以會(huì)有少部分用戶遇到使用人數(shù)過多,服務(wù)器過載的情況。
一樣使用深度學(xué)習(xí),deepart.io為何不像Prisma一樣火?
在Prisma出現(xiàn)之前,也有過一款基于深度學(xué)習(xí)技術(shù)的修圖應(yīng)用:deepart.io,但是deepart卻無法取得像Prisma一樣的成功。
?一方面在于其處理一張圖片需要消耗大量的的GPU時(shí)間,導(dǎo)致了很多服務(wù)器資源開銷,如果用戶愿意承擔(dān)這部分費(fèi)用,處理時(shí)間在半小時(shí)左右,如果不捐助的話,需要6個(gè)小時(shí)左右;
另一方面,deepart主要是由大學(xué)的研究員做的技術(shù)性實(shí)驗(yàn),并不會(huì)投入過多的精力,在風(fēng)格圖像類型、品牌推廣和商業(yè)化應(yīng)用上考慮較少。
而Prisma通過優(yōu)化了算法,相對(duì)縮短了一大部分的操作時(shí)間,并且用戶不需要到網(wǎng)頁提交照片、不需要注冊(cè)即可免費(fèi)使用35種不同繪畫風(fēng)格的濾鏡,在這個(gè)移動(dòng)互聯(lián)網(wǎng)的時(shí)代,這樣的移動(dòng)App更受大眾歡迎。
最近,Prisma推出了Android版,這無疑會(huì)帶來更大的用戶量,日活躍度有可能超越200萬人次。據(jù)透露,“視頻濾鏡”已經(jīng)進(jìn)入內(nèi)測(cè)階段,大約在一周后會(huì)發(fā)布,此外,還有可能會(huì)推出“GIF藝術(shù)濾鏡”、“視頻直播”等功能,創(chuàng)造出“流動(dòng)的油畫”。
還記得在兩年前,波蘭畫家兼導(dǎo)演dorota kobiela以及奧斯卡獲獎(jiǎng)制片人hugh welchman開始籌備一部專門向梵高致敬的手繪油畫電影《loving vincent》,近百名畫師經(jīng)高強(qiáng)度訓(xùn)練并每日模仿梵高風(fēng)格,目前已完成超過 5.6 萬幅繪畫作品。在這部片里,每一幅靜止的畫都是模仿梵·高繪畫風(fēng)格的油畫,電影每一秒都將用到 12 幅這樣的畫,然后一系列靜止的畫組合在一起快速播放,形成動(dòng)態(tài)的效果。
如果把Neural art的技術(shù)成功應(yīng)用到視頻上,這部梵高的電影再不需要如此高投入,甚至還“拍攝”任意繪畫風(fēng)格的電影,將電影與藝術(shù)糅合,把自己封印在藝術(shù)品里,是件很美的事,就像蒙娜麗莎,在達(dá)芬奇的畫中,她的微笑是永恒的。人對(duì)美和永恒的追求,這也許是Prisma能這樣迅速奪取人心的深層次原因。
Prisma的意義在于以藝術(shù)的名義用流行的方式把深度學(xué)習(xí)的能力展現(xiàn)給了大眾。雖然如今眾多的人工智能公司使用AI技術(shù)去服務(wù)大眾,但像Prisma這樣如此火熱的引爆大眾對(duì)于如今人工智能技術(shù)的驚訝還十分少見。
但我想這只是一個(gè)開始,人工智能技術(shù)正在向各個(gè)領(lǐng)域進(jìn)發(fā),無論是高科技領(lǐng)域如自動(dòng)駕駛,機(jī)器人,還是一些偏門的領(lǐng)域,如藝術(shù),社會(huì)公益,都會(huì)不斷看到人工智能帶來的實(shí)惠和驚喜。
也許你第一次使用Prisma的時(shí)就被其效果深深的折服。我想說的是,你的驚訝才剛剛開始。
作者:tuputech,圖普科技工程師
原文地址:http://www.leiphone.com/news/201607/DAHZ0RG1kuVi8bNB.html
本文來源于人人都是產(chǎn)品經(jīng)理合作媒體@雷鋒網(wǎng),作者@tuputech
- 目前還沒評(píng)論,等你發(fā)揮!