丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給AI研習(xí)社
發(fā)送

1

圖像風(fēng)格遷移 (Neural Style) 簡史

本文作者: AI研習(xí)社 編輯:賈智龍 2017-05-17 15:43
導(dǎo)語:到底怎么把一個說都說不清的東西變成一個可執(zhí)行的程序,是困擾了很多圖像風(fēng)格遷移方面的研究者的問題。

面向讀者:沒有或有一定機(jī)器學(xué)習(xí)經(jīng)驗(yàn)并對 Prisma 之類的 app 背后的原理感興趣的讀者。比較有經(jīng)驗(yàn)的讀者可以直接參照科技樹閱讀文章末羅列的引用論文。
閱讀時(shí)間:10-20 分鐘
注:多圖,請注意流量。

圖像風(fēng)格遷移 (Neural Style) 簡史

圖像風(fēng)格遷移科技樹

序:什么是圖像風(fēng)格遷移?

先上一組圖吧。以下每一張圖都是一種不同的藝術(shù)風(fēng)格。作為非藝術(shù)專業(yè)的人,我就不扯藝術(shù)風(fēng)格是什么了,每個人都有每個人的見解,有些東西大概藝術(shù)界也沒明確的定義。如何要把一個圖像的風(fēng)格變成另一種風(fēng)格更是難以定義的問題。對于程序員,特別是對于機(jī)器學(xué)習(xí)方面的程序員來說,這種模糊的定義簡直就是噩夢。到底怎么把一個說都說不清的東西變成一個可執(zhí)行的程序,是困擾了很多圖像風(fēng)格遷移方面的研究者的問題。

圖像風(fēng)格遷移 (Neural Style) 簡史

在神經(jīng)網(wǎng)絡(luò)之前,圖像風(fēng)格遷移的程序有一個共同的思路:分析某一種風(fēng)格的圖像,給那一種風(fēng)格建立一個數(shù)學(xué)或者統(tǒng)計(jì)模型,再改變要做遷移的圖像讓它能更好的符合建立的模型。這樣做出來效果還是不錯的,比如下面的三張圖中所示,但一個很大的缺點(diǎn):一個程序基本只能做某一種風(fēng)格或者某一個場景。因此基于傳統(tǒng)風(fēng)格遷移研究的實(shí)際應(yīng)用非常有限。

圖像風(fēng)格遷移 (Neural Style) 簡史景色照片時(shí)間遷移

改變了這種現(xiàn)狀的是兩篇 Gatys 的論文,在這之前讓程序模仿任意一張圖片畫畫是沒法想象的。

圖像風(fēng)格遷移 (Neural Style) 簡史

第一個基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移算法,生成時(shí)間:5-20 分鐘

這篇文章中你不會看到數(shù)學(xué)公式,如果想要更加詳細(xì)了解其中的數(shù)學(xué)的話可以閱讀原論文。我想試著從頭開始講起,從 Gatys et al., 2015a和 Gatys et al., 2015b中用到的一些技術(shù)的歷史開始講起,用最簡單的方法說清楚基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移的思路是什么,以及 Gatys 為什么能夠想到使用神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)圖像風(fēng)格遷移。

如果大家對這個感興趣的話,我將來可以繼續(xù)寫一些關(guān)于 Neural Style 最新的一些研究的進(jìn)展,或者其他相關(guān)的一些圖像生成類的研究,對抗網(wǎng)絡(luò)之類的。寫的有錯誤的不到位的地方請隨意指正。

Neural Style 元年前 20 年 - 前 3 年

要理解對于計(jì)算機(jī)來說圖片的風(fēng)格是什么,只能追根溯源到 2000 年以及之前的圖片紋理生成的研究上。明明是圖像風(fēng)格遷移的文章,為啥要說到圖片紋理?在這兒我先賣個關(guān)子吧。

據(jù)我所知,在 2015 年前所有的關(guān)于圖像紋理的論文都是手動建模的(比如 A Parametric Texture Model Based on Joint Statistics of Complex Wavelet Coefficients),其中用到的最重要的一個思想是:紋理可以用圖像局部特征的統(tǒng)計(jì)模型來描述。沒有這個前提一切模型無從談起。什么是統(tǒng)計(jì)特征呢,簡單的舉個栗子

圖像風(fēng)格遷移 (Neural Style) 簡史

這個圖片可以被稱作栗子的紋理,這紋理有個特征,就是所有的栗子都有個開口,用簡單的數(shù)學(xué)模型表示開口的話,就是兩條大概某個弧度的弧線相交嘛,統(tǒng)計(jì)學(xué)上來說就是這種紋理有兩條這個弧度的弧線相交的概率比較大,這種可以被稱為統(tǒng)計(jì)特征。有了這個前提或者思想之后,研究者成功的用復(fù)雜的數(shù)學(xué)模型和公式來歸納和生成了一些紋理,但畢竟手工建模耗時(shí)耗力,(通俗的說,想象一下手工算栗子開口的數(shù)學(xué)模型,算出來的模型大概除了能套用在開心果上就沒啥用了。。。)當(dāng)時(shí)計(jì)算機(jī)計(jì)算能力還沒現(xiàn)在的手機(jī)強(qiáng),這方面的研究進(jìn)展緩慢,十幾年就這么過去了。

圖像風(fēng)格遷移 (Neural Style) 簡史早期紋理生成結(jié)果

與此同時(shí),隔壁的圖像風(fēng)格遷移也好不到哪里去,甚至比紋理生成還慘。因?yàn)榧y理生成至少不管生成什么樣子的紋理都叫紋理生成,然而圖像風(fēng)格遷移這個領(lǐng)域當(dāng)時(shí)連個合適的名字都沒有,因?yàn)槊總€風(fēng)格的算法都是各管各的,互相之間并沒有太多的共同之處。比如油畫風(fēng)格遷移,里面用到了 7 種不同的步驟來描述和遷移油畫的特征。又比如頭像風(fēng)格遷移里用到了三個步驟來把一種頭像攝影風(fēng)格遷移到另一種上。以上十個步驟里沒一個重樣的,可以看出圖像風(fēng)格處理的研究在 2015 年之前基本都是各自為戰(zhàn),搗鼓出來的算法也沒引起什么注意。相比之下 Photoshop 雖然要手動修圖,但比大部分算法好用多了。

圖像風(fēng)格遷移 (Neural Style) 簡史頭像風(fēng)格遷移
圖像風(fēng)格遷移 (Neural Style) 簡史油畫風(fēng)格遷移

同一個時(shí)期,計(jì)算機(jī)領(lǐng)域進(jìn)展最大的研究之一可以說是計(jì)算機(jī)圖形學(xué)了。(這段有相關(guān)知識的可以跳過,不影響之后的閱讀。)簡單的來說計(jì)算機(jī)圖形學(xué)就是現(xiàn)在幾乎所有游戲的基礎(chǔ),不論是男友 1(戰(zhàn)地 1) 里穿越回一戰(zhàn)的戰(zhàn)斗場景,還是 FGO 之類的手游,背后都少不了一代又一代的圖形學(xué)研究者的工作。在他們整日整夜忙著研究如何能讓程序里的妹紙變成有血有肉的樣子的時(shí)候,點(diǎn)科技樹點(diǎn)出了一個重要的分支:顯卡(GPU)。游戲機(jī)從剛誕生開始就伴隨著顯卡。顯卡最大的功能當(dāng)然是處理和顯示圖像。不同于 CPU 的是,CPU 早期是單線程的,也就是一次只能處理一個任務(wù),GPU 可以一次同時(shí)處理很多任務(wù),雖然單個任務(wù)的處理能力和速度比 CPU 差很多。比如一個 128x128 的超級馬里奧游戲, 用 CPU 處理的話,每一幀都需要運(yùn)行 128x128=16384 歩,而 GPU 因?yàn)榭梢酝瑫r(shí)計(jì)算所有像素點(diǎn),時(shí)間上只需要 1 步,速度比 CPU 快很多。為了讓游戲越來越逼近現(xiàn)實(shí),顯卡在過去 20 年內(nèi)也變得越來越好。巧合的是,顯卡計(jì)算能力的爆炸性增長直接導(dǎo)致了被放置 play 十幾年的神經(jīng)網(wǎng)絡(luò)的復(fù)活和深度學(xué)習(xí)的崛起,因?yàn)樯窠?jīng)網(wǎng)絡(luò)和游戲圖形計(jì)算的相似處是兩者都需要對大量數(shù)據(jù)進(jìn)行重復(fù)單一的計(jì)算。可以說如果沒有游戲界就沒有深度學(xué)習(xí),也就沒有 Neural Style。所以想學(xué)機(jī)器學(xué)習(xí)先得去 steam 買買買支持顯卡研究(誤)。

圖像風(fēng)格遷移 (Neural Style) 簡史

ImageNet 物體識別比賽中使用 GPU 的隊(duì)伍數(shù)量逐年上升,錯誤率逐年下降

提到神經(jīng)網(wǎng)絡(luò)我想稍微講一下神經(jīng)網(wǎng)絡(luò)(特別是卷積神經(jīng)網(wǎng)絡(luò))和傳統(tǒng)做法的區(qū)別,已經(jīng)有了解的可以跳過本段。卷積神經(jīng)網(wǎng)絡(luò)分為很多層,每一層都是由很多單個的人工神經(jīng)元組成的??梢园衙總€神經(jīng)元看作一個識別器,用剛剛的栗子來說的話,每一個或者幾個神經(jīng)元的組合都可以被用來識別某個特征,比如栗子的開口。在訓(xùn)練前它們都是隨機(jī)的,所以啥都不能做,訓(xùn)練的過程中它們會自動的被變成一個個不同的識別器并且相互組合起來,大量的識別器組合起來之后就可以識別物體了。整個過程除了一開始的神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和參數(shù)的調(diào)整之外其他全是自動的。這里我們就不介紹神經(jīng)網(wǎng)絡(luò) (Neural Network) 和卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Network) 具體怎么工作的了,如果對于神經(jīng)網(wǎng)絡(luò)具體怎么工作不了解的話,相信網(wǎng)上已經(jīng)有很多很多相關(guān)的介紹和教程,有興趣的可以去了解一下,不了解也不影響本文的閱讀。

圖像風(fēng)格遷移 (Neural Style) 簡史

卷積神經(jīng)網(wǎng)絡(luò)圖例

Neural Style 元年前 3 年 - 前 1 年

2012-2014 年的時(shí)候深度學(xué)習(xí)剛開始火,火的一個主要原因是因?yàn)槿藗儼l(fā)現(xiàn)深度學(xué)習(xí)可以用來訓(xùn)練物體識別的模型。之前的物體識別模型有些是用幾何形狀和物體的不同部分比較來識別,有些按顏色,有些按 3d 建模,還有一些按照局部特征。傳統(tǒng)物體識別算法中值得一提的是按照比較局部特征來識別物體,其原理如下:

比如我們的目標(biāo)是在圖片之中找到這個人:

圖像風(fēng)格遷移 (Neural Style) 簡史

目標(biāo)物體

對于程序而言這個人就是一堆像素嘛,讓它直接找的話它只能一個個像素的去比較然后返回最接近的了(近鄰算法)。但是現(xiàn)實(shí)中物體的形狀顏色會發(fā)生變化,如果手頭又只有這一張照片,直接去找的速度和正確率實(shí)在太低。
有研究者想到,可以把這個人的照片拆成許多小塊,然后一塊一塊的比較 (方法叫 Bag of Features)。最后哪一塊區(qū)域相似的塊數(shù)最多就把那片區(qū)域標(biāo)出來。這種做法的好處在于即使識別一個小塊出了問題,還有其他的小塊能作為識別的依據(jù),發(fā)生錯誤的風(fēng)險(xiǎn)比之前大大降低了。

圖像風(fēng)格遷移 (Neural Style) 簡史

Bag of Features

這種做法最大的缺點(diǎn)就是它還是把一個小塊看成一坨像素然后按照像素的數(shù)值去比較,之前提到的改變光照改變形狀導(dǎo)致物體無法被識別的問題根本上并沒有得到解決。

用卷積神經(jīng)網(wǎng)絡(luò)做的物體識別器其實(shí)原理和 bag of features 差不了太多,只是把有用的特征 (feature) 都裝到了神經(jīng)網(wǎng)絡(luò)里了。剛提到了神經(jīng)網(wǎng)絡(luò)經(jīng)過訓(xùn)練會自動提取最有用的特征,所以特征也不再只是單純的把原來的物體一小塊一小塊的切開產(chǎn)生的,而是由神經(jīng)網(wǎng)絡(luò)選擇最優(yōu)的方式提取。

圖像風(fēng)格遷移 (Neural Style) 簡史

卷積神經(jīng)網(wǎng)絡(luò)提取的特征示意圖,每一格代表一個神經(jīng)元最會被哪種圖片激活。

卷積神經(jīng)網(wǎng)絡(luò)當(dāng)時(shí)最出名的一個物體識別網(wǎng)絡(luò)之一叫做 VGG19,結(jié)構(gòu)如下:

圖像風(fēng)格遷移 (Neural Style) 簡史

VGG19 網(wǎng)絡(luò)結(jié)構(gòu)

每一層神經(jīng)網(wǎng)絡(luò)都會利用上一層的輸出來進(jìn)一步提取更加復(fù)雜的特征,直到復(fù)雜到能被用來識別物體為止,所以每一層都可以被看做很多個局部特征的提取器。VGG19 在物體識別方面的精度甩了之前的算法一大截,之后的物體識別系統(tǒng)也基本都改用深度學(xué)習(xí)了。

因?yàn)?VGG19 的優(yōu)秀表現(xiàn),引起了很多興趣和討論,但是 VGG19 具體內(nèi)部在做什么其實(shí)很難理解,因?yàn)槊恳粋€神經(jīng)元內(nèi)部參數(shù)只是一堆數(shù)字而已。每個神經(jīng)元有幾百個輸入和幾百個輸出,一個一個去梳理清楚神經(jīng)元和神經(jīng)元之間的關(guān)系太難。于是有人想出來一種辦法:雖然我們不知道神經(jīng)元是怎么工作的,但是如果我們知道了它的激活條件,會不會能對理解神經(jīng)網(wǎng)絡(luò)更有幫助呢?于是他們編了一個程序,(用的方法叫 back propagation,和訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法一樣,只是倒過來生成圖片。)把每個神經(jīng)元所對應(yīng)的能激活它的圖片找了出來,之前的那幅特征提取示意圖就是這么生成的。有人在這之上又進(jìn)一步,覺得,誒既然我們能找到一個神經(jīng)元的激活條件,那能不能把所有關(guān)于 “狗’的神經(jīng)元找出來,讓他們?nèi)勘患せ?,然后看看對于神?jīng)網(wǎng)絡(luò)來說” 狗 “長什么樣子的?
長得其實(shí)是這樣的:

圖像風(fēng)格遷移 (Neural Style) 簡史

神經(jīng)網(wǎng)絡(luò)想象中的狗

這是神經(jīng)網(wǎng)絡(luò)想象中最完美的狗的樣子,非常迷幻,感覺都可以自成一派搞個藝術(shù)風(fēng)格出來了。而能把任何圖片稍作修改讓神經(jīng)網(wǎng)絡(luò)產(chǎn)生那就是狗的幻覺的程序被稱作 deep dream。

圖像風(fēng)格遷移 (Neural Style) 簡史

Deep Dream

Neural Style 元年

有了這么多鋪墊,一切的要素已經(jīng)湊齊,前置科技樹也都已經(jīng)被點(diǎn)亮了,終于可以進(jìn)入正題了?;谏窠?jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移在 2015 年由 Gatys et al. 在兩篇論文中提出:Gatys et al., 2015a和 Gatys et al., 2015b。我們先說第一篇。第一篇比起之前的紋理生成算法,創(chuàng)新點(diǎn)只有一個:它給了一種用深度學(xué)習(xí)來給紋理建模的方法。之前說到紋理生成的一個重要的假設(shè)是紋理能夠通過局部統(tǒng)計(jì)模型來描述,而手動建模方法太麻煩。于是 Gatys 看了一眼隔壁的物體識別論文,發(fā)現(xiàn) VGG19 說白了不就是一堆局部特征識別器嘛。他把事先訓(xùn)練好的網(wǎng)絡(luò)拿過來一看,發(fā)現(xiàn)這些識別器還挺好用的。于是 Gatys 套了個 Gramian matrix 上去算了一下那些不同局部特征的相關(guān)性,把它變成了一個統(tǒng)計(jì)模型,于是就有了一個不用手工建模就能生成紋理的方法。

圖像風(fēng)格遷移 (Neural Style) 簡史

基于神經(jīng)網(wǎng)絡(luò)的紋理生成算法

從紋理到圖片風(fēng)格其實(shí)只差兩步。第一步也是比較神奇的,是 Gatys 發(fā)現(xiàn)紋理能夠描述一個圖像的風(fēng)格。嚴(yán)格來說文理只是圖片風(fēng)格的一部分,但是不仔細(xì)研究紋理和風(fēng)格之間的區(qū)別的話,乍一看給人感覺還真差不多。第二步是如何只提取圖片內(nèi)容而不包括圖片風(fēng)格。這兩點(diǎn)就是他的第二篇論文做的事情:Gatys 又偷了個懶,把物體識別模型再拿出來用了一遍,這次不拿 Gramian 算統(tǒng)計(jì)模型了,直接把局部特征看做近似的圖片內(nèi)容,這樣就得到了一個把圖片內(nèi)容和圖片風(fēng)格(說白了就是紋理)分開的系統(tǒng),剩下的就是把一個圖片的內(nèi)容和另一個圖片的風(fēng)格合起來。合起來的方法用的正是之前提到的讓神經(jīng)網(wǎng)絡(luò) “夢到” 狗的方法,也就是研究員們玩出來的 Deep Dream,找到能讓合適的特征提取神經(jīng)元被激活的圖片即可。

圖像風(fēng)格遷移 (Neural Style) 簡史

基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移

至此,我們就把關(guān)于基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移 (Neural Style) 的重點(diǎn)解釋清楚了。背后的每一步都是前人研究的結(jié)果,不用因?yàn)槊掷飵疃劝∩窠?jīng)網(wǎng)絡(luò)啊而感覺加了什么特技,特別的高級。Gatys 所做的改進(jìn)是把兩個不同領(lǐng)域的研究成果有機(jī)的結(jié)合了起來,做出了令人驚艷的結(jié)果。其實(shí)最讓我驚訝的是紋理竟然能夠和人們心目中認(rèn)識到的圖片的風(fēng)格在很大程度上相吻合。(和真正的藝術(shù)風(fēng)格有很大區(qū)別,但是看上去挺好看的。。。)從那之后對 neural style 的改進(jìn)也層出不窮,在這里就先放一些圖,技術(shù)細(xì)節(jié)暫且不表。

圖像風(fēng)格遷移 (Neural Style) 簡史

改進(jìn)后的圖像風(fēng)格遷移算法,左:輸入圖像,中:改進(jìn)前,右:改進(jìn)后。生成時(shí)間:5-20 分鐘

圖像風(fēng)格遷移 (Neural Style) 簡史

多個預(yù)設(shè)風(fēng)格的融合,生成時(shí)間:少于 1 秒,訓(xùn)練時(shí)間:每個風(fēng)格 1-10 小時(shí)

圖像風(fēng)格遷移 (Neural Style) 簡史

最新的實(shí)時(shí)任意風(fēng)格遷移算法之一,生成時(shí)間:少于 10 秒(少于一秒的算法也有,但個人認(rèn)為看上去沒這個好看),訓(xùn)練時(shí)間:10 小時(shí)

圖像風(fēng)格遷移 (Neural Style) 簡史

圖片類比,生成時(shí)間:5-20 分鐘

最后安利一篇與本文無關(guān)的文章吧,Research Debt (原文為英語,相關(guān)知乎問題在這里)是我寫本文的動機(jī)。希望各位喜歡本文,也希望有余力的人能多寫一些科普文。文筆不好獻(xiàn)丑了。

引用

注:排序基本按照時(shí)間順序,帶星號越多越重要,這里只引用了文章中提到過的論文,若有需要以后再加。

前置科技: 
A Parametric Texture Model Based on Joint Statistics of Complex Wavelet Coefficients
Data-driven hallucination of different times of day from a single outdoor photo
Style Transfer for Headshot Portraits
Image stylization by oil paint ?ltering using color palettes

基于神經(jīng)網(wǎng)絡(luò)的圖像風(fēng)格遷移: 
**Texture synthesis using convolutional neural networks
***A neural algorithm of artistic style
*Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis
*Texture networks: Feed-forward synthesis of textures and stylized images
A Learned Representation For Artistic Style
Fast Patch-based Style Transfer of Arbitrary Style
*Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization
Visual Attribute Transfer through Deep Image Analogy

雷鋒網(wǎng)按:本文原作者李嘉銘,原文載于作者的知乎專欄


深度學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)特訓(xùn)班

20年清華大學(xué)神經(jīng)網(wǎng)絡(luò)授課導(dǎo)師鄧志東教授,帶你系統(tǒng)學(xué)習(xí)人工智能之神經(jīng)網(wǎng)絡(luò)理論及應(yīng)用!

課程鏈接:http://www.mooc.ai/course/65

加入AI慕課學(xué)院人工智能學(xué)習(xí)交流QQ群:624413030,與AI同行一起交流成長


雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

圖像風(fēng)格遷移 (Neural Style) 簡史

分享:

編輯

聚焦數(shù)據(jù)科學(xué),連接 AI 開發(fā)者。更多精彩內(nèi)容,請?jiān)L問:yanxishe.com
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說