• 00、写在McGAN开始之前
  • 01、McGAN的整体框架
  • 02、McGAN的结构详解
    • 02-1、Glyph Network
    • 02-2、Ornamentation Network
  • 03、McGAN的实验结果

00、写在McGAN开始之前

这篇论文发表于2018年的CVPR,是美国伯克利大学BAIR实验室和Adobe研究院一起合作的论文,都是大佬们啊。我们来瞻仰一下这两个实验室和作者大佬们。

  • UC Berkeley BAIR实验室

    美国伯克利大学的BAIR实验室,全称是The Berkeley Artificial Intelligence Research Lab,主要致力于研究计算机视觉、机器学习、自然语言处理、策略和机器人。现有30多名教师和200多名研究生和博士,现在主要的方向涵盖了多模态的深度学习,人体竞争AI和连接学习等等。
  • 第一作者是Samaneh Azadi,这篇论文也是在他在Adobe Research实习期间发表的,果然大佬还是会去高端的公司实习,羡慕ing。虽然Samaneh Azadi从2015年才开始发表论文,但是看他的论文质量都很高,2016年ICLR、2017年CVPR、2018年CVPR和2019年ICLR,可以说是每年都有新的论文发表,主要方向(从论文中估计的)是CNNs,GANs等等,可以看他的论文合集arXiv。

实话实说,Adobe能有今天在设计软件领域的垄断地位,是有一群人在不断的更新和迭代设计师们创作和生产的方式,节省了大量的设计师的重复工作,所以才会受到全世界设计师们的追捧。在深度学习和艺术结合的领域中,Adobe也是走在前列的,推荐伙伴们看2018年Adobe Max的全球创意大会, 里面有很多有创意的设计工具,比如说图片变视频、字体设计、动画设计、视频抠图等等,真的是amazing。
我们先回到这篇论文的本身,这篇论文的想法或者说目的就是:如何根据已有的几个带有风格的字母,生成未知的带有此种风格的其他字母(论文给定的场景是26个大写的英文字母)。

具体的论文地址和代码地址如下:
Paper:Multi-Content GAN for Few-Shot Font Style Transfer
GitHub:MC-GAN

01、McGAN的整体框架

对于文本的图形设计是二维设计中的一个显著的视觉元素,设计者们通常在设计文本图形的时候花费大量的时间和精力,那么能不能实现从几个已经设计好了的字母中演变出其他具有相同风格的文本呢?这就是McGAN所研究的内容。 论文的Related Work中也提到了有好多大佬们在前期也做了很多的工作,比如说早起的字形合成研究,画风迁移等前期的工作。我们这篇论文的基础:文字图像是比较典型的例子,可以提供文字风格和内容的清晰分解,这也是我们能将网络拆分出两部分的基础。
论文中也提出了一种普遍认同的观点,对于内容图像风格的迁移是image-to-image的问题,利用GAN中的cGAN来解决这个问题并不能有很好的效果,图像中会存在明显的图像伪影,这是因为cGAN在较为专业的领域内才能有好的效果,而不能做到通用领域或多领域的迁移。

敲黑板,划重点来了!!!! 在本篇论文中,将生成从A到Z的所有的同种风格的字母图像的过程分为了两个部分:一个是字形生成的过程,一个是图像风格纹理迁移的过程。相对应的,我们也将网络分成两个部分,字形生成的部分用GlyphNet,用来预测字形的masks;纹理迁移的部分用OrnaNet,用于在颜色和装饰上做fine-tune。

我们先来放上McGAN的整体框架,如下图:

上图的左半部分表示的字形生成的GlyphNet网络,右半部分表示的风格迁移的OrnaNet网络。从图中可以明显的知道,GlyphNet网络主要由一个Generator生成器和加入的生成条件构成,OrnaNet网络主要由一个Generator生成器和Discriminator判别器。

02、McGAN的结构详解

02-1、Glyph Network


在GlyphNet中,只考虑字形的生成,为了使用和计算方便,论文使用的灰度图,所以输入是B x 26 x 64 x 64,输出是1 x 26 x 64 x 64。这里采用了leave-one-out的方法,即每次都让一个字母不出现。如上图,假设我们采集到的带有风格的单词是 “TOWER” ,那么它的输入是6 x 26 x 64 x 64,输出是1 x 26 x 64 x 64。具体步骤如下:

  • 采用leave-one-out的方法,字母的组合会出现如下六种情况,分别是“TOWER”、“OWER”、“TWER”、“TOER”、“TOWR”和“TOWE”;
  • 每种组合扩充为26个通道,将已有的字母放置在对应通道上,其余通道上填0,得到 6 x (1 x 26 x 64 x 64) 的Input Tensor;
  • 利用生成器生成 6 x (1 x 26 x 64 x 64) 的Tensor,但我们最终的目标是要得到1 x 26 x 64 x 64 的Output Tensor,所以就要做一些特殊的处理——对应不同的字母组合取不同的字母输出:“TOWER”组合取其余的21个字母、“OWER”取“T”字母、“TWER”取“O”字母、“TOER”取“W”字母、“TOWR”取“E”字母、“TOWE”取“R”字母,这样组成1 x 26 x 64 x 64 的Output Tensor。

可能有伙伴就问了,从5个字母为什么会生成其余的26个字母?网络也没有见过其余21个字母长什么样为什么就会生成呢?这个问题的解决方式就是cGAN啦。 简单来介绍一下cGAN,具体的内容伙伴们可以去看论文
Conditional Generative Adversarial Nets。cGAN从名字上就可以看出是给GAN加了一个条件,比如说我想生成汽车的图片,我需要给GAN一个约束(即分类的类别是汽车),让它生成带有汽车或者像汽车的图片。在论文里,同样也给定了这样的约束,网络中给定了标准字体的26个字母的图像,就是下图作为BASE。

02-2、Ornamentation Network


在OrnaNet中,要考虑色彩和装饰的生成,所以用的是RGB的彩色图,有3个通道,所以输入是26 x 3 x 64 x 64,输出是26 x 3 x 64 x 64。因为GlyphNet的输出是1 x 26 x 64 x 64,所以要做一次通道的叠加,扩宽成3个通道,即RGB的三个通道都为相同的数值,将灰度图转化成伪彩色图。

03、McGAN的实验结果


从上图可以看出,论文对于字形、颜色和装饰的生成效果还是很明显的,并且在视觉上也有了一个很良好的效果。


论文也在字母数量上做了一定的研究,发现生成26个字母,在已知5个以上的字母的情况下就已经效果趋于稳定,为了达到较好的生成效果且使用最少的字母,论文中推荐5个或者6个。


【推荐的论文阅读】

[1] M. Mirza and S. Osindero. Conditional generative adversarial nets. arXiv preprint arXiv:1411.1784, 2014
这一篇论文讲的是cGAN,可以了解在GAN中是如何加条件约束的,让GAN生成带有我们想要的语义或者内容的图像。

[2]P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros. Image-to-image translation with conditional adversarial networks. arXiv preprint arXiv:1611.07004, 2016.
这一篇讲的是pix2pix,是image-to-image问题中比较经典的论文,可以看一下在image-to-image问题中需要考虑的数据、模型、损失函数等问题。

[3]P. Upchurch, N. Snavely, and K. Bala. From A to Z: supervised transfer of style and content using deep neural network
generators. arXiv preprint arXiv:1603.02003, 2016

这篇论文解决的问题也是从单个输入图像生成一整套风格相似的图像,在这篇论文中也提到了解决这类的问题需要将字形和风格分隔开来,但是这篇论文使用的是变分自动编码器VAE。这篇论文包含了英文字母的大小写和10个数字,共62个字母。

【字体风格迁移】Multi-Content GAN for Few-Shot Font Style Transfer相关推荐

  1. MC-GAN:Multi-Content GAN for Few-Shot Font Style Transfer

    MC-GAN:Multi-Content GAN for Few-Shot Font Style Transfer 多内容GAN,可进行少量字体转换 文章下载链接:https://arxiv.org/ ...

  2. pythonturtle艺术字_字体风格迁移,卷积神经网络打败艺术字,生成最美汉字

    曾几何时,小学的我们上机课时最喜欢摆弄的就是 word 的艺术字,丑陋的效果并不能阻挡我们在每个角落塞进七彩的字体....... "七彩"的艺术字 但是时代不同了,我们现在已经有了 ...

  3. 汉字风格迁移篇---中文字体风格迁移的多任务对抗学习

    文章目录 Abstract I. INTRODUCTION II. RELATED WORK III. METHOD DESCRIPTION A. Problem F ormulation B. Ba ...

  4. 深度学习第55讲:图像的神经风格迁移

    所谓图像的神经风格迁移(Style Transfer),就是指在给定图像A和图像B的情况下,通过神经网络将这两张图像转化为C,且C同时具有图像A的内容和图像B的风格.比如下图左边两张输入图片:一张图像 ...

  5. 可逆网络风格迁移-解决内容泄漏问题 [CVPR 2021] ArtFlow: Unbiased Image Style Transfer via Reversible Neural Flows

    [CVPR 2021] ArtFlow: Unbiased Image Style Transfer via Reversible Neural Flows Jie An1∗   Siyu Huang ...

  6. 英伟达再出GAN神作!多层次特征的风格迁移人脸生成器

    选自arXiv 作者:Tero Karras.Samuli Laine.Timo Aila 机器之心编译 GAN 自 2014 年提出以来得到了广泛应用.前不久效果令人震惊的 ICLR 2019 论文 ...

  7. Pytorch入门(6)-图片风格迁移和GAN

    视频资源:https://www.bilibili.com/video/BV12741177Cu?p=6&spm_id_from=pageDriver from __future__ impo ...

  8. 【人工智能专题】基于 GAN 的艺术风格化——图像风格迁移

    原文:https://mp.weixin.qq.com/s?__biz=MzAxMzEwMDM2Mg==&mid=2652847175&idx=3&sn=51dcb41bc5c ...

  9. 第十课.图片风格迁移和GAN

    目录 Neural Style Transfer Neural Style Transfer原理 准备工作 定义模型并加载预训练的模型参数 训练target以及结果可视化 生成对抗网络GAN GAN原 ...

最新文章

  1. 400 多行代码!超详细 Rasa 中文聊天机器人开发指南 | 原力计划
  2. Runtime应用(三)实现NSCoding的自动归档和自动解档
  3. Windows Nano Server安装配置详解07:部署IIS
  4. /opt/hbase/conf 中不能启动hbase_Hbase从入门到入坑
  5. 前端学习(1531):钩子函数--代码演示(面试重点)二
  6. 接口测试--ApiPost组成介绍
  7. java 事件监听器 执行类_事件及事件监听器类 java
  8. 如何调用gitee仓库真实图片链接
  9. 计算机教学怎么为护士服务卫校,【计算机教学论文】中专卫生学校计算机教学论文(共1480字)...
  10. 一起学Windows phone7开发(五.一个时钟的例子)
  11. paip.JAVA的几大优点与缺点相比C#.NET.txt
  12. 接口测试面试题及参考答案(汇总),真香
  13. python面向对象实现算术编码
  14. viper12a电源电路图_VIPER22A VIPER12A工作原理引脚功能应用电路图纸与分析
  15. 移动数据和移动计算(本地计算)的区别
  16. Python基础——类和对象与魔法方法
  17. RN android无线调试
  18. 营业增加值公式简要解析
  19. CAD修复块中心(com接口c#语言)
  20. MATLAB画三维墨西哥草帽图,数字图像处理之图像分割-20210401063921.ppt-原创力文档...

热门文章

  1. 川大计算机学院夏令营感谢,【学长学姐经验分享】海纳百川,有容乃大—四川大学夏令营经验分享...
  2. 面向移动边缘计算车联网中车辆假名管理方案
  3. 软件测试缺陷等级划分_众测项目中功能测试、安全测试和兼容性缺陷等级区分定义...
  4. relational learning关系学习
  5. Echarts构建厂图(地图等类型)
  6. 印刷体藏文文字识别技术研究
  7. 海贼王热血航线服务器维护,航海王热血航线1234区从今开始
  8. Python 从入门到精通:一个月就够了
  9. 3970: 别动我,wa到你怀疑人生
  10. Android-布局管理器