MakeItTalk: 让图像开口说话!

2023-11-03

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!

文自 【机器之心】 参与 魔王

未经授权,不得二次转载

不仅让真人图像开口说话,油画、素描、漫画等都能动起来!

给出一张面部图像和一段音频,能做什么?AI 有办法,比如让图像中的人开口说话!

此前,机器之心报道过三星人工智能研究中心和伦敦帝国理工学院提出的新型端到端系统,仅凭一张人脸照片和一段音频,就可以生成新的讲话或唱歌视频。

最近我们发现了一项类似的研究,马萨诸塞大学阿默斯特分校、Adobe 研究院等机构提出了一种叫做 MakeItTalk 的新方法,不仅能让真人头像说话,还可以让卡通、油画、素描、日漫中的人像说话。

论文链接:https://arxiv.org/pdf/2004.12992v1.pdf

不信就来看看效果吧!

我们首先看一看真人图像的动态化效果。

看起来不错,那么卡通画呢?

给我一个插座,我能让他成精!

还有油画。

如果我想让图像中的人物摇头晃脑高谈阔论,或者保持沉静端庄呢?

答案是也可以实现。

动图 get 不到声画同步效果?请戳下面这个视频:

那么,这是如何做到的呢?

之前的方法往往学习音频和原始像素之间的直接映射进而创建人物的说话动态,而这项研究提出的方法将输入音频信号中的内容和说话人身份信息分离开来:音频内容用来稳健地控制嘴唇及周围区域的运动;说话人信息则决定面部表情的细节和人物的头部动态。

该方法的另一个重要组件是预测能够反映说话人动态的面部特征点。基于该中间表征,该方法能够为真人头部图像合成说话状态视频。此方法还可用于艺术作品、素描、2D 卡通人物、日漫、随手涂鸦等图像。

研究者对该方法进行了定量和定性评估,结果表明与之前的 SOTA 方法相比,该方法能够生成具备更高质量的说话状态头部动画

图 8:与 SOTA 方法的对比。

研究贡献

该研究的主要贡献如下:

  • 提出一种基于深度学习的新架构,能够仅基于语音信号预测面部特征点,捕捉嘴唇、下巴、眉毛、鼻子和头部的姿势;

  • 基于分离开的语音内容和说话人表征生成包含面部表情和头部动态的动画;

  • 针对矢量风格卡通图像和真实人物面部图像各提出一种图像合成方法。这些方法可以处理训练过程中未出现的新人脸图像和卡通人物图像

  • 提出一组定量度量指标,并对头部动画方法的评估进行了用户调研。

MakeItTalk 架构

图 2:MakeItTalk 方法概览。

如上图所示,给出一段音频和一张面部图像,MakeItTalk 架构可以生成说话人的头部状态动画,且声画同步。

在训练阶段,研究者使用现成可用的人脸特征点检测器对输入图像进行预处理,提取面部特征点。然后使用输入音频和提取到的特征点直接训练使语音内容动态化的基线模型。为了达到高保真动态效果,研究者尝试将输入音频信号的语音内容和说话人嵌入分离开来,进而实现面部特征点的预测。

具体而言,该研究使用声音转换神经网络将语音内容和说话人身份信息分离开

语音内容与说话人无关,仅捕捉嘴唇及周围区域的运动(参见图 2「Speech Content Animation」)。说话人的身份信息则决定了动作的细节和说话人的其余头部动态(参加图 2「Speaker-Aware Animation」)。

例如,不管谁说单词「Ha!」嘴唇都会张开,这与说话人无关,仅取决于说话内容。而嘴唇的形状和张开的幅度,以及鼻子、眼睛和头部的动态则取决于说话人的身份。

基于语音内容和说话人身份信息,MakeItTalk 模型为给定音频输出预测特征点序列。

图 3:针对不同说话人身份的特征点预测。左:给定人脸图像的静态特征点;右上:对说话时头部动作较轻的人的预测特征点序列;右下:对说话时头部动作较大的人的预测特征点序列。

为了生成光栅图像,研究者开发了两种特征点-图像合成(landmark-to-image synthesis)算法。

对于非真人图像,如油画或矢量图(图 9),该研究使用基于德劳内三角剖分(Delaunay triangulation)的简单换脸方法。

图 4:通过面部特征点和德劳内三角剖分进行卡通图像换脸。左:给出的卡通图像和面部特征点;中:德劳内三角剖分;右:由预测特征点引导进行换脸后的图像。

对于真人图像(图 8),则使用图像转换网络(类似于 pix2pix)将真人面部图像和底层特征点预测动态化(参见上图 2「Image2Image Translation」)。

之后结合所有图像帧和输入音频,就可以得到最终的说话状态头部动画了。

下图 6 展示了卡通图像和真人图像的动态化结果:

图 6:MakeItTalk 生成的卡通动画和真人面部动画。该方法不仅可以合成面部表情,还可以合成不同的头部姿势。

MakeItTalk 有何实际用途?

合成说话状态头部动画有很多应用场景,比如配音。

下图 7a 中,原始视频使用语言为英语,而配音版使用的是西班牙语,那么问题来了,配音版影片中人物的面部表情和语音对不上号。使用 MakeItTalk 后可以生成语音对应的视频帧,实现声画同步,并保持原版视频中的说话风格。

另一个应用则是目前应用广泛的视频会议。

在有限带宽视频会议中,视频帧无法以高保真度和高帧率进行传输,这时我们就可以利用声音信号带动说话者的头部动态视频。与视觉画面相比,声音信号可以以较低的带宽保存。而且,面部表情(尤其是嘴唇动作)对于沟通交流非常重要。下图 7b 展示了,使用 MakeItTalk 仅基于音频和初始高质量视频帧合成的头部动态视频。

图 7:MakeItTalk 的应用。第一行:用不同语言为视频配音;第二行:有限带宽视频会议。


GAN&CV交流群,无论小白还是大佬,诚挚邀您加入!

一起讨论交流!长按备注【进群】加入:

更多分享、长按关注本公众号:

回复“ 29GAN ”,获取29篇经典GAN的论文!
回复“
GANCV ”,获取关于GAN在计算机视觉的应用导读30讲!
回复“
GAN起来 ”,获取350+篇GAN论文!
回复“ 
虚拟换衣 ”,获取虚拟换衣的GAN论文!
回复“ 
妆容迁移 ”,获取妆容迁移的GAN论文!
回复“ 
超分GAN ”,获取GAN做超分的70篇论文!
回复“ 
三把刀 ”,获取Python、PyTorch和DL神经网络电子书!
回复“ 
分享1 ”,获取两本TF、PyTorch电子书!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MakeItTalk: 让图像开口说话! 的相关文章

  • unity渲染队列render quaue

    本文转载自http blog csdn net candycat1992 article details 37345251 本系列主要参考 Unity Shaders and Effects Cookbook 一书 感谢原书作者 同时会加上
  • shell中for循环变量常见使用场景

    shell中for循环变量常见使用场景 1 目的 在shell脚本for循环使用过程中经常出现非常规使用场景 如在awk的条件语句中 输出文本中变量后有字符等 这些场景中需要对for循环中的变量做处理 希望持续完善 2不同场景 2 1 变量
  • React配置webpack(一)

    一 安装 create react app npx create react app react webpack app cd react webpack app npm start 二 初始化项目 npm init y 三 安装所需包 w
  • Linux中Hadoop的安装与配置

    1 首先关闭虚拟机的防火墙 2 查看防火墙状态 3 然后修改主机名称 配置hosts vi etc hosts 前面是自己的主机IP地址 后面是想要修改的主机名称 修改完成保存后reboot重启即可修改完成 4 把Hadoop和jdk压缩包
  • 一文读懂迭代器(iterator)在vector中的用法

    首先写好头文件vector和string的头文件是 include
  • Linux中vim下方向键变成ABCD,backspace无法删除字符的解决办法

    在linux中安装完VIM后 发现在insert模式下 按下四个方向键在屏幕中会输出ABCD这样的字符 并且Backspace无法实现删除功能 虽然可以在normal模式下通过hjkl实现光标的移动 通过x和d实现删除功能 但是每次都要进行
  • 【Python编程】删除列表中具有连续重复项的元素

    删除列表中具有连续重复项的元素 输入 1 1 1 1 1 1 2 3 4 4 5 1 2 输出 1 2 3 4 5 1 2 方法1 循环遍历 a 1 1 1 1 1 1 2 3 4 4 5 1 2 i 0 while i lt len a
  • 如何成为一名AI人工智能算法工程师?

    https www toutiao com a6707050434688713227 经常有朋友私信问 如何学python呀 如何敲代码呀 如何进入AI行业呀 正好回头看看自己这一年走过的路 进行一次经验总结 来看看你距离成为一名AI工程师
  • 时序预测:MATLAB实现时间序列回归之Bootstrapped测试

    时序预测 MATLAB实现时间序列回归之Bootstrapped测试 时序预测是实际应用中非常重要的任务 它在金融 企业经营 气象预测等领域都有广泛的应用 而时间序列回归也是时序预测中最为基础和实用的方法之一 本文将通过MATLAB对时间序
  • 【QT实战】第一章 QT实现画板工具的制作

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • c++ 学习之 构造函数的使用规则

    上规则 默认情况下 c 编译器至少给一个类添加三个函数 1 默认构造函数 无参 函数体为空 2 默认析构函数 无参 函数体为空 3 默认拷贝函数 对其属性进行值拷贝 构造函数调用规则 如果用户定义有参构造函数 c 不再提供默认无参构造函数
  • android自定义数字键盘

    前言 最近需要做一个自定义的数字键盘 开始使用了下系统自带的KeyBoardView 但是发现UI效果不是很理想 最后还是自己画一个自定义键盘 这样在UI方面更加方便 先看效果图吧 思路 1 键盘4行 3列的布局分为12个单元格 6条直线分
  • 【神经网络学习】鸢尾花分类的实现

    目录 1 问题 2 问题解决思路 3 神经网络理论准备 4 Tensor Flow编程基础 5 鸢尾花分类神经网络实现 1 问题 鸢尾花分为 狗尾草鸢尾 杂色鸢尾 弗吉尼亚鸢尾 通过测量 花萼长 花萼宽 花瓣长 花瓣宽 这四个参数得出鸢尾花
  • PCB的3D模型的一些工具

    stp转 step的工具 免费将 STP 转换为 STEP ImageToStl
  • Windows 修改 cmd 命令行窗口字符编码

    查看当前 cmd 命令行窗口字符编码 已经是UTF 8 如果要修改为UTF 8 打开注册表 WIN R输入 regedit 回车 找到 HKEY LOCAL MACHINE SOFTWARE Microsoft Command Proces
  • WMS仓储管理系统在各种行业中,都有哪些作用

    由计算机控制的仓库管理系统的目的是独立实现仓储管理各种功能 收货 在正确的地点存货 存货管理 订单处理 分拣和配送控制 WMS仓储管理系统将关注的焦点集中于对仓储执行的优化和有效管理 同时延伸到运输配送计划 和上下游供应商客户的信息交互 从
  • python PDB调试

    1 python m pdb py 从第一行开始pdb调试 2 断点设置 在某一行插入 import pdb pdb set trace 3 常用命令 n ext 下一步 s tep 进入函数 c ontinue 继续到下一个断点 l is
  • 如何计算:结构体内存的大小(在结构体的考察中占据非常重要的地位)

    在之前的文章中 笔者就结构体的简单定义 初始化 等内容 进行了简单描述 但是 对于int double float char 等类型都有自己的大小 但是 对于一个结构体 它的大小该如何计算呢 确实是一个疑问 这个也是不少老铁 在刚学结构体时
  • Vinted、PoshMark、Carousell这些海外二手跨境电商平台如何运营?

    相信大家都知道 闲鱼 二手交易平台一般来说入驻成本低 运营操作简单 平台流量多 因此也非常适合小型卖家入驻 那么海外的 闲鱼 有哪些呢 如何运营 小编为大家找到了国外热门这些平台 有Vinted Facebook marketplace P
  • Excel实现数据项校验的功能---VBA的编写以及数据有效性的设置

    学习VBA的网址 VBA比较运算符 VBA教程 VBA在Excel中的应用 一 改变符合条件单元格的背景颜色 vba判断不是空 百度知道 测试文件 链接 http pan baidu com s 1o7QsCJo 密码 eni7 1 启用宏

随机推荐

  • 《精通direct3d图形及动画程序设计》学习(7)(2012年12月23日)

    8 1 深度测试 22 56
  • 峡谷之巅显示服务器更新,峡谷之巅更新最新资讯

    英雄联盟峡谷之巅第七赛季之前就结束了 目前这次赛季的结算奖励马上就要发放了 很多玩家还不清楚在哪领取 下面就来为大家详细的介绍一下领取地址 英雄联盟峡谷之巅第六赛季的奖励正式的公布了 这次只要排位赛胜场最多的2000名玩家就可以领取到奥术师
  • SpringMVC 中整合JSON、XML视图一

    原文地址 http blog csdn net ibm hoojo article details 6371647 SpringMVC中整合了JSON XML的视图 可以通过这些视图完成Java对象到XML JSON的转换 转换XML提供了
  • nrm安装后报错 require() of ES modules is not supported.

    报错如下 根据路径打开cli js文件 第九行使用 open 的是CommonJs 规范的包 现在 open v9 0 0 是 ES Module 版本的包 解决方法 npm install g nrm open 8 4 2 save
  • Java中的NIO和IO的比较

    java标准的I O中 提供了基于流的I O实现 即InputStream和OutputStream 这种基于流的实现以字节为单位处理数据 NIO在java 1 4中被纳入到了JDK中 与旧式的的基于流的I O相比 NIO是基于块的 以块为
  • java案例4:银行存取款的程序设计

    银行存取款的程序设计 用户在银行进行存款 取款 查询余额 编写一个账户类实现银行账户的概念 创建账户类的对象ba 假设账号为123456 初始余额为500元 实现向该账户存入1000元 再取出800元 分析 1 定义一个银行账户类 实现账户
  • Docker打包Springboot及查看日志的方法

    查看Docker容器中的日志信息 docker logs 容器名称 docker logs mynginx 打印容器中的日志信息并形成文件 docker logs mynginx cat 1 gt home myngnx log 进入容器操
  • 书写SQL必养成的好习惯

    前言 每一个好习惯都是一笔财富 本文分SQL后悔药 SQL性能优化 SQL规范优雅三个方向 分享写SQL的21个好习惯 1 写完SQL先explain查看执行计划 SQL性能优化 日常开发写SQL的时候 尽量养成这个好习惯呀 写完SQL后
  • 牛客刷题错题(二)——测试知识

    1 风险暴露又称风险曝光度 测量的是资产的整个安全性风险 某公司软件团队计划项目中采用20个可复用的构件 每个构件平均是100LOC Line of Code 源代码行数 本地每个LOC的成本是150元人民币 下面是该团队定义的一个项目风险
  • 印象笔记出现感叹号无法同步

    印象笔记出现感叹号无法同步 打开ie浏览器试试 我估计应该是和安全证书有关系 勾选客户端验证 点击局域网设置 勾选自动检测设置
  • 【多模态】20、OVR-CNN

    文章目录 一 背景 二 方法 2 1 学习 视觉 语义 空间 2 2 学习开放词汇目标检测 三 效果 论文 Open Vocabulary Object Detection Using Captions 代码 https github co
  • Java学习——面向对象编程思想

    目录 一 基本概念 二 面向对象与面向过程的区别 三 面向对象程序设计的类与对象 3 1 对象 3 2 类 四 面向对象的四大特征 4 1 抽象 4 2 继承 4 3 封装 4 4 多态 1 实现多态性的三种方式 2 重载 3 重写 4 接
  • JS 作用域,闭包,this

    作用域 闭包 this 3 1 面试题 1 this 的不同应用场景 如何取值 2 手写 bind 函数 3 实际开发中闭包的应用场景 举例说明 4 程序题 打印输出 for var i 0 i lt 10 i 1 setTimeout g
  • IO复用之select、poll、epoll

    select poll epoll区别 select poll epoll https www cnblogs com aspirant p 9166944 html select poll epoll整理 https www cnblog
  • picgo配置错误的记录,提示StatusCodeError:403 -<?xml version=xxxxxxxx>

    1 配置的时候 总是提示StatusCodeError 403
  • 自动化Ansible常见命令

    举个例子备份Cisco交换机配置 查看CPU 占用率的统计信息 display cpu usage 查看内存的使用状态 display memory usage 查看电源的工作状态 display power 查看接口是否工作在正常状态 d
  • Git windows环境下的安装

    一 下载地址 https git scm com download win 下载符合自己系统的版本 二 安装 注意安装在英文无空格的路径下 点击下载好的文件 1 选择安装选项 默认就好 点击next 2 安装完成后桌面鼠标右键出现git选项
  • 使用Element-UI的DateTimePicker组件报错:Cannot read property 'getHours' of undefined

    在使用 Element UI 的 DateTimePicker 组件时报错 TypeError Cannot read property getHours of undefined 具体错误如下 TypeError Cannot read
  • Python: 删除已安装的模块或包 及 python工具pip的安装和使用

    Python 删除已安装的模块或包 modules or packages 王志 新浪博客 http blog sina com cn s blog 4ddef8f80102v1p8 html 方法一 使用pip 安装pip wget ht
  • MakeItTalk: 让图像开口说话!

    点击上方 机器学习与生成对抗网络 关注 星标 获取有趣 好玩的前沿干货 文自 机器之心 参与 魔王 未经授权 不得二次转载 不仅让真人图像开口说话 油画 素描 漫画等都能动起来 给出一张面部图像和一段音频 能做什么 AI 有办法 比如让图像