RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用TensorFlow.js在瀏覽器中部署可進行任意圖像風格遷移的模型

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-11-22 09:01 ? 次閱讀

風格遷移一直是很多讀者感興趣的內(nèi)容之一,近日,網(wǎng)友Reiichiro Nakano公開了自己的一個實現(xiàn):用TensorFlow.js在瀏覽器中部署可進行任意圖像風格遷移的模型。讓我們一起去看看吧!

GitHub:github.com/reiinakano/arbitrary-image-stylization-tfjs

小工具:reiinakano.github.io/arbitrary-image-stylization-tfjs/

遷移效果

所謂風格遷移,指的是神經(jīng)網(wǎng)絡(luò)通過遷移算法,用另一種風格(通常是畫)重新“繪制”一張圖像中的內(nèi)容(通常是照片)?,F(xiàn)如今,能在瀏覽器中實時進行風格遷移的項目有很多,但它們中的大多數(shù)都需要針對每種風格訓練獨立的神經(jīng)網(wǎng)絡(luò),所以用戶的選擇大大受限。

Reiichiro Nakano提供的模型突破了以往模型的局限,它能將任何風格圖像分解為表示其風格的100維向量,然后把這些向量結(jié)合照片信息一起饋送到另一個神經(jīng)網(wǎng)絡(luò),以產(chǎn)生最終的風格化圖像。

首先,我們來看看這個風格遷移模型的具體效果:

一種風格下的風格遷移

兩種風格下的風格遷移

演示網(wǎng)站

上圖是小編在作者開發(fā)的演示網(wǎng)站里測試的結(jié)果,感興趣的讀者可以前去一試??梢园l(fā)現(xiàn),雖然談不上特別令人驚艷,但遷移的整體效果還是非常不錯的,更可貴的是,它支持任意圖像、任意風格的遷移,允許手動上傳圖片。

如果硬要說有什么不足,那就是網(wǎng)站的延遲有點高(選取圖像/風格后無法及時跳轉(zhuǎn),也許是水管不行)。此外,在對構(gòu)圖空曠的圖像(如加州金門大橋)進行風格遷移時,我們發(fā)現(xiàn)粗糲線條風格(如bricks)容易弱化主體線條,使遷移后的圖像幾乎沒有內(nèi)容。

技術(shù)來源

為了實現(xiàn)這個項目,作者參考的是2017 BMVC的一篇Oral Paper:Exploring the structure of a real-time, arbitrary neural artistic stylization network(arXiv:1705.06830)。

這篇論文結(jié)合靈活的風格遷移技術(shù)和快速網(wǎng)絡(luò)傳輸,提出了一種允許使用任何內(nèi)容/風格圖像對進行實時風格化的網(wǎng)絡(luò)。在包含約80,000幅畫作的語料庫上經(jīng)過訓練后,論文模型不僅在訓練過的風格上表現(xiàn)出色,還能夠推廣到從未見過的風格和照片。也就是說,這是一個能以完全無監(jiān)督的方式學習平滑的、結(jié)構(gòu)豐富的嵌入空間,以及與風格繪畫相關(guān)聯(lián)的語義信息的模型。

一般來說,風格遷移模型的輸入有兩個,一是包含圖像內(nèi)容的照片c,二是包含圖像風格的繪畫s。這類算法假定圖像的內(nèi)容和風格可以定義如下:

如果模型從兩幅圖像中提取到的高級特征歐氏距離接近,則兩個圖像的內(nèi)容相似。

如果模型從兩幅圖像中提取到的低級特征有相同的空間統(tǒng)計,則兩個圖像的風格相似。

根據(jù)這兩個定義,風格遷移的優(yōu)化目標可以表示為:

其中Lc(x, c)和Ls(x, s)分別是內(nèi)容和風格的損失函數(shù),λs是風格損失函數(shù)經(jīng)拉格朗日乘數(shù)加權(quán)后表示的相對權(quán)重。

論文作者改進了這一做法。他們在風格遷移網(wǎng)絡(luò)前添加了一個預(yù)測網(wǎng)絡(luò)P(·),它以任意風格的圖像作為輸入,并預(yù)測歸一化常數(shù)的嵌入向量→S,這樣做的優(yōu)勢是模型能把學到的遷移方法推廣到其他圖像上。

論文模型架構(gòu)

從本質(zhì)上來說,這個模型直接學習的是從風格圖像到風格參數(shù)的映射。在Kaggle Painter By Numbers(內(nèi)容)和Describable Textures Dataset(風格)兩個數(shù)據(jù)集上進行了訓練后,模型輸出的風格遷移效果如下圖(左)所示:

網(wǎng)絡(luò)是聯(lián)合訓練的,但它只用少量訓練圖像就模擬了多種風格,這意味著我們沒有必要為每種風格單獨設(shè)定拉格朗日乘數(shù)λs。 也就是說,同一個損失加權(quán)就足以在所有繪畫風格和紋理上產(chǎn)生合理的結(jié)果。上圖(右)則證明,該模型能夠預(yù)測以前從未見到的風格和紋理樣式,它們在質(zhì)量上與訓練集樣本的風格和紋理幾乎一致。

開源答疑

在GitHub上,開源項目的Reiichiro Nakano向開發(fā)者重點提了一些注意事項。

問:我的數(shù)據(jù)安全嗎?你會看到我提交的圖片嗎?

當你在演示網(wǎng)站里測試風格遷移時,你的數(shù)據(jù)和圖片只會在你自己的計算機上留下痕跡。事實上,這也是在瀏覽器中運行神經(jīng)網(wǎng)絡(luò)的主要優(yōu)勢之一。我只是把模型和代碼發(fā)給你,由你在自己的瀏覽器上運行模型。

問:如果我想下載,模型一共多大?

風格神經(jīng)網(wǎng)絡(luò)的大小是9.6MB,遷移網(wǎng)絡(luò)大概有7.9MB。它們在任何風格上都有效,所以你只用下一次就可以了。

問:你的模型和論文模型一模一樣嗎?

不完全一樣,論文的風格網(wǎng)絡(luò)用的是Inception-v3(大約96.2MB),太大了。所以在把模型移植到瀏覽器上之前,我用MobileNet-v2從預(yù)訓練的Inception-v3網(wǎng)絡(luò)中提取了知識,把大小縮小到了論文的1/10。

問:風格組合的具體方法是什么?

由于風格網(wǎng)絡(luò)可以把每種風格映射成100維的風格向量,所以我們只需對內(nèi)容和風格圖像的風格向量進行加權(quán)平均,把計算結(jié)果作為遷移網(wǎng)絡(luò)的輸入,即可獲得新風格向量。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1083

    瀏覽量

    40449
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1022

    瀏覽量

    35328
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4327

    瀏覽量

    62569

原文標題:【實現(xiàn)】在瀏覽器中快速進行任意風格遷移

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    tflite接口調(diào)用tensorflow模型進行推理

    摘要本文為系列博客tensorflow模型部署系列的一部分,用于實現(xiàn)通用模型部署。本文主要實現(xiàn)用tflite接口調(diào)用
    發(fā)表于 12-22 06:51

    comicsviewer圖像瀏覽器軟件

    電子發(fā)燒友網(wǎng)站提供《comicsviewer圖像瀏覽器軟件.zip》資料免費下載
    發(fā)表于 06-19 17:00 ?0次下載

    TensorFlow發(fā)表推文正式發(fā)布TensorFlow v1.9

    其中有兩個案例受到了大家的廣泛關(guān)注,這個項目是通過 Colab tf.keras 中訓練模型,并通過TensorFlow.js 瀏覽器
    的頭像 發(fā)表于 07-16 10:23 ?3105次閱讀

    利用TensorFlow.js,D3.js 和 Web 的力量使訓練模型的過程可視化

    TensorFlow.js 將機器學習引入 JavaScript 和 Web。 我們將利用這個很棒的框架來構(gòu)建一個深度神經(jīng)網(wǎng)絡(luò)模型。這個模型將能夠按大聯(lián)盟裁判的精準度來稱呼好球和壞球。
    的頭像 發(fā)表于 08-08 14:24 ?6985次閱讀

    如何使用TensorFlow.js構(gòu)建這一系統(tǒng)

    TensorFlow.js團隊一直進行有趣的基于瀏覽器的實驗,以使人們熟悉機器學習的概念,并鼓勵他們將其用作您自己項目的構(gòu)建塊。對于那些不熟悉的人來說,
    的頭像 發(fā)表于 08-19 08:55 ?3553次閱讀

    基于tensorflow.js設(shè)計、訓練面向web的神經(jīng)網(wǎng)絡(luò)模型的經(jīng)驗

    你也許會好奇:為什么要在瀏覽器里基于tensorflow.js訓練我的模型,而不是直接在自己的機器上基于tensorflow訓練模型?你當然
    的頭像 發(fā)表于 10-18 09:43 ?4096次閱讀

    TensorFlow.js瀏覽器中構(gòu)建了一個使用任意圖像進行風格化的demo

    了10倍。所以作者認為distillation這種技術(shù)被低估了,它可以為瀏覽器帶來一些很酷的ML功能,因為很多模型由于太大而無法資源有限的環(huán)境中進行部署。
    的頭像 發(fā)表于 11-22 09:33 ?3618次閱讀

    一種開源的機器學習模型,可在瀏覽器中使用TensorFlow.js對人物及身體部位進行分割

    人物分割有何用途?這項技術(shù)可廣泛應(yīng)用于多個多領(lǐng)域,包括增強現(xiàn)實、攝影編輯以及圖像或視頻的藝術(shù)效果等。具體應(yīng)用由您決定!去年,當我們推出 PoseNet(首個能夠瀏覽器中使用簡易網(wǎng)絡(luò)攝像頭估測身體
    的頭像 發(fā)表于 02-26 16:33 ?5822次閱讀

    TensorFlow.js制作了一個僅用 200 余行代碼的項目

    我們先來看一下運行的效果。下圖中,上半部分是原始視頻,下半部分是使用 TensorFlow.js 對人像進行消除后的視頻。可以看到,除了偶爾會在邊緣處留有殘影之外,整體效果還是很不錯的。
    的頭像 發(fā)表于 05-11 18:08 ?5588次閱讀

    CNN是什么?美國有線電視新聞網(wǎng)嗎?

    它用TensorFlow.js加載了一個10層的預(yù)訓練模型,相當于在你的瀏覽器上跑一個CNN模型,只需要打開電腦,就能了解CNN究竟是怎么回事。
    的頭像 發(fā)表于 09-03 10:58 ?6087次閱讀
    CNN是什么?美國有線電視新聞網(wǎng)嗎?

    如何基于 ES6 的 JavaScript 進行 TensorFlow.js 的開發(fā)

    環(huán)境中,如果有 CUDA 環(huán)境支持,或者瀏覽器環(huán)境中,有 WebGL 環(huán)境支持,那么 TensorFlow.js 可以使用硬件進行加速。 微信小程序 微信小程序也提供了官方插件,封
    的頭像 發(fā)表于 10-31 11:16 ?3116次閱讀

    CNN到底是怎么回事?

    它用TensorFlow.js加載了一個10層的預(yù)訓練模型,相當于在你的瀏覽器上跑一個CNN模型,只需要打開電腦,就能了解CNN究竟是怎么回事。
    的頭像 發(fā)表于 06-28 14:47 ?4063次閱讀
    CNN到底是怎么回事?

    基于OpenCV的DNN圖像風格遷移

    /deep-photo-styletransfer 項目,需要安裝 CUDA、pytorch、cudnn等等,配置能花一天的時間。 不過最近我發(fā)現(xiàn)一個非常好的開源應(yīng)用項目,那就是基于OpenCV的DNN圖像風格遷移。你只需要安裝
    的頭像 發(fā)表于 10-30 10:03 ?583次閱讀

    js文件可以直接瀏覽器運行嗎

    載和運行。 Web開發(fā)中,JS常被用于實現(xiàn)動態(tài)交互效果和頁面邏輯控制。通過將JS代碼嵌入到網(wǎng)頁的HTML文件中,瀏覽器可以頁面加載過程中
    的頭像 發(fā)表于 11-27 16:45 ?4057次閱讀

    js腳本怎么瀏覽器中運行

    瀏覽器中運行JavaScript腳本是一種常見的方式,因為JavaScript是一種Web瀏覽器中執(zhí)行的腳本語言。下面是一個詳細的,最少1500字的文章,介紹如何在
    的頭像 發(fā)表于 11-27 16:46 ?2813次閱讀
    RM新时代网站-首页