AI依然火

最近居家太无聊了,无意见逛到了AI社区,发现最近AI算法热度还是很高,什么AI绘画,还有什么AI作诗,写歌。可以说,人工智能领域在一步步挑战人类的高度,从循规蹈矩的简单工作,到高难度的智慧挑战,现在已经在挑战人类最后防线—思想,创作!不过我还是觉得人工智能的路还很遥远!

今天我想分享的这个算法其实已经不是新算法了,去年就已经出来了,只是最近发现比较有趣,可以记录一下!

动漫风格化

其实现在好多相机或者软件都有一种功能叫做动漫风格化,就是将普通的照片图片变成动漫的那种二维风格,看着像画笔画出来的动漫场景。


但是很多软件对于图片动漫化的处理效果很垃圾,或者疏忽了一些细节,特别是对于人脸的处理,动漫化过后可能都认不出自己了,因为特征被过度美化或者漏了。

AnimeGANv2网络

AnimeGANv2就是可以实现动漫风格迁移学习的网络,AnimeGANv2之前有很多其他的实现生成动漫风格的网络,像CartoonGAN,CycleGAN,ComboGAN,AnimeGANv1等等,这些都是可以将普通图片转换成动漫风格的网络算法,但是其实各有千秋,转化的最终风格也是各不相同。AnimeGANv2是AnimeGANv1的升级版,据说是在网络损失计算训练数据上面做了改进,网络方面的改动好像是采用了VGG19,但是具体操作不太懂(可以参考第一代论文《AnimeGAN: a novel lightweight GAN for photo animation》)。然后就是训练数据的扩大,新增了宫崎骏新海诚金敏这三位日漫大佬的作品,这样的好处不用多说,生成的动漫图片会更加多元化,而且更加接近真正的动漫。

我们先来看看AnimeGANv2官方提供的测试图片的转换效果:
他们提供的亚洲人图片好像都是韩国的明星,比如IU,孔刘的图片:


威尔史密斯:

其实上面的图片转换没有大问题,基本保留了人物原有的特点,可以看出原型人物的大致特征,但是孔刘这张图片其实不太像,这里其实可以看出算法有个问题,这个我在后面转化许多身边男性朋友的照片时也体现了出来,这个后面总结的时候再说。

模型使用

怎么用这个网络模型呢,说实话用网上的那些软件也可以做出动漫风格的图片,但是我感觉没这个效果好,而且这个是离线的,更加能保护自己的隐私(虽然大数据时代没有隐私!!),总之,我们是可以通过代码直接用已经训练好的模型的,而且我们还可以训练自己的模型,我们有时间可以自己制作训练集,把什么国漫的一些代表作也拿去训练,没准可以让模型更加强大呢,对吧!

官方提供了两个版本的源码,另外一种太麻烦了,我用的是这种pytorch版本的:https://github.com/bryandlee/animegan2-pytorch

将源码下载下来之后操作其实就很简单了,和前面我用YOLO5的那个流程是一样的,因为现在的预训练模型使用流程都是大同小异的一套,就是为了方便大家的使用。安装依赖包的流程就是和我的这篇文章一样的流程,我们直接进入使用的步骤。

这里有三个文件夹需要重点说明一下:

首先是/weights文件夹,这个文件夹里面有四个权重参数,我们只需要用两个,一个是AnimeGANv1,一个是AnimeGANv2的参数,两个我们都可以试试,AnimeGANv2的效果明显要比AnimeGANv1要好,因为前面也说了AnimeGANv2是AnimeGANv1的升级版,当然,也可以试试其他两个模型的参数,反正AnimeGANv2的效果是我觉得最好的,我们的主角是它:

然后是/sample/inputs文件夹,这个文件夹里面装的就是我们需要转换的原型图片,最后就是模型的输出文件,我们可以创建一个/results/文件夹,这个文件夹就是装模型转化成的动漫风格的图片的。

有了这些文件夹过后,我们就可以在命令行输入一行命令运行即可运行(test.py文件就是我们的预测函数,input_dir和output_dir就填自己的路径,device是选择CPU和GPU的,如果没装GPU的化就默认CPU,就可以不用填这个参数):

python test.py --checkpoint ./weights/face_paint_512_v2.pt --input_dir [image_folder_path] --output_dir [image_folder_path] --device [cpu/cuda]

我们来看看模型的效果,我就拿一张自己的一张丑照转化后的样子作为预测结果展示:

这张照片我自己看着很奇怪,我也拿了身边朋友的照片做实验,都发现了一些共同的问题,这其实也包括前面孔刘那张照片的问题,我个人浅薄地评论这个算法有两个很明显的不足:
1.男性的图片转化成为动漫风格的图片过后有点“娘”了,不知道有没有和我感觉一样的,这其实也是我觉得孔刘那张动漫不太像他的原因,主要的原因我觉得就是动漫化后的肤色太过于白皙细腻了,所以导致某些男性特征被掩盖,而原本肤色相对偏黑的同学应该影响会小一点,转换后会非常帅气!

2.单眼皮变双眼皮,我转换了许多人像图片进行尝试,发现单眼皮的同学在经过动漫化后都变成了大双眼皮,虽然双眼皮看着是显得眼大好看,但是少了那一味真实,容易让人认不出自己。其实我感觉这是训练数据的问题,可能训练数据采集的动漫人物角色都是双眼皮吧,所以模型没有学到单眼皮的识别类型。

写在最后

这个网络还是挺好玩的,而且可塑性很高,我们可以通过自己制作训练数据来实现更加广泛的动漫画风。本人才疏学浅,如果有错误或者理解不到位的地方请指正!

实现制作动漫版的你---动漫风格迁移网络AnimeGANv2相关推荐

  1. 超强开源一键照片/视频动漫化风格迁移项目—AnimeGANv2使用

    今天刚来工作就看到了一个推荐的项目,主要是用于将原始拍摄的照片很快捷地转化为动漫风格的图像,在之前的项目实践中,对于这类型的项目我的操作实践还是比较少的,正好今天有时间就想着拿来把玩一下,看看效果究竟 ...

  2. 基于pygame的射击小游戏制作(一)让飞船动起来

    基于pygame的射击小游戏制作(一)让飞船动起来 一.文件结构 alien_invasion.py 是整个系统的主文件,用来创建游戏中的一系列对象,ai_settings存储设置.screen存储显 ...

  3. 利用html制作通讯录_动漫制作软件哪些好用?动漫制作软件推荐

    动漫制作软件哪些好用?动漫制作软件推荐!零基础学动漫哪款软件最好用?动漫设计师往往决定着作品在视觉上的最终呈现效果,一套好的制作工具绝对堪称是动漫设计师的绝佳助手.但由于动漫创作过程纷繁庞杂,且受限于 ...

  4. 制作一幅扑克牌系列三---动起来

    制作一幅扑克牌系列三---动起来 加入了扑克牌拖动js功能,更像空当接龙小游戏了.顺便感谢一下草履虫,这段代码是从他哪儿抄来的,哈哈! <script type="text/javas ...

  5. HTML5期末大作业:动漫网站设计——斗破苍穹动漫(6页) HTML+CSS+JavaScript 学生动漫网页设计模板下载 斗破大学生HTML网页制作作品 简单漫画网页设计成品 dreamweav

    HTML5期末大作业:动漫网站设计--斗破苍穹动漫(6页) HTML+CSS+JavaScript 学生动漫网页设计模板下载 斗破大学生HTML网页制作作品 简单漫画网页设计成品 dreamweave ...

  6. HTML5期末大作业:动漫网站设计——斗破苍穹动漫(6页)带轮播特效 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品

    HTML5期末大作业:动漫网站设计--斗破苍穹动漫(6页)带轮播特效 HTML+CSS+JavaScript 期末作业HTML代码 学生网页课程设计期末作业下载 web网页设计制作成品 大学生毕设网页 ...

  7. HTML5期末大作业:动漫网站设计——火影忍者动漫(7页) HTML+CSS+JavaScript 漫画网页制作作业_电影网页设计...

    HTML5期末大作业:动漫网站设计--火影忍者动漫(7页) HTML+CSS+JavaScript 漫画网页制作作业_电影网页设计- 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电 ...

  8. B12HTML5期末大作业:动漫网站设计——火影忍者动漫(7页) 动漫HTML代码 学生漫画设计与制作期末作业下载 大学生动漫设计与制作成品下载 漫画作业代码下载

    HTML5期末大作业:动漫网站设计--火影忍者动漫(7页) 动漫HTML代码 学生漫画设计与制作期末作业下载 大学生动漫设计与制作成品下载 漫画作业代码下载 常见网页设计作业题材有 个人. 美食. 公 ...

  9. HTML5期末大作业:动漫网站设计——火影忍者动漫(7页) 动漫HTML代码 学生漫画设计与制作期末作业下载 大学生动漫设计与制作成品下载 漫画作业代码下载

    HTML5期末大作业:动漫网站设计--火影忍者动漫(7页) 动漫HTML代码 学生漫画设计与制作期末作业下载 大学生动漫设计与制作成品下载 漫画作业代码下载 常见网页设计作业题材有 个人. 美食. 公 ...

最新文章

  1. python装饰器-Python @函数装饰器及用法(超级详细)
  2. 深入理解 Java 垃圾回收机制
  3. 手机计算机数字显示在桌面上,手机计算器有哪些使用方法
  4. height百分比失效
  5. Python基础模块
  6. SQL:postgresql将查询结果拼接起来
  7. 一键将知网CAJ文件转换成带书签的PDF
  8. sqlserver2012下载地址
  9. opencv之银行卡号识别
  10. 中国省市JSON列表
  11. 美学原理-杨宁课堂笔记
  12. flask导入mysql数据库_flask 数据库报错
  13. 2020 ACL《CoGAN》- Aspect Sentiment Classification with Document-level Sentiment Preference Modeling
  14. 【C#】消除锯齿 - 指定抗锯齿的呈现。
  15. Batch Normalization + Internal Covariate Shift(论文理解)
  16. 各种可执行文件的打包教程,让你的可执行文件美观起来(打包成一个文件,自定义图标)!!!
  17. linux 字体 命令,Linux下的字体
  18. 5G打通云边端,自动驾驶、云游戏等应用加速演进
  19. DSA算法实现数字签名--java实现
  20. 推荐JSON-handle谷歌插件

热门文章

  1. three.js自定义材质 切线空间及阴影
  2. android 人脸识别边框_在Android实现人脸识别的详细过程
  3. java调用monkey,Monkey的使用以及日志分析
  4. DP——状态压缩dp
  5. KDJ指数——C++函数式元编程实现
  6. jdbc步骤java_jdbc连接数据库的5个步骤
  7. Unity3D 编译发布(Publishing Builds)
  8. RSA 加密算法原理简述
  9. Java static关键字
  10. 优化模型验证关键代码26:异构车队车辆路径问题模型及gurobipy实现