一、项目简介

麻省理工学院媒体实验室(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_animation
   from demo import load_checkpoints
   # Resize image and video to 256x256
   source_image=resize(source_image, (256, 256))[..., :3]
   driving_video=[resize(frame, (256, 256))[..., :3] for frame in driving_video]
   # Make Animation
   predictions=make_animation(source_image, driving_video, generator, kp_detector, relative=True,adapt_movement_scale=False)
   #save resulting video
   imageio.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/

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐