网易首页 > 网易号 > 正文 申请入驻

手把手教你搭建能够实现 Prisma 风格迁移效果的 iOS 酷炫应用

0
分享至

雷锋网按:本文为雷锋字幕组编译的技术博客,原标题 Transforming Pictures with Neural Style Transfer in iOS,作者为 Navdeep Singh。

翻译 | 廖明月 吴桐 蔡雨萌 整理 | 凡江

随着 2012 年深度神经网络在 ImageNetchallenge 比赛上以 AlexNet 模型获胜,深度神经网络开创了空前的高潮。AI 工程师已经将深度学习技术应用到越来越多的问题域,包括预训练的深度美国有线电视新闻网模型。还有什么比创造艺术更富有创造力呢?

一种已经提出并实施的想法,称为「神经风格转换」,允许你能够利用预训练的深度神经网络模型,并将某一图像的风格,例如或梵高或莫尼特的任何杰作,迁移到另一个图像,例如你的个人资料图片或你最喜欢的小狗的图片,从而创造了一个混合你的图片内容和名作风格的图像。

实际上有一个 iOS 应用程序称为 Prisma,它赢得了 2016 年度最佳应用程序,就是这样,它在短短几秒钟内,可以将你的图片转换成你所选择的任何风格。

在本文中,您将了解如何训练一个快速的神经风格迁移模型,并在自己的 iOS 上使用,实现 Prisma 可以做到的事情。

快速神经迁移模型的训练

在这一节中,按照以下步骤学习如何利用 TensorFlow 使用快速神经风格转移算法来训练模型:

1. 在你的 Mac 终端或者最好是有着 GPU 驱动的 Ubuntu 上,运行 git clone 命令,复制链接 this Github repo,这是约翰逊快速风格迁移的一个很好的 TensorFlow 实现的分支,修改后经过训练的模型允许在 iOS 或 Android 应用程序中使用。

2. 运行 cd 命令 进入快速风格迁移目录,然后运行 setup.sh 脚本来下载预训练的 VGG-19 模型文件以及 MS COCO 训练数据集。

3. 运行以下命令,使用风格图像 starry_night.jpg 和内容图像 WW1.jPG,通过训练创建检查点文件:

在图像目录中还有一些其他风格的图像,你可以以此用来创建不同的检查点文件。这里使用的 starry_night.jpg 风格图像是梵高的一幅名画:

使用梵高的画作作为风格图片

在 NVIDIA GTX 1070 GPU 驱动的 Ubuntu 下整个训练需要大约五小时,当然在如果在 CPU 上会花更长的时间。

4. 用文本编辑器打开 evaluate.py 文件,并将以下两行代码取消批注(第 158 和 159 行):

5. 运行以下命令建立一个新的检查点,输入图像命名为 img_placeholder,转移后的图像命名为 preds:

6. 运行以下命令创建一个 TensorFlow 图文件并载入检查点中的权重参数,这将创建一个约 6.7MB 的大小 .pb 文件:

7. 假设你已拥有一个 /ft.file 目录,将生成的 st_frozen.pb 文件复制到 /ft.file 目录下,直接 cd 进入你的 TensorFlow 源代码根目录,如 ~/tensorflow-1.4.0,然后运行以下命令创建为 .pb 文件生成一个量化模型。

这将把固化图文件的大小从 6.7 MB 缩减到 1.7 MB,它意味着如果你在 App 中为 50 个不同的风格载入了 50 个模型,增加的大小将会是 85 MB。

以上就是利用一张风格图像和输入图像训练和量化一个快速神经风格迁移模型的全部步骤。你可以在 test_dir 目录下检查步骤三中生成的图像,看一看风格迁移的效果。如果需要的话,你还可以试着玩一玩含超参数的模型,看一看那些不同的,很可能更好的风格迁移效果。代码文件提供在 https://github.com/jeffxtang/fast-style-transfer/blob/master/docs.md#style 上。

一个重要提示:当你在你的 iOS 或者 Android app 上使用这些模型之前,需要记录下输入图像的精确宽度和高度值作为步骤五中 --in-path 的参数,iOS 或 Android 的代码将会调用图像的宽度和高度值(你很快就会看到是如何调用的),否则当你在 App 上运行这些模型的时候将会得到 Conv2DCustomBackpropInput: Size of out_backprop doesn't match computed 的错误提示。

在 iOS 系统上添加和测试神经风格迁移模型

第一件事是手动建立 TensorFlow 库,如果你此前尚未安装过这个库。然后执行以下步骤就可以在你的 iOS App 上获取 TensorFlow 支持和并添加神经风格迁移模型,并试运行你的 App。

  1. 如果你已经拥有了一个添加了 TensorFlow 手册库的 iOS app,可以跳过下面这一步。否则,创建一个新的基于 Objective-C 语言的 iOS app,比如可以命名它为 NeuralStyleTransfer,或者在已经存在的 app 中,在 PROJECT 下的 Build Settings 配置中创建一个新的自定义设置,名称是 TENSORFLOW_ROOT,值为 $HOME/tensorflow-1.4.0,假定上面是你 TensorFlow 1.4.0 的安装地址。然后在 TARGET 下的 Build Settings 配置中将 Other Linker Flags 设置如下:

然后将 Header Search Paths 设置如下:

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 文件,把它们复制到工程文件夹下。

3. 将 ViewController.m 文件重命名为 ViewController.mm,把它和原 ViewController.h 文件替换为从上面的 GitHub 网址链接获取中的 ViewController.h 和 .mm 文件。

4. 在 iOS 模拟器中或者你的 iOS 设备中运行 App,你会看到一个狗图片:

5. 点击选择 Fast Style Transfer 选项,过几秒钟,你会看到一个带有 starry night 风格的新图片。

你可以很简单的通过选择你最喜欢的图片作为风格图片然后跟随之前的步骤编译带有不同风格的其他模型。然后可以按照这段的步骤在你的 IOSapp 中使用模型。这里有使用 IOS 的详细代码。

使用快速神经迁移模型回顾 iOS 代码

在 ViewController.mm 中包含许多重要的代码片断它在输入图片的预处理和转移图片的后处理中是独特的。

1. 两个常量,wanted_width,wanted_height,作为图片的高度和宽度定义为相同的值,这里的图片就是步骤 5 中的 dog.jpg:

2. iOS 的 dispatch 队列是用来在 non-UI 线程加载和运行你的快速神经迁移模型并且在风格迁移后图片生成了,以下为将图片发送到 UI 线程的代码:

3. 定义浮点型 3 维张量用于转换输入图片:

4. 发送到 tensorflow Sess->Run 方法中的输入节点名和输出节点名与训练模型的时候是相同的 :

5. 当模型运行完成并且返回输出张量 (包含 0 到 255 的 RGB 值) 时,你需要调用 tensorToUIImage 通用函数把张量数据转换为 RGB buffer:

6. 现在,你可以把 buffer 转化成 UIImage 实例在调整它的大小之前,以下为代码:

如果你对这个主题感兴趣,你可以使用 Jeff Tange 的书来研究更多的深度学习和强化学习 app。这本书包括超过 10 种 iOS,android 和 raspberry pi app 使用 tensorflow 来运行,使用 scratch 进行编译,离线运行所有绚丽的 tensorflow 模型:从计算机视觉,语音合成到生成对抗网络和类似于 Alphazero 的深度强化学习模型。

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

雷锋网雷锋网

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
马克龙在叙利亚差点挨炸?

马克龙在叙利亚差点挨炸?

新民周刊
2026-07-08 09:12:22
中国天空说涨价就涨价,日本政恐陷崩盘,高市急得连夜掏游客兜

中国天空说涨价就涨价,日本政恐陷崩盘,高市急得连夜掏游客兜

通鉴史智
2026-07-07 09:27:49
冯小刚该恨死韩红了

冯小刚该恨死韩红了

智识漂流
2026-06-24 01:05:27
高考后“穷人三件套”,被网友骂惨了:为了面子,快把孩子炸飞了

高考后“穷人三件套”,被网友骂惨了:为了面子,快把孩子炸飞了

世界圈
2026-07-07 09:11:30
印尼总统普拉博沃与印度总理莫迪签协议:印度将为印尼提供“布拉莫斯”超音速巡航导弹、“阿斯特拉”空对空导弹等装备

印尼总统普拉博沃与印度总理莫迪签协议:印度将为印尼提供“布拉莫斯”超音速巡航导弹、“阿斯特拉”空对空导弹等装备

政知新媒体
2026-07-07 22:42:56
比亚迪新车官宣:7月9日,正式首发!

比亚迪新车官宣:7月9日,正式首发!

科技堡垒
2026-07-07 08:54:50
雁栖湖凯宾斯基,被摘牌了

雁栖湖凯宾斯基,被摘牌了

闻旅派
2026-07-07 19:06:57
克洛普:我已经和沃勒尔谈过,如果我接手德国队他会很有帮助

克洛普:我已经和沃勒尔谈过,如果我接手德国队他会很有帮助

懂球帝
2026-07-08 06:21:08
雷阵雨+冰雹+7级大风!北京发布雷电黄色预警,出门随身带伞!

雷阵雨+冰雹+7级大风!北京发布雷电黄色预警,出门随身带伞!

BRTV新闻
2026-07-08 09:45:19
有驾照的可以笑了!驾驶证连续三年没扣分,可以享受以下5种好处

有驾照的可以笑了!驾驶证连续三年没扣分,可以享受以下5种好处

华庭讲美食
2026-07-05 21:27:59
为什么研究生都进不了央国企?不是学历不够硬 是这3个地方出问题

为什么研究生都进不了央国企?不是学历不够硬 是这3个地方出问题

户外阿毽
2026-07-04 04:29:36
西方毛骨悚然:突然醒悟,中国一直在单挑所有人!如今已无人能阻

西方毛骨悚然:突然醒悟,中国一直在单挑所有人!如今已无人能阻

混沌录
2026-06-20 21:34:09
原来有钱人也会抑郁啊!网友扎心道出:财务是自由了人心也看透了

原来有钱人也会抑郁啊!网友扎心道出:财务是自由了人心也看透了

坠入二次元的海洋
2026-07-01 08:54:54
“巴威”维持超强台风级强度,逐渐趋向台湾以东洋面

“巴威”维持超强台风级强度,逐渐趋向台湾以东洋面

界面新闻
2026-07-08 08:38:49
郭宇欣事件中最吓人的是,没有一个好人,娱乐圈的畸形环境更吓人

郭宇欣事件中最吓人的是,没有一个好人,娱乐圈的畸形环境更吓人

喜欢历史的阿繁
2026-07-07 09:12:44
他公开侮辱普京,四天后,他就在波兰的住所被暗杀

他公开侮辱普京,四天后,他就在波兰的住所被暗杀

怪味历史连连看
2026-07-02 16:35:09
李恩庆主任:乌梅配一物,鼻炎绕道走!三种搭配,腺样体肥大变小

李恩庆主任:乌梅配一物,鼻炎绕道走!三种搭配,腺样体肥大变小

大明爱养生
2026-07-06 11:17:14
李乃文带妻子法国购物,2人5个孩子!怪不得劝刘宇宁王勉早婚早育

李乃文带妻子法国购物,2人5个孩子!怪不得劝刘宇宁王勉早婚早育

阿库财经
2026-06-21 09:44:05
霍启山结婚传闻真相还未明,郭晶晶朱玲玲相继遭殃,霍启刚很无奈

霍启山结婚传闻真相还未明,郭晶晶朱玲玲相继遭殃,霍启刚很无奈

叨唠
2026-07-07 04:21:55
55岁还被点名陪睡? 女星自曝潜规则 陪玩陪睡仅小场面, 岳云鹏没

55岁还被点名陪睡? 女星自曝潜规则 陪玩陪睡仅小场面, 岳云鹏没

阿伧说事
2026-06-23 00:21:44
2026-07-08 12:08:49
雷峰网 incentive-icons
雷峰网
关注智能与未来!
70024文章数 656167关注度
往期回顾 全部

科技要闻

GLM5.2用量暴涨后,传智谱也想自研AI芯片

头条要闻

埃及向国际足联提出申诉 要求将主裁判逐出本届世界杯

头条要闻

埃及向国际足联提出申诉 要求将主裁判逐出本届世界杯

体育要闻

阿根廷被埃及埋了一半,死里逃生

娱乐要闻

黄子佼逍遥法外,暗网黑产仍在上新

财经要闻

科技新贵们,买爆深圳豪宅

汽车要闻

定名岚图梦想家9!岚图全新旗舰MPV来袭

态度原创

亲子
时尚
艺术
本地
房产

亲子要闻

闪闪小葵花 成长正当时 「高光时刻大赏」精彩节目集锦,定格宝贝舞台上的闪耀瞬间

小黑裙,让人从夏美到秋!

艺术要闻

美国建国250周年纪念日,罗斯福总统图书馆正式开放!

本地新闻

国内足球之旅?这座小城给你高分答案

房产要闻

自贸港还得看江东!产业狂奔、配套落地,未来可期!

无障碍浏览 进入关怀版