公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

转自量子位,作者栗子

 笹木咲

童田明治

只要输入一张静态的老婆,就能让她动起来,会张嘴会眨眼,还能东张西望,抬眼看天。仿佛成了3D老婆。

并且,你想让妹子怎样动,姿势都可以定制。比如,渴望她一直对你wink,就调眼睛的参数:

这里有一只造福人类的AI,作者是名叫Pramook Khungurn的死宅少年。

此宅因长期沉迷虚拟偶像小姐姐,想到用深度学习自己做一只,结果成功了。

他把喜讯发上Reddit,7小时热度便突破200点。楼下有小伙伴发来贺电:

为了科学!

完全无法反驳。

既然如此,背后的科学究竟是怎样的?

静态老婆动起来

我们先粗略了解一下,打造一只虚拟老婆,原本是个怎样的技术任务。

Pramook说,至少得有一个人物模型,ta的动作要能控制:

一种方法是做3D模型,有些虚拟偶像 (VTuber) 的确是这样诞生的。只是比较贵,需要人物设计师和3D建模师,一人很难完成。如果是没有艺术技能的普通人类,就更做不到了。

另一种是做2D模型,成本比较低,这种方法制造的VTuber更常见。2D人物的动作也会简单一些。

于是Pramook明白了,2D老婆更容易获得。但即便这样,2D模型还是分成几个可动的部分,建模师要把这些部分的动作整合到一起,依然非常耗时。

既然如此,作为一只合格的技术宅,当然要用深度学习,把手动2D建模的繁琐步骤跳过去,直接用一张静态图,生成会动的老婆了。(至于静态图从哪来,有GAN可以直接生成啊↓↓↓)

 来自waifulabs

少年打定主意之后,第一步就是要搞个数据集,才好训练算法:

自制数据集

这里需要的是,标注好姿势的脸部数据集。

如果是真实人脸,就有EmotioNet这样的数据集可以用。但二次元应该还没有这样直接可用的数据集。

少年机智地想到,虽然自己要的是2D老婆,但训练数据可以用3D模型来提取。熟悉初音的他,知道MikuMikuDance里面有大量的3D模型,于是下载了8000多个虚拟人物。

这些人物的动作都可以控制,只要想到一个姿势,就能渲染出一张这种姿势的图片来。

每个3D模型都可以得出成百上千张图,8000多个模型合在一起,就是很大的数据集了。

一个训练实例分三张图,第一张是原图 (直视前方) ,第二张是表情修改后的图 (如闭眼/闭嘴) ,第三张是在第二张基础上转动了脸的朝向。

表情的变化,是由6个参数决定的:两个负责眼睛开闭,一个负责嘴巴开闭,还有三个负责脸部转向 (x、y、z轴) 。

数据集有了,算法又是怎样的呢?

两步走

一是表情变化器 (Face Morpher) ,二是脸部旋转器 (Face Rotator) 。

表情变化器比较简单,少年借用了中选ECCV 2018的GANimation算法:

原理是,把从原图到第二张图之间要发生的变化,用另一张图表示出来。

然后用一个Alpha Mask,把这张图片和原图结合起来,就有了第二张图 (Mask也是网络自己生成的) 。

这个算法很适合用来修改图像的一小部分,比如闭眼。

脸部旋转器就复杂一些,用到了两个互补算法。

其中一个依然是GANimation (下图红框) ,原本它只用来改变表情,但少年又让它去做脸部旋转了。

另一个是来自Zhou等人2016年的视角合成算法 (下图蓝框) ,用来让图片里的3D物体转起来。要做到这一点,网络会计算出一个外观流 (Appearance Flow) :它知道,输出的每个像素,色彩是来自输入中的哪个像素。

外观流擅长保存原图的纹理,生成精细的结果,但不擅长脑补旋转之后才露出的部分 (如下图a) ;

而GANimation生成的图像比较模糊,却能脑补出旋转前没有露出的部分 (如下图b) 。

最后,把两个互补算法输出的结果合为一体,用到的主要是U-Net结构。

现在观看一下成果吧。

顺利迁移

首先,既然AI是用3D模型里提取的图片训练的,就先用3D模型的图片测试一下:

3D考试顺利通过。

那么,输入2D图片也能行么?试一下手绘图:

AI依然没有被难住,不论输入的是彩虹社虚拟偶像的照片,还是用Waifulabs自动生成的新妹子 (上图右) 。

不过,这还不算完。

还能怎么玩

和一个面部追踪算法搭配食用,就能让妹子随着视频里的人脸,做出一样的动作。

比如,输入一段奥巴马的视频,妹子就学着他说起话来:

大叔变老婆,一点也不难。这就是虚拟偶像的本质吧 (误) 。

另外,视频不一定要从网上找,也可以自己录,作者Pramook已经试过了:

这样,教二次元老婆用温柔的表情,说出爱你的话,就可以顺畅地恋爱了。要是找不到可爱的声优,可以考虑一下谷歌娘啊。

一切就等算法开源啦。

论文传送门:
https://pkhungurn.github.io/talking-head-anime/

---

以上便是今天的分享,觉得内容不错,还请点个在看支持~

推荐阅读:

公式免费转 LaTex 代码!截图、转换一气呵成

Python 爬取 6271 家死亡公司数据,一眼看尽十年创业公司消亡史!

解放生产力!20 个必知必会 VSCode 小技巧

强烈推荐:9 款用起来超爽的编程字体!

我写了个 Chrome 插件,一键下载 PornHub 视频!

超强算法:一张图让二次元妹纸活起来!相关推荐

  1. AI:人工智能领域主要方向(技术和应用)、与机器学习/深度学习的关系、数据科学关键技术与知识发现/数据挖掘/统计学/模式识别/神经计算学/数据库的关系(几张图理清之间的暧昧关系)

    AI:人工智能领域主要方向(技术和应用).与机器学习/深度学习的关系.数据科学关键技术与知识发现/数据挖掘/统计学/模式识别/神经计算学/数据库的关系(几张图理清之间的暧昧关系) 目录 人工智能主要领 ...

  2. 测试图片真假软件,你的照片PS了么?10秒鉴别妹纸图真假

    这年头什么都可能有假,比如那个和你聊得火热的妹纸,你真的确定"她"不是个男滴么?好吧我相信各位都有自己的判断方法,但仅凭一张"靓照"就飘飘然的也肯定不在少数.在 ...

  3. 7张图讲透Java垃圾回收算法!学妹直呼666!!!

    JVM 在垃圾回收的时候: ① 到底使用了哪些垃圾回收算法? ② 分别在什么场景下使用? ③ 各自的优缺点? 下面就来正式的介绍下垃圾回收算法 标记-清除 标记清除是最简单和干脆的一种垃圾回收算法,他 ...

  4. 只用一张图,就能让二次元老婆动起来,宛如3D:这全是为了科学啊

    栗子 发自 凹非寺 量子位 报道 | 公众号 QbitAI △ 笹木咲 △童田明治 只要输入一张静态的老婆,就能让她动起来,会张嘴会眨眼,还能东张西望,抬眼看天.仿佛成了3D老婆. 并且,你想让妹子怎 ...

  5. 一张图看懂图像识别算法发展历史

    一张图看懂图像识别算法发展历史

  6. DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理

    DL之DNN之BP:神经网络算法简介之BP算法/GD算法之不需要额外任何文字,只需要八张图讲清楚BP类神经网络的工作原理 目录 BP类神经网络理解 1.信号正向传播FP 2.误差反向传播BP+GD B ...

  7. 一句话+一张图——说清楚Aprioir关联规则算法

    一句话 关联分析(关联规则学习): 从大规模数据集中寻找物品间的隐含关系被称作 关联分析(associati analysis) 或者 关联规则学习(association rule learning ...

  8. 【笔记】三张图读懂机器学习:基本概念、五大流派与九种常见算法

    文章目录 [笔记]三张图读懂机器学习:基本概念.五大流派与九种常见算法 Chapter 1: A look at Machine learning 1.What is it? 2.How does m ...

  9. 数据结构与算法01:一张图概括【数据结构】是什么?(大白话+图解)

    大白话+图解,数据结构到底是什么? 数据结构:数据结构(data structure)描述的是按照一定逻辑关系组织起来的待处理数据元素的表示及相关操作,涉及数据的逻辑结构.数据的存储结构和数据的运算. ...

最新文章

  1. 为什么图片要2的倍数_为什么电工作业时,至少要有2个人?电工保命四招要牢记!...
  2. 【javascript】函数调用的对象和方法
  3. [leetcode]94.二叉树的中序遍历
  4. 【转载】使用WatiN对ASP.NET页面进行单元测试
  5. 批量创建10个系统帐号tianda01-tianda10并设置密码
  6. 机器学习入门一 ------- 什么是机器学习,机器学习的在实际中的用处
  7. python管道怎么使用_python中管道用法入门实例
  8. Java高并发BlockingQueue重要的实现类二
  9. bzoj 2733: [HNOI2012]永无乡(线段树启发式合并)
  10. python词云制作(最全最详细的教程)
  11. 人脸识别技术全面总结
  12. adt变频器故障代码ol2_变频器常见故障代码及处理实例
  13. php链路追踪molten
  14. 树形表实现 bootstrap-table + treegrid
  15. win10的计算机是哪个版本,Windows 10系统都有哪些版本?老旧电脑装哪个版本的win10好?...
  16. jscese 知其白 守其黑 為天下式 __Read The Fucking Source Code的博客汇总
  17. Android4.4蓝牙耳机HFP流程分析-1
  18. 自动驾驶发展_自动驾驶网络及其发展
  19. Nginx反向代理服务器基本应用
  20. java 给图片添加暗水印_Java实现给图片添加水印

热门文章

  1. 抖音直播运营的5个要点,15个操作步骤!
  2. 3串12.6V3.3A锂电池充电器规格书
  3. 微信JSSDK分享接口教程,wechat,share ,onMenuShareAppMessage wx.onMenuShareTimeline
  4. 大学荒废三年,大四自学7个月测试,找到了12K的工作
  5. JAVA--Map集合详解
  6. 网游服务器通信架构的设计
  7. Git忽略特殊文件(.gitignore)
  8. Mybatis的优点
  9. iOS视频录制、压缩、上传(整理)
  10. Jquery轮播图,点击左右按钮进行轮播