近日,清华大学刘永进教授课题组在 IEEE Transactions on Visualization and Computer Graphics 上发表论文,提出基于生成对抗神经网络的自然图像多风格卡通化方法,代码在 Github 上开源。

论文标题:

GAN-based Multi-Style Photo Cartoonization

论文链接:

https://doi.org/10.1109/TVCG.2021.3067201

代码链接:

https://github.com/syz825211943/Multi-Style-Photo-Cartoonization

卡通画是日常生活中喜闻乐见的一种艺术形式,不管是在影视作品还是在日常生活中都非常常见。很多卡通画都是根据自然场景由艺术家精心绘制而成,耗时耗力;而一些现存的卡通画生成算法也仅针对于单一卡通风格设计,无法获得风格各异的卡通画结果。论文提出了一种基于生成对抗神经网络的自然图像多风格卡通化方法,使用非成对数据集学习不同风格的卡通风格图片绘制方式,帮助人们生成具有不同风格的卡通图片,定格生活中的精彩瞬间。

干货推荐

  • 浙大博士导师深度整理:Tensorflow 和 Pytorch 的笔记(包含经典项目实战)
  • 值得收藏,这份机器学习算法资料着实太香
  • 比 PyTorch 的官方文档还香啊,吃透PyTorch中文版来了
  • 赶快收藏,PyTorch 常用代码段PDF合辑版来了

论文首先针对多风格卡通图像转换任务精心设计了网络结构,如图 1 所示。Multi-Style CartoonGAN 的生成网络由一个公用的编码器和多个解码器组成,其中编码器用于提取输入图片的内容,多个解码器分别对应于多种卡通风格并进行学习;判别网络也包括多个判别器,与多个解码器一一对应,用于判断输入图像是真实的卡通图像还是生成网络生成的卡通图像;最后增加一个辅助分类器,帮助网络更好的学习到不同风格之间的区别。

▲ Multi-Style CartoonGAN的网络结构示意图

论文在标准的对抗损失的基础上,增加了边缘模糊的对抗损失,突出卡通画具有清晰边缘的特点。同时,论文提出使用多层次的内容约束,对不同分辨率下的输入图像与输出图像计算 L1 距离作为内容约束以适应不同卡通风格平滑程度不同这一特点——这不仅保证了结果图像与输入图像语义内容上的一致性,也保留了不同风格的绘制特点。最后增加了风格损失,对不同卡通图像分类后计算损失,扩大不同风格之间的区别。通过同时优化这三项损失,使得生成网络最终可以得到保留输入图片语义信息的多风格卡通图像转换结果。

针对于对抗神经网络非线性程度高,难以收敛的问题,我们使用初始化过程帮助网络训练收敛,在初始化阶段我们仅使用层次化的内容约束对网络进行训练,在网络能够基本重构出输入图片信息之后再进行正式训练。此外,针对于 Multi-Style CartoonGAN 网络的设计,我们在理论上证明了网络设计的合理性与可实践性。

实验证明,论文提出的多风格卡通化方法可以同时学习到多个卡通风格的绘制方式,在保留输入图片内容信息的基础上完成不同卡通风格的转换。图 2 给出了 Multi-Style CartoonGAN 与多种单风格转换方法的对比结果,图中 Gatys (image 1) 为标准的 NST 结果,我们将与输入图像内容相近的图片作为风格图像进行学习;Gatys (collection) 为改进的 NST 结果,使用训练集内的所有卡通图像计算平均风格特征进行风格迁移; 是使用了身份损失的 CycleGAN 版本;UNIT,GDWCT 是另外两种代表性的单风格转换算法。

▲ 图2. Multi-Style CartoonGAN与NST,CycleGAN,UNIT与GDWCT的对比结果。第一列为输入的自然图像,后六列为对比算法以及Multi-Style CartoonGAN的对比结果。图中前两行由宫崎骏《千与千寻》风格训练集中的图片训练得到;中间两行由新海诚风格训练集中的图片训练得到;最后两行由法国动画《悠长假日》风格训练集中的图片训练得到。

尽管这些单风格算法都需要训练多次才能得到多个卡通风格的转换结果,但是效果仍然不如 Multi-Style CartoonGAN,而我们的算法只需要训练一次就可得到多种卡通风格转换结果。图 3 展示了 Multi-Style CartoonGAN 与单风格的卡通图像生成算法 CartoonGAN 相比的结果,我们利用了多风格卡通画的结构优势也得到了更为理想的结果——内容保持更好,线条更明显,色块更平滑。

▲ 图3. Multi-Style CartoonGAN与单风格CartoonGAN的比较结果。第一列为输入的自然图像,图中第二、三列由宫崎骏《千与千寻》风格训练集中的图片训练得到;第四、五列由新海诚风格训练集中的图片训练得到;最后两列由法国动画《悠长假日》风格训练集中的图片训练得到。

最后与多风格风格转换算法 (MUNIT,ComboGAN) 相比,我们的结果也具有更理想的卡通特征与质量,结果见图 4。

▲ 图4:Multi-Style CartoonGAN与MUNIT,ComboGAN的比较结果。第一列为输入的自然图像,后三列为对比算法以及Multi-Style CartoonGAN的对比结果。图中第一行由宫崎骏《千与千寻》风格训练集中的图片训练得到;中间一行由新海诚风格训练集中的图片训练得到;最后一行由法国动画《悠长假日》风格训练集中的图片训练得到。

技术交流

目前已开通了技术交流群,群友已超过1000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群
  • 方式②、微信搜索公众号:机器学习社区,后台回复:加群
  • 方式③、可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

​清华大学提出基于生成对抗神经网络的自然图像多风格卡通化方法并开源代码相关推荐

  1. ​清华大学提出基于生成对抗神经网络的自然图像多风格卡通化方法并开源代码...

    近日,清华大学刘永进教授课题组在 IEEE Transactions on Visualization and Computer Graphics 上发表论文,提出基于生成对抗神经网络的自然图像多风格 ...

  2. 基于生成对抗网络的自然语言生成(Natural language generation with Generative Adversarial Networks)

    作者:禅与计算机程序设计艺术 基于生成对抗网络的自然语言生成(Natural language generation with Generative Adversarial Networks) 引言 ...

  3. 基于生成对抗网络的医学数据域适应研究

    点击上方蓝字关注我们 基于生成对抗网络的医学数据域适应研究 于胡飞, 温景熙, 辛江, 唐艳 中南大学计算机学院,湖南 长沙 410083   摘要:在医疗影像辅助诊断研究中,研究者通常使用不同医院( ...

  4. 优必选悉尼 AI 研究院王超岳:基于生成对抗网络的图像编辑方法

    近些年来,生成对抗网络在许多图像生成和图像编辑任务上都获得了很大的成功,并受到越来越多的关注.对于图像编辑任务,现在面临的两个重要的挑战分别是:如何指导网络向目标图像学习(以提升图像编辑的效果)和如何 ...

  5. 学习笔记:Controllable Artistic Text Style Transfer via Shape-Matching GAN 基于形状匹配生成对抗网络的可控艺术文本风格迁移

    [ICCV-2019] Controllable Artistic Text Style Transfer via Shape-Matching GAN 基于形状匹配生成对抗网络的可控艺术文本风格迁移 ...

  6. 【论文分享】MAD-GAN :基于生成对抗网络的时间序列数据多元异常检测

    2019年ICANN文章 MAD-GAN: Multivariate Anomaly Detection for Time Series Data with Generative Adversaria ...

  7. 论文浅尝 | AAAI2020 - 基于生成对抗的知识图谱零样本关系学习

    论文笔记整理:耿玉霞,浙江大学直博生.研究方向:知识图谱,零样本学习等. 来源:AAAI2020 论文链接:https://arxiv.org/pdf/2001.02332.pdf 本文是发表在AAA ...

  8. 基于生成对抗的知识图谱零样本关系学习 AAAI2020

    论文来源:AAAI 2020 论文链接:https://arxiv.org/pdf/2001.02332.pdf 本文是发表在AAAI2020上的一篇基于生成对抗网络进行知识图谱零样本关系学习的文章. ...

  9. 【论文笔记】基于生成对抗网络的强化学习算法的研究

    目录 摘要 关键词 0 引言 1 相关理论 1.1 强化学习理论 1.2 生成对抗网络理论 1.3 基于生成对抗网络的强化学习算法 1.3.1 算法总体结构框架 2 实验与分析 3 总结 摘要 解决: ...

最新文章

  1. 最详细的NLP开源数据集分享--包含342个公开数据集
  2. argument在python里什么意思_python add_argument() 的使用方法
  3. python与人工智能的关系_python和人工智能之间的关系是什么?老男孩Python人工智能...
  4. Activiti的使用技巧
  5. 爱心的浪漫永不过时—程序猿的小浪漫
  6. 思考:日期类型的数据应该用什么样的具体形式存储到数据库?
  7. Java字符串与日期互转
  8. Python菜鸟入门:day14编程学习
  9. poj 2922 Honeymoon Hike
  10. 68.TextView设置中划线、下划线
  11. SQL Serevr 2012 安装教程
  12. 从金蝶k3到金税盘_金蝶K3费用报销流程及账务处理
  13. Drool实战系列(一)之入门程序
  14. 材料模拟python_关于材料计算,模拟,仿真什么区别?
  15. Unity 敌人AI战斗系统
  16. CF 1467 C. Three Bags
  17. 安全多方学习开源框架调研
  18. node--puppeteer网页截屏
  19. oppo微信皮肤主题怎么设置
  20. 面试:CAS算法原理

热门文章

  1. 黄金期货有哪些交易规则,一手黄金期货要多少钱
  2. 战术板将要下岗 iPad登陆橄榄球场
  3. Learning C++ No.14【STL No.4】
  4. 流利说英语level4_英语流利说level4原文graph?分享一下我的经验?
  5. 常用windows XP 系统命令
  6. mysql存储手机号
  7. 谈微软 KMS 激活
  8. UVa 12096 The SetStack Computer 【STL】【stack】
  9. 产品经理如何做好需求调研
  10. MySQL学习笔记-从基础到进阶