专栏首页新智元一个模型搞定所有风格转换,直接在浏览器实现(demo+代码)

一个模型搞定所有风格转换,直接在浏览器实现(demo+代码)

作者:Reiichiro Nakano

编辑:肖琴

【新智元导读】一位日本小哥用TensorFlow.js在浏览器中构建了一个使用任意图像进行风格化的demo,只使用了一个单一的模型。demo效果相当不错,并且也开源了代码。

用一个模型就能实现所有类型的风格转换!一个名为Arbitrary Image Stylization in the Browser的项目最近火起来。

作者是日本小哥Reiichiro Nakano,他用TensorFlow.js在浏览器中构建了一个使用任意图像进行风格化的demo。

不像以前的快速风格转换算法那样需要每种风格都有一个单独的网络,在这个demo中,所有风格图像只使用一个单一的模型。并且,你可以自由混合不同的风格。

使用也非常简单,你只需要选择一张内容图像(content image)和一张风格图像(style image),然后点击“Stylize”,静候片刻,一张风格化的图像就处理好了。

如图所示,我们在“内容图像”选择一张芝加哥城市风景图,“风格图像”选择一张港口的版画风格图像,风格化后得到一张版画风格的芝加哥风景图。

其中,内容图像和风格图像都可以自定义,也就是说,你可以上传任意图像。风格化的强度也可以调整。

作者还提供了混合两种风格的效果。

总结而言,这个风格网络被训练并用于为任意绘画风格生成一个100-D的风格向量(style vector)。然后,将该向量与内容图像一起馈送到一个的转换网络,进行实际的风格转换。

这个100D的向量基本上是一个“style”的潜在空间。我们可以利用这个“潜在空间”做一些有趣的事情。

我们可以通过对风格图像和内容图像的风格向量进行加权平均,来控制风格化的强度。作者发现,这对于风格特别鲜明的内容图像很有用。

我们还可以通过在它们的风格向量之间插值,来组合不同的风格,并让网络猜测这两幅图像之间的风格是什么样子的。

将模型移植到浏览器上的最大问题是模型大小。风格网络基于Inception-v3,它的权重> 97MB。作者使用distillation,能够用9.6MB的MobileNet-v2替换它,尺寸缩小了10倍。所以作者认为distillation这种技术被低估了,它可以为浏览器带来一些很酷的ML功能,因为很多模型由于太大而无法在资源有限的环境中进行部署。

这个demo建立在谷歌大脑和蒙特利尔大学合作的论文Exploring the structure of a real-time, arbitrary neural artistic stylization network之上,这是图像风格化的经典论文之一。作者开源了代码。

下面我们简要介绍一下论文的主要思想。

模型和方法

这篇论文的核心是通过构建一个风格学习网络来实现快速的风格迁移。

论文提出了一种将艺术风格神经算法的灵活性和快速风格迁移网络的速度相结合的方法,允许使用任何内容/风格图像进行实时的风格化。

这个模型成功地用大约80000幅画作的数据库进行了训练,并能够推广到以前未见过的画作。

论文的主要贡献包括:

1、介绍了一种新的算法,用于快速、任意的艺术风格迁移;在80000幅画作上训练,并能对未观察过的画作实时运行。

2、在紧凑的嵌入空间中呈现左右绘画风格,捕捉绘画的语义特征。

3、证明用大量画作进行训练之后,模型能够预测以前从未观察过的风格。

4、嵌入空间允许对艺术家的艺术范围进行新的探索。

图1:网络在大量的绘画和纹理上训练生成的造型

图2:模型架构图示

如图2所示,整个网络架构由风格学习网络P和风格转换网络T组成,学习的目的是style loss和content loss。风格学习网络P预测来自输入风格图像的嵌入向量S,为风格转换网络提供一组归一化常数。风格转换网络将照片转换为风格化的表示。Content loss和style loss来源于VGG图像分类网络的表征空间距离。风格学习网络主要遵循Inception-v3架构。

Demo 链接:

https://reiinakano.github.io/arbitrary-image-stylization-tfjs/

源代码:

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

论文:

https://arxiv.org/pdf/1705.06830.pdf

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【今日热门&优质资源】kaggle竞赛冠军分享&tensorflow在quora问答去重中的应用

    fishexpert
  • 目标检测第1步-运行tensorflow官方示例

    在进行本文操作之前,需要先安装好tensorflow的gpu版本。 本文作者的环境:python3.6、Windows10、tensorflow_gpu1.1...

    潇洒坤
  • 【今日热门&优质资源】TensorFlow和TF-Slim实现图像分类与分割

    fishexpert
  • 学界 | 好奇心驱动学习,让强化学习更简单

    雷锋网 AI 科技评论按:强化学习在最近几年中都是最热门的研究领域之一,但是复杂环境中难以训练、训练后难以泛化的问题始终没有得到完全的解决。好奇心驱动的学习是一...

    AI科技评论
  • 谷歌推出“流体标注”AI辅助工具,图像标注速度提升3倍!(附论文)

    基于深度学习的现代计算机视觉模型(比如由TensorFlow对象检测API实现的模型)的性能取决于是否可以使用规模越来越大的标记训练数据集(如公开的图像)进行训...

    新智元
  • 【今日热门】优秀资源

    fishexpert
  • TensorFlow系列专题(二):机器学习基础

    数据预处理的方式较多,针对不同类型的数据,预处理的方式和内容也不尽相同,这里我们简单介绍几种较为常用的方式:

    磐创AI
  • 谷歌Creatability项目利用AI帮助残疾人更容易地访问网络

    根据美国人口普查局的数据,美国有超过5600万人残疾人,残疾人和非残疾人使用网络的人数差距越来越大,残疾人避免上网的可能性大约是正常人的三倍,拥有电脑,智能手机...

    AiTechYun
  • AutoML又一利器来了,谷歌宣布开源AdaNet(附教程)

    今天,谷歌宣布开源AdaNet,这是一个轻量级的基于TensorFlow的框架,可以在最少的专家干预下自动学习高质量的模型。

    新智元
  • 谷歌宣布AI for Social Good计划,包括一项2500万美元的竞赛

    Google AI今天宣布了AI for Social Good计划,这是一项将核心AI研究和工程应用于谷歌内部,以及更广泛的AI生态系统中的社会公益项目。

    AiTechYun

扫码关注云+社区

领取腾讯云代金券