引子:有段子手言,地球上的人一半在用Pokemon Go追皮卡丘的時候必盖,剩下的一半在用Prisma修圖拌牲!這款由俄羅斯創(chuàng)業(yè)團隊研發(fā)的圖片處理app俱饿,從研發(fā)到上線僅幾個月就用戶量驚人歌粥,更讓人驚訝的是,團隊僅僅只有四個人拍埠。這真的可能嗎失驶?
如果你是因為標題黨而進來,謝謝并希望你離開的時候能獲得你想要的干貨枣购;如果你已經猜到了答案嬉探,也謝謝你愿意進來驗證你的猜測擦耀。
沒錯,火遍朋友圈的修圖工具Prisma的背后就是最近流行的四個字:深度學習涩堤。啊對眷蜓,就是一個深度神經網絡模型,很深很深的網絡模型胎围,大概有19層那么深吁系。(咦這個確實好深啊,貌似那個下圍棋的alphago也就13層~)
不是說干貨么白魂,這就完了汽纤?當然不行。那咱能直接跑一個模型玩玩嗎福荸?貌似也不太行蕴坪。跑這樣一個神經網絡模型,需要你的計算機有一顆強大的心臟(最好有個GPU啥的)敬锐,然后背传,你需要安裝一堆lua,torch滞造,caffe续室,cuda之類的玩意兒。你以為prisma和別的app一樣谒养,是靠你那小手機就能搞出這么炫酷的樣式嗎挺狰?非也,它的背后必須有一個強大的云服務器买窟。不信你斷網丰泊,再拿prisma試試。
所以始绍,prisma是把你的圖片壓縮好后瞳购,用網絡傳送到了他家服務器,然后處理結束再傳給了你亏推。
嗯這還不是特別干的干貨学赛,下面才進入正題。也許你會覺得有點枯燥吞杭,不過希望我盡量能講的通俗盏浇,你盡量能收點干貨,而那些繁瑣的數學公式和略晦澀的術語我會跳過芽狗。
下文主要參考自論文:A Neural Algorithm of Artistic Style(by Leon A. Gatys, Alexander S. Ecker, and Matthias Bethge)
在深度神經網絡的家族里绢掰,處理圖片最給力的模型叫卷積神經網絡(Convolutional Neural Network,簡稱CNN)。CNN的每一層結構和一般的NN不太一樣滴劲,它的每一層就像一個過濾器攻晒,分層次的處理輸入圖像。每經過一層班挖,就會更抽象一些鲁捏,術語上來說是對上一層的特征提取。所以萧芙,每一層都可以看作為一個特征映射(feature maps)碴萧。
當CNN被用來訓練識別物體(object recognition)時,研究者構造了一種網絡結構末购,它可以使物體信息逐層更明顯地提取出來破喻,也就是說,這種網絡結構關心的是圖片內容(content)盟榴。每一層的feature maps都可以用來重構圖片曹质,較深層次(high-level)的重構,如下圖第二排d擎场,e羽德,更多的捕捉內容而忽略像素,而較淺的迅办,如下圖第二排a宅静,b,c站欺,僅僅是像素的復制姨夹。因此,研究者多采用較深的網絡結構來做內容重構(content representation)矾策。
而CNN模型也同樣可以用來做風格重現(style representations)磷账。這時,研究者使用一種原創(chuàng)設計的特征空間(feature space)來提取圖片的紋理信息(texture information)贾虽。feature space會加在每一層過濾層之上逃糟,它包含的是不同過濾層處理后的feature maps之間的相關性。這樣處理后得到的僅是圖片的紋理而不是整體布局(global arrangement)蓬豁。如上圖第一排所示绰咽。同樣的,較深的網絡層可以更好的提取紋理而忽略內容地粪。
論文研究者的發(fā)現是:content representations和style representations是可以分離的取募!且重新組合后可以成為一張全新的圖片,它具備名畫(artwork)的風格和我們自己的照片的內容驶忌。這就是prisma提供給我們的修圖效果矛辕。同時,內容重現和風格重現在重構過程中是可以權衡的(trade-off)付魔。所以聊品,prisma也具備了百分比設置功能,即多大程度保留內容几苍。
而其實這項技術在2015年8月左右就已經在github上公布了翻屈,搜索deepdream可以找到。而如今它真的成為了一款流行市場的互聯網產品妻坝,歷時將近一年伸眶。這從技術開發(fā)到面向市場的速率也非常驚人。再看自動駕駛技術刽宪,糅合人工智能厘贼,AR/VR等技術,雖然如今還事故頻頻圣拄,但相信將來也會技驚四座嘴秸。
以上用一句話概括就是,深度學習實現了藝術內容和藝術風格的分離與重構庇谆。雖然這還談不上創(chuàng)造力岳掐,但也算art and science的完美結合!這不愧說—— Data scientist is the sexist job of 21st century.
———— END ————
參考鏈接:
https://github.com/jcjohnson/neural-style