基于PaddleGAN的First order motion

Code:GitHub - PaddlePaddle/PaddleGAN: PaddlePaddle GAN library, including lots of interesting applications like First-Order motion transfer, Wav2Lip, picture repair, image editing, photo2cartoon, image style transfer, GPEN, and so on.

 

First Order Motion model原理:

First Order Motion model的任务是image animation,给定一张源图片,给定一个驱动视频,生成一段视频,其中主角是源图片,动作是驱动视频中的动作,源图像通常包含一个主体,驱动视频包含一系列动作。

通俗来说,First Order Motion能够将给定的驱动视频中的人物A的动作迁移至给定的源图片中的人物B身上,生成全新的以人物B的脸演绎人物A的表情的视频。

以人脸表情迁移为例,给定一个源人物,给定一个驱动视频,可以生成一个视频,其中主体是源人物,视频中源人物的表情是由驱动视频中的表情所确定的。通常情况下,我们需要对源人物进行人脸关键点标注、进行表情迁移的模型训练。

只需要在同类别物体的数据集上进行训练即可,比如实现太极动作迁移就用太极视频数据集进行训练,想要达到表情迁移的效果就使用人脸视频数据集voxceleb进行训练。训练好后,使用对应的预训练模型就可以达到前言中实时image animation的操作。

简单的说,First Order Motion 能够通过自监督的方式学习到图像中的关键点。不需要先验地知道目标的一些信息,比如骨架等就可以实现动作迁移。

下载PaddleGAN代码:

1)从github上克隆PaddleGAN代码

git clone https://gitee.com/paddlepaddle/PaddleGAN

报错:fatal: Not a git repository

解决:git init

2)安装所需安装包

pip install -r requirements.txt
pip install imageio-ffmpeg

执行命令:

上传自己准备的视频和图片,并在如下命令中的source_image参数和driving_video参数分别换成自己的图片和视频路径,然后运行如下命令,就可以完成动作表情迁移,程序运行成功后,会在ouput文件夹生成名为result.mp4的视频文件,该文件即为动作迁移后的视频。本项目中提供了原始图片和驱动视频供展示使用。具体的各参数使用说明如下:

  • driving_video: 驱动视频,视频中人物的表情动作作为待迁移的对象
  • source_image: 原始图片,视频中人物的表情动作将迁移到该原始图片中的人物上
  • relative: 指示程序中使用视频和图片中人物关键点的相对坐标还是绝对坐标,建议使用相对坐标,若使用绝对坐标,会导致迁移后人物扭曲变形
  • adapt_scale: 根据关键点凸包自适应运动尺度
export PYTHONPATH=$PYTHONPATH:/workspace/yansy/PaddleGAN && python -u /workspace/yansy/PaddleGAN/applications/tools/first-order-demo.py  --driving_video /workspace/yansy/PaddleGAN/work/testv1.mp4  --source_image /workspace/yansy/PaddleGAN/work/xizi.png --relative --adapt_scale

使用moviepy为生成的视频加上音乐:

# add audio
!pip install moviepy

#为生成的视频加上音乐
from moviepy.editor import *

videoclip_1 = VideoFileClip("/home/aistudio/work/fullbody.MP4")
videoclip_2 = VideoFileClip("./output/result.mp4")
audio_1 = videoclip_1.audio
videoclip_3 = videoclip_2.set_audio(audio_1)
videoclip_3.write_videofile("./output/qiaoge.mp4", audio_codec="aac")
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值