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

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

0

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

本文作者: AI研習(xí)社-譯站 2018-07-25 10:55
導(dǎo)語:在本文中,您將了解如何訓(xùn)練一個快速的神經(jīng)風(fēng)格遷移模型,并在自己的 iOS 上使用,實現(xiàn) Prisma 可以做到的事情。

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 Transforming Pictures with Neural Style Transfer in iOS,作者為 Navdeep Singh。

翻譯 | 廖明月  吳桐  蔡雨萌    整理 |  凡江


隨著 2012 年深度神經(jīng)網(wǎng)絡(luò)在 ImageNetchallenge 比賽上以 AlexNet 模型獲勝,深度神經(jīng)網(wǎng)絡(luò)開創(chuàng)了空前的高潮。AI 工程師已經(jīng)將深度學(xué)習(xí)技術(shù)應(yīng)用到越來越多的問題域,包括預(yù)訓(xùn)練的深度美國有線電視新聞網(wǎng)模型。還有什么比創(chuàng)造藝術(shù)更富有創(chuàng)造力呢?

一種已經(jīng)提出并實施的想法,稱為「神經(jīng)風(fēng)格轉(zhuǎn)換」,允許你能夠利用預(yù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型,并將某一圖像的風(fēng)格,例如或梵高或莫尼特的任何杰作,遷移到另一個圖像,例如你的個人資料圖片或你最喜歡的小狗的圖片,從而創(chuàng)造了一個混合你的圖片內(nèi)容和名作風(fēng)格的圖像。

實際上有一個 iOS 應(yīng)用程序稱為 Prisma,它贏得了 2016 年度最佳應(yīng)用程序,就是這樣,它在短短幾秒鐘內(nèi),可以將你的圖片轉(zhuǎn)換成你所選擇的任何風(fēng)格。

在本文中,您將了解如何訓(xùn)練一個快速的神經(jīng)風(fēng)格遷移模型,并在自己的 iOS 上使用,實現(xiàn) Prisma 可以做到的事情。

快速神經(jīng)遷移模型的訓(xùn)練

在這一節(jié)中,按照以下步驟學(xué)習(xí)如何利用 TensorFlow 使用快速神經(jīng)風(fēng)格轉(zhuǎn)移算法來訓(xùn)練模型:

1. 在你的 Mac 終端或者最好是有著 GPU 驅(qū)動的 Ubuntu 上,運行 git clone 命令,復(fù)制鏈接 this Github repo,這是約翰遜快速風(fēng)格遷移的一個很好的 TensorFlow 實現(xiàn)的分支,修改后經(jīng)過訓(xùn)練的模型允許在 iOS 或 Android 應(yīng)用程序中使用。

2. 運行 cd 命令 進(jìn)入快速風(fēng)格遷移目錄,然后運行 setup.sh 腳本來下載預(yù)訓(xùn)練的 VGG-19 模型文件以及 MS COCO 訓(xùn)練數(shù)據(jù)集。

3. 運行以下命令,使用風(fēng)格圖像 starry_night.jpg 和內(nèi)容圖像 WW1.jPG,通過訓(xùn)練創(chuàng)建檢查點文件:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

在圖像目錄中還有一些其他風(fēng)格的圖像,你可以以此用來創(chuàng)建不同的檢查點文件。這里使用的 starry_night.jpg 風(fēng)格圖像是梵高的一幅名畫:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

使用梵高的畫作作為風(fēng)格圖片

在 NVIDIA GTX 1070 GPU 驅(qū)動的 Ubuntu 下整個訓(xùn)練需要大約五小時,當(dāng)然在如果在 CPU 上會花更長的時間。

4. 用文本編輯器打開 evaluate.py 文件,并將以下兩行代碼取消批注(第 158 和 159 行):

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

5. 運行以下命令建立一個新的檢查點,輸入圖像命名為 img_placeholder,轉(zhuǎn)移后的圖像命名為 preds:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

6. 運行以下命令創(chuàng)建一個 TensorFlow 圖文件并載入檢查點中的權(quán)重參數(shù),這將創(chuàng)建一個約 6.7MB 的大小 .pb 文件:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

7. 假設(shè)你已擁有一個 /ft.file 目錄,將生成的 st_frozen.pb 文件復(fù)制到 /ft.file 目錄下,直接 cd 進(jìn)入你的 TensorFlow 源代碼根目錄,如 ~/tensorflow-1.4.0,然后運行以下命令創(chuàng)建為 .pb 文件生成一個量化模型。

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

這將把固化圖文件的大小從 6.7 MB 縮減到 1.7 MB,它意味著如果你在 App 中為 50 個不同的風(fēng)格載入了 50 個模型,增加的大小將會是 85 MB。

以上就是利用一張風(fēng)格圖像和輸入圖像訓(xùn)練和量化一個快速神經(jīng)風(fēng)格遷移模型的全部步驟。你可以在 test_dir 目錄下檢查步驟三中生成的圖像,看一看風(fēng)格遷移的效果。如果需要的話,你還可以試著玩一玩含超參數(shù)的模型,看一看那些不同的,很可能更好的風(fēng)格遷移效果。代碼文件提供在 https://github.com/jeffxtang/fast-style-transfer/blob/master/docs.md#style 上。

一個重要提示:當(dāng)你在你的 iOS 或者 Android app 上使用這些模型之前,需要記錄下輸入圖像的精確寬度和高度值作為步驟五中 --in-path 的參數(shù),iOS 或 Android 的代碼將會調(diào)用圖像的寬度和高度值(你很快就會看到是如何調(diào)用的),否則當(dāng)你在 App 上運行這些模型的時候?qū)玫?Conv2DCustomBackpropInput: Size of out_backprop doesn't match computed 的錯誤提示。


在 iOS 系統(tǒng)上添加和測試神經(jīng)風(fēng)格遷移模型

第一件事是手動建立 TensorFlow 庫,如果你此前尚未安裝過這個庫。然后執(zhí)行以下步驟就可以在你的 iOS App 上獲取 TensorFlow 支持和并添加神經(jīng)風(fēng)格遷移模型,并試運行你的 App。

  1. 如果你已經(jīng)擁有了一個添加了 TensorFlow 手冊庫的 iOS app,可以跳過下面這一步。否則,創(chuàng)建一個新的基于 Objective-C 語言的 iOS app,比如可以命名它為 NeuralStyleTransfer,或者在已經(jīng)存在的 app 中,在 PROJECT 下的 Build Settings 配置中創(chuàng)建一個新的自定義設(shè)置,名稱是 TENSORFLOW_ROOT,值為 $HOME/tensorflow-1.4.0,假定上面是你 TensorFlow 1.4.0 的安裝地址。然后在 TARGET 下的 Build Settings 配置中將 Other Linker Flags 設(shè)置如下:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

然后將 Header Search Paths 設(shè)置如下:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

2. 將 fst_frozen_quantized.pb 文件和幾個測試所用圖片拖放到你的工程文件夾中,在 https://github.com/PacktPublishing/Intelligent-Mobile-Projects-with-TensorFlow/tree/master/ch4/ios/NeuralStyleTransfer 中的 NeuralStyleTransfer app 文件夾中找到相同的 ios_image_load.mm 和 .h 文件,把它們復(fù)制到工程文件夾下。

3. 將 ViewController.m 文件重命名為 ViewController.mm,把它和原 ViewController.h 文件替換為從上面的 GitHub 網(wǎng)址鏈接獲取中的 ViewController.h 和 .mm 文件。

4. 在 iOS 模擬器中或者你的 iOS 設(shè)備中運行 App,你會看到一個狗圖片:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

5. 點擊選擇 Fast Style Transfer 選項,過幾秒鐘,你會看到一個帶有 starry night 風(fēng)格的新圖片。

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

你可以很簡單的通過選擇你最喜歡的圖片作為風(fēng)格圖片然后跟隨之前的步驟編譯帶有不同風(fēng)格的其他模型。然后可以按照這段的步驟在你的 IOSapp 中使用模型。這里有使用 IOS 的詳細(xì)代碼。

使用快速神經(jīng)遷移模型回顧 iOS 代碼

在 ViewController.mm 中包含許多重要的代碼片斷它在輸入圖片的預(yù)處理和轉(zhuǎn)移圖片的后處理中是獨特的。

1. 兩個常量,wanted_width,wanted_height,作為圖片的高度和寬度定義為相同的值,這里的圖片就是步驟 5 中的 dog.jpg:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

2. iOS 的 dispatch 隊列是用來在 non-UI 線程加載和運行你的快速神經(jīng)遷移模型并且在風(fēng)格遷移后圖片生成了,以下為將圖片發(fā)送到 UI 線程的代碼:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

3. 定義浮點型 3 維張量用于轉(zhuǎn)換輸入圖片:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

4. 發(fā)送到 tensorflow Sess->Run 方法中的輸入節(jié)點名和輸出節(jié)點名與訓(xùn)練模型的時候是相同的 :

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

5. 當(dāng)模型運行完成并且返回輸出張量 (包含 0 到 255 的 RGB 值) 時,你需要調(diào)用 tensorToUIImage 通用函數(shù)把張量數(shù)據(jù)轉(zhuǎn)換為 RGB buffer:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

6. 現(xiàn)在,你可以把 buffer 轉(zhuǎn)化成 UIImage 實例在調(diào)整它的大小之前,以下為代碼:

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

如果你對這個主題感興趣,你可以使用 Jeff Tange 的書來研究更多的深度學(xué)習(xí)和強化學(xué)習(xí) app。這本書包括超過 10 種 iOS,android 和 raspberry pi app 使用 tensorflow 來運行,使用 scratch 進(jìn)行編譯,離線運行所有絢麗的 tensorflow 模型:從計算機視覺,語音合成到生成對抗網(wǎng)絡(luò)和類似于 Alphazero 的深度強化學(xué)習(xí)模型。

原文鏈接:https://medium.com/@navdeepsingh_2336/transforming-pictures-with-neural-style-transfer-in-ios-6988b79b34ee

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

雷鋒網(wǎng)雷鋒網(wǎng)

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

手把手教你搭建能夠?qū)崿F(xiàn) Prisma 風(fēng)格遷移效果的 iOS 酷炫應(yīng)用

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識,讓語言不再成為學(xué)習(xí)知識的門檻。(原雷鋒字幕組)
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說