MIT虚拟人AI-generated Characters

  • 一、项目简介
  • 二、原理简介
  • 三、代码实现
    • 1. 数据准备
    • 2. 函数定义
    • 3. 人物选择/上传
    • 4. 输入驱动选择/上传
    • 5. 视频生成

一、项目简介

麻省理工学院媒体实验室(MIT Media Lab)的研究人员开源了一个虚拟角色生成工具。该工具结合了面部、手势、语音和动作领域的人工智能模型,可用于创建各种音频和视频输出,一举登上《Nature Machine Intelligence》。

该项目主要用于音频或视频驱动视频,暂不支持文本驱动视频。主要用于医疗视频或其他视频通话时保护个人隐私视频驱动视频,使著名的历史或现代人栩栩如生。

项目地址:https://github.com/mitmedialab/AI-generated-characters

二、原理简介

  1. Character :可选择给定模板人物,也可自定义上传人物照片(单张图片)。
  2. Inputs:可录音,上传音频,以及上传视频。

首先使用 first-order-model 生成动态视频,然后通过 Wav2Lip 生成嘴型。

  • 若 Inputs 为音频,则调用案例视频驱动 Character 生成相应的动态视频,然后使用 inference.py 生成嘴型。
  • 若 Inputs 为视频,则使用该视频作为驱动生成动态视频,取出视频音轨再合并音视频。

三、代码实现

1. 数据准备

下载 first-order-model & Wav2Lip 以及人物图片。


2. 函数定义

  • 定义一些通用函数,比如选择/上传人物照片,记录/上传音频,上传视频,以及定义相关功能函数等。
  • 函数 animate_video 定义了,从 first-order-model 项目的 demo.py 文件里导入功能
    make_animation,将人物照片和驱动视频缩放至256x256,最后保存动态视频
    /content/vidvid.mp4(256x256,30fps)
def animate_video(img_filename, vid_filename):from demo import make_animationfrom demo import load_checkpoints# Resize image and video to 256x256source_image=resize(source_image, (256, 256))[..., :3]driving_video=[resize(frame, (256, 256))[..., :3] for frame in driving_video]# Make Animationpredictions=make_animation(source_image, driving_video, generator, kp_detector, relative=True,adapt_movement_scale=False)#save resulting videoimageio.mimsave('/content/vidvid.mp4', [img_as_ubyte(frame) for frame in predictions], fps=30)

3. 人物选择/上传

  • 选择模板人物或者自定义上传人物照片(单张图片)。
  • 模板人物:[“Van Gogh”, “Mona Lisa”, “Einstein”, “Lincoln”, “Nietzsche”, “Sokrates”]。
  • 自定义上传的人物图片必须宽高相等。

4. 输入驱动选择/上传

有三种方式输入驱动,分别是录音上传音频,和上传视频

5. 视频生成


首先使用 animate_video 生成动态视频。

  • 若前一步骤为音频输入,animate_video 所用的表情驱动为默认案例视频;
  • 若前一步骤为视频输入,animate_video 所用的表情驱动则为该视频。
video_driver = "/content/driving_video.mp4"

然后通过 Wav2Lip 生成嘴型。

  • 若前一步骤为音频输入,则用 inference.py 生成嘴型。
  • 若前一步骤为视频输入,则先取出视频音轨再合并音视频。

参考资料
https://news.mit.edu/2021/ai-generated-characters-for-good-1216
https://www.nature.com/articles/s42256-021-00417-9
https://www.media.mit.edu/articles/characters-for-good-created-by-artificial-intelligence/

MIT开源最强虚拟人生成器相关推荐

  1. DIY最美数字女友!MIT开源最强虚拟人生成器,登Nature子刊

      视学算法报道   编辑:小咸鱼 [新智元导读]麻省理工学院媒体实验室(MIT Media Lab)的研究人员开源了一个虚拟角色生成工具.该工具结合了面部.手势.语音和动作领域的人工智能模型,可用于 ...

  2. 重磅MIT开源人工智能算法评估和理解对抗Logit配对的稳健性

    重磅MIT开源人工智能算法评估和理解对抗Logit配对的稳健性摘要:我们评估了对抗性Logit Pairing的稳健性,这是最近针对广告范例提出的防御措施. 我们发现,使用Adversarial Lo ...

  3. 强密码生成器的设计与实现

    目 录 摘 要 I Abstract II 1绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.3研究主要内容 2 1.3.1题目要求 2 1.3.2本设计主要硬件功能部分 2 1.3 ...

  4. GPL协议与MIT开源协议的异同

     GPL协议(GNU通用公共许可证)和MIT开源协议都是开源软件许可证 要说异同,有以下几点: 相同点: 1. 都是开源协议,授权使用.修改.分发和再发布软件. 2. 要求使用协议的用户保留原有许可证 ...

  5. MIT 开源协议是什么意思?底层原理是什么?

    MIT开源协议是一种宽松的开源许可证,允许软件在保留版权和许可证声明的前提下,免费使用.复制.修改.合并.出版.分发.再授权和销售等.该许可证适用于几乎所有类型的软件,包括商业软件和专有软件. 该协议 ...

  6. VISTA -MIT开源基于数据驱动的自动驾驶仿真引擎

    引言 VISTA 是MIT开源的一个基于数据驱动的用于自动驾驶感知和控制的仿真引擎.VISTA API提供了一个接口,用于将真实世界的数据集转换为具有dynamic agents.sensor sui ...

  7. 密码学安全强随机数生成器_强密码学简介

    密码学安全强随机数生成器 让我惊讶的一件事是,大多数开发人员都不熟悉强大的加密技术. 在我的职业生涯中,我已经看到过各种各样的错误,这些错误会导致数据泄漏,可猜测的密码,不幸的泄露甚至更糟. 令人高兴 ...

  8. MIT开源协议,多端适用的租房小程序,带完整的管理员后台

    一.开源项目简介 多端适用的租房小程序,带管理员后台.是一个完整的项目,可以直接使用. 二.开源协议 使用MIT开源协议 三.界面展示 部分截图 1. 前台截图 2. 后台截图 四.功能概述 1.使用 ...

  9. 时钟回拨问题咋解决?百度开源的唯一ID生成器UidGenerator

    时钟回拨问题咋解决?百度开源的唯一ID生成器UidGenerator 参考文章: (1)时钟回拨问题咋解决?百度开源的唯一ID生成器UidGenerator (2)https://www.cnblog ...

最新文章

  1. 计算机视觉组队学习预告!提前进群
  2. 新浪微博客户端(53)-记录用户最近点击表情
  3. 编程:利用杨辉三角形原理来计算组合数
  4. android dumpsys 分析,Android开发调试性能分析工具:dumpsys
  5. Ymordem学习使用
  6. 输入某年某月某日,判断这一天是这一年的第几天?(使用python语言)
  7. Linux与时间相关的结构体及相关用法
  8. simplis汉化包_Simtrix.simplis仿真_中文教程
  9. Web1.0、Web2.0、Web3.0、Web4.0、Web5.0、Web6.0
  10. 一步一步 ITextSharp Anchor Image Chapter Section使用
  11. ALSA ASOC
  12. 电脑录音软件的技术原理
  13. 手写minist的DataLoader
  14. 中兴电视盒子破解记录
  15. 让信息带钩的六种武器——《让创意更有黏性》优秀读后感4300字
  16. R语言机器学习xgboost实例,油管上的关于xgboost的例子
  17. python中timeout什么意思_Python爬虫(五)timeout以及retrying的使用
  18. 修复文件关联-EXE文件关联被修改后所有应用程序都打不开
  19. 折半查找的实现 swustoj
  20. Docker swarm搭建及常用命令、yml文件

热门文章

  1. 一个RtspServer的设计与实现和RTSP2.0简介
  2. 使用git建立本地仓储管理代码
  3. 配色基本原理的学习笔记
  4. HTML 模仿百度首页 (html+css)
  5. dumpbin是什么意思_写给java程序员的c++与java实现的一些重要细微差别-附完整版pdf学习手册...
  6. 我的企业版本WIN10快捷键
  7. 15K左右的Java常见面试题(无答案)
  8. 一个实习生的面试简历
  9. 最大公共子串-动态规划
  10. Python Web 深度学习实用指南:第三部分