AI算法,又整新活!萌妹子来挑战~

AI算法,又整新活!萌妹子来挑战~GANsNRoses动画脸控制变换算法

大家好,又见面了,我是你们的朋友全栈君。

大家好,我是 Jack。

好久没出趣味 AI 的教程了,今天安排一期。

只需要一张图片或者视频,就可以生成相应的二次元“老婆”。

感受一下:

AI算法,又整新活!萌妹子来挑战~

放个视频,感受更强烈:

GANsNRoses展示

二次元“老婆”,是跟随视频的动作,而改变的。

之前我写过一阶运动模型的算法教程:

让图片动起来,特朗普和蒙娜丽莎深情合唱

功能看起来类似,但是算法实现是不同的。

真人驱动动漫图片的算法,这种效果比较好:

二次元的正确打开方式

这个动画脸控制变换算法,采用的是 GAN,只需要一个输入即可,生成+控制,用这一个算法即可。

GANsNRoses

这个算法的名字叫 GANsNRoses,一种风格迁移算法。

简单来讲,就是一种以人脸图像的内容代码为输入并输出具有多种随机选择风格代码的动漫形象。

算法实现也并不复杂:

AI算法,又整新活!萌妹子来挑战~

生成器负责生成动画脸,辨别器负责辨别是否为动画脸。

生成器分为内容编码器c和样式编码器s。

AI算法,又整新活!萌妹子来挑战~

样式编码器s,负责整体的风格,比如头发样式,脸的位置,发色等。

内容编码器c,负责细节的把控,比如头部倾斜角度等。

想了解更详细,可以直接看论文:

https://arxiv.org/pdf/2106.06561.pdf

测试

目前有三种方式:

  • 网页 Demo

  • Colab

  • 本地搭建

网页 Demo

网页 Demo,用起来最简单,上传图片就行。

https://gradio.app/g/AK391/GANsNRoses

不过貌似只支持图片的制作。

测试了龙母的效果,她看了估计会哭晕在厕所。

AI算法,又整新活!萌妹子来挑战~

Colab

Colab 运行也很简单,有个梯子就行。

https://colab.research.google.com/github/mchong6/GANsNRoses/blob/main/inference_colab.ipynb

省去了部署环境的烦恼,傻瓜式运行即可,图片和视频,都可以测试。

本地搭建

主要是搭建环境,这个直接用 Conda 创建虚拟环境,然后安装各种第三方库即可:

conda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=<CUDA_VERSION>
pip install tqdm gdown kornia scipy opencv-python dlib moviepy lpips aubio ninja

Conda 使用可以参考这一篇:

别再折腾开发环境了,一劳永逸的搭建方法

然后下载模型权重文件,就可以,模型权重文件还是蛮大的,1.6G,从 Google Drive 下载比较慢,建议直接用 Colab 测试。

总结

这种算法,其实蛮多的,单从效果来讲,还有很大提升空间的

最后,我看B站有个up主,籽岷自己做了鬼畜,新宝岛版:

GANsNRoses展示2

目前,这类算法,做个鬼畜其实还行。


最后再送大家一本,帮助我拿到 BAT 等一线大厂 offer 的数据结构刷题笔记,是一位 Google 大神写的,对于算法薄弱或者需要提高的同学都十分受用:

谷歌和阿里大佬的Leetcode刷题笔记

以及我整理的 BAT 算法工程师学习路线,书籍+视频,完整的学习路线和说明,对于想成为算法工程师的,绝对能有所帮助:

我是如何成为算法工程师的,超详细的学习路线


我是 Jack,我们下期见。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132614.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ESP8266开发之旅 小程序之阿里云篇① “IOT菜鸟”小程序,小白简单配置就可以玩起来

    ESP8266开发之旅 小程序之阿里云篇① “IOT菜鸟”小程序,小白简单配置就可以玩起来ESP8266开发之旅小程序之阿里云篇①IOT菜鸟,小程序如何对接阿里云

    2022年7月16日
    19
  • WebStorm快捷键(Mac版)

    WebStorm快捷键(Mac版)编辑Command+alt+T用(if..else,try..catch,for,etc.)包住Command+/注释/取消注释的行注释Command+alt+/注释/取消注释与块注释alt+↑向上选取代码块alt+↓向下选取代码块Command+alt+L格式化代码tab,shift+tab调整缩进Contro

    2022年5月25日
    105
  • 图像生成与图像处理_matlab中colorbar是什么意思

    图像生成与图像处理_matlab中colorbar是什么意思1colorBar介绍colorBar主要是指一些图像处理中使用的常见纯色或者渐变色条。colorBar用途可作为测试样图来验证某些图像算法的效果,从而避免图像内容或者硬件对图像的干扰,使图像算法

    2022年8月2日
    11
  • 卸载360天擎企业版需要密码吗_360天擎密码是什么

    卸载360天擎企业版需要密码吗_360天擎密码是什么不要用什么网上用的粉碎文件软件粉碎文件,根本粉碎不掉。直接进入电脑安全模式什么都能删什么都卸载。卸载360天擎需要先进入安装目录找到EntClient文件夹,删完以后就不需要密码能直接卸载了。粗暴一点的方法直接把整个安装目录删了(但一般不建议这样做)如何进入安全模式查看下面文章https://baijiahao.baidu.com/s?id=1636641696071912488&wfr=spider&for=pc…

    2022年9月25日
    2
  • Servlet-JSP入门

    Servlet-JSP入门JSP作用:主要作用是代替Servlet程序回传html页面的数据。因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都很高。一般的Servlet回传页面如下protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType(“text/html;charset=U

    2022年8月8日
    7
  • Python写代码的用法建议「建议收藏」

    Python写代码的用法建议「建议收藏」1.MutableandimmutabletypesPython有两种内置或用户定义的类型可变类型是允许就地修改内容的类型。典型的可变列表是列表和词典:所有列表都有变异方法,如 l

    2022年7月5日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号