当前位置: 首页 > article >正文

[PaddleGAN]人脸表情迁移-视频换脸

背景

  最近和朋友聊天,突然聊到了视频编辑的换脸功能,对此功能进行了调研,通过分析,最终选择Paddle飞浆的PaddleGAN的 “First Order Motion” 进行视频换脸功能。

环境配置

  废话不多说,直接写出来对应的命令,如下所示

python -m pip install paddlepaddle-gpu==2.1.3.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.htmlpip install opencv_python-4.6.0.66-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl python3 -m pip install --upgrade ppgan==2.0.0unzip PaddleGAN-release-2.0.zipcd PaddleGAN-release-2.0/applications/python -u tools/first-order-demo.py       --driving_video ../docs/imgs/fom_dv.mp4      --source_image ../docs/imgs/fom_source_image.png      --ratio 0.4      --relative --adapt_scalepip install 'protobuf~=3.19.0'python -u tools/first-order-demo.py       --driving_video ../docs/imgs/fom_dv.mp4      --source_image ../docs/imgs/fom_source_image.png      --ratio 0.4      --relative --adapt_scale

环境配置解释

GPU环境

  本人租用了一台云服务器:GPU NVIDIA RTX A2000 显卡内存12 GB,预装:Python 3.7, CUDA 11.2, cuDNN 8.0.5, Ubuntu 18.04, VNC, Numba

PaddleGAN

  最开始选择 ppgan 的最新2.1版本,但是遇到了 init() got an unexpected keyword argument ‘slice_size’ 问题,所以最终切换到 ppgan==2.0.0 版本。

PaddlePaddle

  根据PaddleGAN官方的安装文档,环境依赖中 PaddlePaddle >= 2.1.0,这里直接选择最低的 2.1.0 版本,
并根据PaddlePaddle的官方安装文档进行安装,注意这里
需要先查看GPU的环境配置,执行命令 nvidia-smi 后选择合适的 CUDA 版本对应的 PaddlePaddle 安装命令。

opencv_python

  本人在安装PaddleGAN的过程中,发现 opencv-python 执行时间会很长,所以直接在清华镜像选择对应的 whl 进行单独下载安装。

Downgrade the protobuf package to 3.20.x or lower.

  在执行 tools/first-order-demo.py 命令的过程中,会提示 protobuf 的版本问题,所以对 protobuf 进行版本降级,命令如上所示。

截图

1、 云服务器GPU环境nvidia-smi,图片无法正常查看的话, 访问
ppgan-nvidia-smi.png

2、 protobuf 错误提示,访问
ppgan-protobuf-error.png

3、 first-order-demo.py 执行,访问
ppgan-run.png

总结

  命令执行完毕后,视频文件将存储至 /PaddleGAN-release-2.0/applications/output/result.mp4 ,可以对生成的视频进行查看。

参考链接

  1. https://github.com/PaddlePaddle/PaddleGAN/issues/788
  2. https://github.com/PaddlePaddle/PaddleGAN/blob/release/2.0/docs/zh_CN/tutorials/motion_driving.md
  3. https://www.paddlepaddle.org.cn/install/old?docurl=/documentation/docs/zh/install/pip/linux-pip.html#old-version-anchor-33-Linux%20%E5%AE%89%E8%A3%85
  4. https://pap-docs.pap.net.cn/
http://www.lryc.cn/news/2416409.html

相关文章:

  • Android逆向之旅---破解一款永久免费网络访问工具
  • 关于同步电机的Ldq测量
  • 域名系统(Domain Name System,DNS)
  • 安奈特智能技术-半导体制造行业RFID解决方案
  • folsom版本horizon架构剖析
  • 分享35款最新出炉的免费个人博客模板
  • java中的强引用(Strong reference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference)
  • session.setAttribute和request.setAttribute的区别
  • 白盒模型和黑盒模型
  • RT-Thread : IEEE1588/PTP 协议的实现
  • 二、Linux开发中常用到的命令
  • C#学习教程14——进程与线程
  • centos7无界面系统物理机安装教程超详细完整教程图解
  • 100款绿色重量级软件
  • 正则表达式匹配和替换
  • Turbo C安装与配置
  • STIL和WGL的例子文件
  • 清华紫光输入法linux,清华紫光拼音输入法
  • Pycharm、Vscode设置美女背景【内附20张高清图片】
  • Android开发知识(十)快速接入高德地图SDK(地图+定位+标记+路线规划+搜索)
  • java 调用webservice的各种方法总结
  • Android activity-alias 的用法解析
  • java.lang.String--String常用方法介绍
  • android中setBackgroundColor()中不能设置背景颜色的问题
  • mentohust找不到服务器 重启认证,mentohust官方使用说明(全+转)
  • TranslateMessage()函数
  • Java课程设计:Servlet+JSP+MySql 实现的图书管理系统(内附源码)
  • C语言—scanf函数的详解(上)
  • 函数的调用及作用域D08
  • 【计算机网络】计算机网络的体系结构