B 站神曲damedane:精髓在于换脸,五分钟就能学会
导读:AI 换脸技术层出不穷,但一代更比一代强。最近,一个发表在 NeurIPs 2019 的 AI 换脸模型 first order motion model 火了起来,其表情迁移效果胜过同领域其它方法。最近,这项技术在 B 站引起一波新潮流……
来源 | HyperAI超神经(ID: HyperAI)
最近,B 站上涌现出一波画风过于「生草」(B 站黑话,意为魔性搞笑)的视频,播放量动辄上百万,相当火爆。
技能满分的 Up 主们,利用「first order motion 一阶运动模型」的 AI 换脸项目,生成了各种各样画风清奇的视频。
比如,竟然让张学友、杜甫、唐僧、熊猫头表情包声情并茂地演唱《damedane》、《unravel》……画面是这个样子的:
唐僧版《Unravel》,来源:B 站 Up 主:粗犷毛线君
杜甫版《Unravel》,来源 B 站 Up 主:cold_joke
看动图不过瘾,还是直接上视频吧:
流泪猫咪版洗脑神曲《damedane》,截至目前播放量 211.3 万。来源:B 站 Up 主浓密秀发胡图图
不得不说,有点上头……大家可以自行到小破站搜索更多作品观赏。
这些视频引得无数网友摩拳擦掌跃跃欲试,纷纷留言求教程。接下来,我们就来了解一下,实现这些换脸效果的技术(万恶之源):一阶运动模型(first order motion model)。
学习园地 B 站,多个教程教你对口型
迄今为止,类似的换脸、对口型的技术层出不穷,每提出一个,就会引起一波换脸热潮。
而 First order motion 模型由于在五官、口型优化上效果比较好,且容易上手、实现效率高,于是大受欢迎。
B 站上的 up 主们,已经积极上传了不少教程
比如要文章开头的《damedane》换脸,只需几十秒就能实现,五分钟就可以学会。
B 站上的多数 up 主选用 Google 的云端硬盘和 Colab 来进行教程。考虑到翻墙门槛,我们选取了其中一位 up 主的教程,使用国内的机器学习算力容器服务(https://openbayes.com),现在还能薅羊毛,每周都赠送 vGPU 的使用时长,轻松完成该教程。
不到 5 分钟就可以完成自己的《damedane》
这个教学视频逐步讲解,即使是小白,也能轻松学会这招换脸大法。up 主还将 notebook 上传到了平台,只要一键 clone 就可以直接使用。
不过,很多技术 Up 主表示,娱乐之余,制作视频是为了进行技术交流,所以希望大家不要恶意滥用。
上图视频教程地址:
https://openbayes.com/console/openbayes/public/containers/BwZQj5wr3Jp
原项目 Github 地址:
https://github.com/AliaksandrSiarohin/first-order-model
又一个换脸神器,好用在哪里?
First order motion 模型来自顶会 NeurlPS 2019 上的一篇论文,《First Order Motion Model for Image Animation》(《用于图像动画的一阶运动模型》),作者来自意大利的特伦托大学以及 snap 公司。
论文地址:https://arxiv.org/pdf/2003.00196.pdf
由标题就可知,该论文要实现的目标是让静态图片动起来。在给定一张源图片和一个驱动视频的情况下,让源图片中的形象,跟着驱动视频中的动作动起来。也就是,让万物皆可动起来。
效果如下图所示,左上角为驱动视频,其余为源静态图:
模型框架构成
总的来说,该一阶运动模型的框架主要由两个模块组成:运动估计模块(motion estimation module)和图像生成模块(image generation module)。
运动估计模块:通过自监督学习将目标物体的外观和运动信息进行分离,并进行特征表示。
图像生成模块:模型会对目标运动期间出现的遮挡进行建模,然后从给定的名人图片中提取外观信息,结合先前获得的特征表示,进行视频合成。
方法概述
比传统模型强在哪里?
有人可能会有疑问,这和之前的 AI 换脸方法有什么不同?作者给出了解释。
此前的换脸视频操作,需要以下操作:
通常需要针对换脸的双方人脸图像数据,进行事先训练;
需要对源图像进行关键点标注、再进行相应的模型训练。
但现实中个人的人脸数据较少,也没有大量的时间进行训练。因此,传统的模型通常用在特定形象上效果较好,但用在普通大众身上,质量就很难保证,容易翻车。
之前的方法会出现表情迁移不准的情况
因此,该论文提出的方法,解决了对数据的依赖问题,大大提高了生成效率。想实现表情、动作迁移,只需要在同类别的图像数据集上训练即可。
比如想实现表情迁移,则不管是换谁的脸,只要在人脸数据集训练即可;想实现太极动作迁移,就用太极视频数据集进行训练。
训练完成之后,使用对应的预训练模型,就可以实现让源图像跟着驱动视频动起来的结果。
该方法与其它方法在同一数据集训练效果对比
第二、三列的方法对于人体动作迁移会出现偏差
作者将其方法与目前该方向最先进的方法 X2Face 和 Monkey-Net 进行了对比,结果在相同的数据集中,本方法各个指标都有所提高,在两个人脸数据集(VoxCeleb 和 Nemo)上,本方法也明显优于最初提出用于人脸生成的 X2Face。
damedane 换脸视频原型的倾情演绎
更多精彩推荐
开放源码,华为鸿蒙HarmonyOS 2.0来了
怎样用Python控制图片人物动起来?一文Get
滴滴AI Labs负责人叶杰平离职!CTO 张博接任
一年翻 3 倍,装机量 6 亿台的物联网操作系统又放大招
相关文章:

html select以数组的方式提交
2019独角兽企业重金招聘Python工程师标准>>> 1).select 以数组的方式提交 <form> <input type"hidden" name"app" value"wap_test"> <select name"attribute[颜色]"> &…

META的一些功用
作者:军军 文章来源:闪吧 META的一些功用 META标记用于描述不包含在标准HTML里的一些文档信息。基于这一基 础上又开发出一些其它的有用功能,下面我挑选几种功能和大家说一下: 1、如何让搜索引擎搜索到你的页面 …
Python爬虫并自制新闻网站,太好玩了
来源 | 凹凸数据(ID:alltodata)我们总是在爬啊爬,爬到了数据难道只是为了做一个词云吗?当然不!这次我就利用flask为大家呈现一道小菜。Flask是python中一个轻量级web框架,相对于其他web框架来说…

CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法
cpu quantum造成的Oracle等待事件解决办法 不少接触数据库的朋友有一个困扰已久的问题——resmgr:cpu quantum。已经遇过不少次这种CPU突然全绿的情况,通过隐含参数屏蔽了一下,方便研究。 刚好有人问我这个问题,就干脆翻文档写一篇文章给这位…

讲解用户角色切换
方法一:有root密码,可以使用su - root切换到root下,为了安全起见,不建议使用,因为如果切换到root下,被人修改了root密码,就真的完蛋了.......方法二:通过sudo给普通用户授权…

HTML教程-各窗口间相互操作(Frame Target)
文章来源: 山西之窗由Frames分出来的几个窗口的内容并不是静止不变的,往往一个窗口的内容随着另一个窗口的要求而不断变化,这就提高了Frames的利用价值。为了完成各窗口之间的相互操作,我们必须为每一个窗口起一个名字,…

[转载] 晓说——第3期:梦回青楼 爱与自由的温柔乡(上)
转载于:https://www.cnblogs.com/6DAN_HUST/archive/2012/08/20/2647811.html
10个 Python 工程师,9个不合格!
毋庸置疑,Python越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员,还是年薪百万的 BATJ 的大牛都无可否认:Python的应用能力是成为一名码农大神的必要项。 所以,很多程序员把Python当做第一语言来学习。 但对于Pytho…

驱动07.USB驱动程序
1 了解USB识别的过程 eg:在Windows系统下的一个现象:把手机的USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道是"a…
豪气!华为放话:3年培养100万AI人才!网友神回应了
大家经常把BAT挂在嘴边,但是可能有些人还不知道,华为的体量早已超越了这三巨头,只是迟迟不肯上市。华为的创始人任正非曾说表:上不上市不重要,最重要的是要让中国华为的技术能够称霸全球!华为对技术的重视&…

InnoDB的启动,关闭,恢复
InnoDB存储引擎是MySQL的存储引擎之一,因此InnoDB存储引擎的启动和关闭更准确地是指在MySQL实例的启动过程中对InnoDB表存储引擎的处理过程。 参数innodb_fast_shutdown 在关闭时,参数innodb_fast_shutdown影响着表的存储引擎为InnoDB的行为。该参数可取…
微软推出提点神器动态ReLU,可能是最好的ReLU改进
作者 | Vincent 来源 | 晓飞的算法工程笔记 简介ReLU是深度学习中很重要的里程碑,简单但强大,能够极大地提升神经网络的性能。目前也有很多ReLU的改进版,比如Leaky ReLU和 PReLU,而这些改进版和原版的最终参数都是固定的。所以论…

监控 monit
官方说明文档 http://mmonit.com/monit/documentation/monit.html 实例 http://mmonit.com/wiki/Monit/ConfigurationExamples 下载最新软件包 wget http://mmonit.com/monit/dist/monit-5.4.tar.gz monit 介绍 monit是一个实用程序,用于在 Unix 系统上管理和监视…

框架窗口的尺寸设置
将窗口分割为几块,横向分用ROWS属性,纵向分用COLS属性,每一块的大小可以由这两个属性的值来实现。 <frameset cols#> 例:<frameset cols"100,200,300"> <frameset rows#> 例:<…

C语言双链表遍历,插入,删除
#include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memset(a, 0, b)//windows平台下无bzero函数。 增加宏拓展移植性struct node{int data; //有效数据 struct node *pLast;//指向上一个节点的指针…

详解.NET的RAD功能
作者:中国计算机报Visual Studio.NET 拥有开发者建立一个成功而强大的中间层应用服务所需要的所有开发工具,利用这些工具,开发者可以: 1.保障消息传播和利用微软消息队列(MSMQ)跨平台的通讯; 2…

Java初学者如何自学和自己定位解决问题
注: OneCoder 即本人苦逼Coder 今天群里(Java Coder群:91513074)的朋友,问我该如何看帮助文档,或者说在遇到问题的时候如何解决。希望我能介绍一下我的方法。 这个OneCoder其实没有资格高谈阔论,只能说说个人的习惯和…
仅用 4 小时,吃透“百度太行”背后硬科技!
我们正处于一个 AI 生万物,万物生 AI 的时代,云与 AI 也如共同体,水乳相容不可分割。无论是企业还是政府机构、社会团体,上云已然成为一个不可抗的趋势,尤其是 AI 的发展,更是离不开强大、灵活、便捷的云计…

(转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)
原处:http://blog.csdn.net/ns_code/article/details/17485221在这里看到了try catch finally块中含有return语句时程序执行的几种情况,但其实总结的并不全,而且分析的比较含糊。但有一点是可以肯定的,finally块中的内容会先于try…

希捷携全线企业级解决方案出席ODCC,Exos X18与Exos 2X14硬盘斩获两项大奖
2020年9月15日,数据存储与管理解决方案提供商希捷科技公司亮相2020开放数据中心(ODCC)峰会,并发表了以“数据新视界”为主题的演讲。希捷银河(Exos)18TB硬盘与希捷银河(Exos)2X14 MA…

动态装载和使用类型
作者:微软Reflection提供诸如Microsoft Visual Basic.NET和JScript语言编译器使用的底层结构来实施隐性后绑定。绑定是定位与某一特定类型相对应的声明的过程。当这个过程发生在运行的时候,而不是编译的时候,它被称为后绑定。Visual Basic.NE…

求1 + 2 + 3...+ n的和
题目:求1 2 3 ... n 的和 要求:不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C) 答: #include "stdafx.h" #include <iostream>using namespace std;//1、函数查找表法 typedef in…

Debussy的安装
下载完成后对软件安装包进行解压缩,得到安装文件和破解文件。 双击Debussy-54v9-NT.exe进行安装,出现以下界面,选择安装的路径。 选择安装类型,最好选择typical类型。 选择相关配置。 进行安装。 选择Yes继续,dont dis…

如何调试你的C#程序
作者:龙山文化 文章来源:ASPCool.com欢迎来到C#的奇妙天空,在这里,希望你能获得你想获得的东西,.我们真诚希望能给你带来巨大的帮助,带你进入另外一个广阔的空间。 Come on. Follow me and then U can W…

SSAS使用时间智能解决本年累计、同比、环比【转载】
通常,我们需要使用MDX来定义本年累计、同比、环比等一系列基于时间维度的计算指标。但是这样有一个麻烦的地方就是比如我有50个基础指标,每个指标都需要本年累计,那我就需要写50遍下面的语句:create member CURRENTCUBE.[MEASURES…
良心贴!没想到 Google 排名第一的编程语言,可以这么简单!
作为最近几年最火的编程语言,Python(没有之一)已经走过了20多个年头。也难怪,作为大数据时代和人工智能时代的必备语言,Python 的优点太多了,语言简洁、易学、开发效率高、可移植性强......不过它火起来的主…

报错 org.springframework.beans.factory.BeanCreationException
2019独角兽企业重金招聘Python工程师标准>>> 一.问题背景: spring mvc eclipse启动报错:org.springframework.beans.factory.BeanCreationException 二.分析 1.写了一个名为“User”的 实体bean,然后写了有参构造函数,…
醉没醉,带上智能手机走两步就知道
来源 | HyperAI超神经场景描述:斯坦福大学和匹兹堡大学的研究小组,最近发表了一项用智能手机检测醉酒状态的研究,可利用步态特征检测相应的血液和呼吸酒精浓度。以后喝没喝多,用你的手机测一测就知道。关键词:智能手机…

Linux编程常见问题
错误提示:Makefile:2: *** 遗漏分隔符 。 停止。原因makefile中 gcc语句前 缺少一个 tab分割符错误提示: bash: ./makefile: 权限不够原因 makefile 是文本文件不可执行,即使是root,也会权限不够我们应该在命令行下使用make&#…

网络工程师转售前的条件
昨天出差回来的时候已是凌晨四点,辛勤工作的早餐已经开始忙碌了。你走之后的第一周,房子空荡荡的,就剩下你的头发和发髻,还有你留下的信。真的很对不起你,从参加工作开始,我们总是聚少离多,很多…