Avatarify-人脸驱动项目在Linux环境中的实现

蚂蚁的牙是什么颜色的? ~ 黑色的! ~蚂蚁牙黑~  今年2月,“蚂蚁牙黑”一夜之间风靡各大社交平台,我们看到的视频都是通过手机软件Avatarify制作的,今天来聊一聊Github上Avatarify项目的落地。在动手实现这个项目之前,了解了一下项目环境配置过程,发现很多分享贴都是在Windows环境中实现,所以今天特地在Linux环境中实现。当然,作为shell命令的小白,在项目复现的过程中走了不少弯路,写下这篇博客,记录一下项目复现中的注意事项。

 首先贴出项目的GitHub链接:GitHub - alievk/avatarify-python: Avatars for Zoom, Skype and other video-conferencing apps.

此项目可以在Linux, Mac和 Windows平台下运行,作者在README.md 中详细给出了配置步骤。由于在环境配置的过程中,还涉及到模型权重、虚拟摄像机、一阶运动模型等的下载,所以需要为这个项目留出3G的空间。

一、项目和相关依赖的下载:

1. 下载Minaconda(Anaconda也可以)

因为install.sh文件中要创建的Python环境是3.7版本的,所以我们选择下载Python-3.7对应的Miniconda,下载地址:Miniconda — Conda documentation

我们选择第一个下载,下载好的Miniconda是一个名为.sh的文件。接下来,我们通过bash命令来安装下载好的Miniconda。

bash Miniconda3-latest-Linux-x86_64.sh

我们下载的Miniconda文件名为 :Miniconda-py37_4.10.3-Linux-x86_64.sh,所以我们在终端中需要输入的命令是:

bash Miniconda-py37_4.10.3-Linux-x86_64.sh

Miniconda的安装过程只需要一路回车就可以,如果想要自己设置安装路径,可以自行百度。

2. 克隆avatarify-python项目并安装该项目的依赖项

项目克隆可以去GitHub网站上手动下载,亦可以通过终端命令来下载;

git clone https://github.com/alievk/avatarify-python.git
cd avatarify-python
bash scripts/install.sh

这里需要强调几点,首先我们先看一下install.sh文件里的内容:

#!/usr/bin/env bash

# check prerequisites
command -v conda >/dev/null 2>&1 || { echo >&2 "conda not found. Please refer to the README and install Miniconda."; exit 1; }
command -v git >/dev/null 2>&1 || { echo >&2 "git not found. Please refer to the README and install Git."; exit 1; }

source scripts/settings.sh

# v4l2loopback
if [[ ! $@ =~ "no-vcam" ]]; then
    rm -rf v4l2loopback 2> /dev/null
    git clone https://github.com/alievk/v4l2loopback.git
    echo "--- Installing v4l2loopback (sudo privelege required)"
    cd v4l2loopback
    make && sudo make install
    sudo depmod -a
    cd ..
fi

source $(conda info --base)/etc/profile.d/conda.sh
conda create -y -n $CONDA_ENV_NAME python=3.7
conda activate $CONDA_ENV_NAME

conda install -y numpy==1.19.0 scikit-image python-blosc==1.7.0 -c conda-forge
conda install -y pytorch==1.7.1 torchvision cudatoolkit=11.0 -c pytorch

# fomm
rm -rf fomm 2> /dev/null
git clone https://github.com/alievk/first-order-model.git fomm

pip install -r requirements.txt

在执行install.sh过程中,我们需要下载两个文件夹:v4l2loopback和fomm。其中,v4l2loopback是虚拟摄像机,利用摄像机就可以播放摄像机本身存储的视频;fomm(first-order-model-master)是一阶运动模型。GitHub网站在国内只是间歇性有响应,如果只通过bash scripts/install.sh这一条命令就像下载好所有依赖,需要进行多次尝试,而且中间有很长的等待时间,为了使项目运行的更顺畅,我们换另外一种办法:

(1).下载 v4l2loopback-master和first-order-model-master文件夹并解压;

(2). 将v4l2loopback-master文件夹重命名为v4l2loopback;

(3). 将first-order-model-master文件夹重命名为fomm;

(4). 将v4l2loopback和fomm文件夹移动到avatarify-python文件下;

3.  下载驱动模型权重:vox-adv-cpk.pth.tar

下载好的压缩包不需要解压,同样将其移动到avatarify-python文件夹中。至此,所有的东西已经下载完毕,avatarify-python文件夹中的内容见下图:

 所有的依赖下载完成后,我们只需要激活conda,创建Python环境,下载conda和Python依赖的包,我们的install.sh文件就可以修改为如下代码段展示的形式:

#!/usr/bin/env bash

# check prerequisites
command -v conda >/dev/null 2>&1 || { echo >&2 "conda not found. Please refer to the README and install Miniconda."; exit 1; }
command -v git >/dev/null 2>&1 || { echo >&2 "git not found. Please refer to the README and install Git."; exit 1; }

source scripts/settings.sh

echo "--- Installing v4l2loopback (sudo privelege required)"
cd v4l2loopback
make && sudo make install
sudo depmod -a
cd ..

source $(conda info --base)/etc/profile.d/conda.sh
conda create -y -n $CONDA_ENV_NAME python=3.7
conda activate $CONDA_ENV_NAME

conda install -y numpy==1.19.0 scikit-image python-blosc==1.7.0 -c conda-forge
conda install -y pytorch==1.7.1 torchvision cudatoolkit=11.0 -c pytorch

pip install -r requirements.txt

4. 测试环境,下载conda和Python依赖的包

我们来到avatarify-python文件夹下,打开终端,键入如下命令:

bash scripts/install.sh

等所有的包下载完毕,我们就可以运行该项目,不要关闭终端

二、运行

1. 项目的首次运行(下载依赖的终端从未关闭过):

在下载好所有环境依赖的终端中,键入如下代码:

bash run.sh

项目开始运行后,首先会弹出cam窗口,按下键盘上的数字“0”后,弹出avatarify窗口,会发现,此时,cam和avatarify窗口中都是摄像机记录的人脸,要想驱动avatars文件夹中的人脸,我们需要按“X”,之后,数字1-9可以切换目标人脸。avatarify在avatars文件夹中已经自带了一套名人头像,有爱因斯坦、艾米纳姆、蒙娜丽莎等等。如果这些人还无法满足你的要求,就去网上再找一个名人大头照放进avatars文件夹里。

 操作指令

按键功能
1-9快速切换好准备好的avatar
Q打开styleGAN生成的avatar,每按下一次采样新的avatar
0开启/关闭avatar
A/D切换上一个/下一个avatar
W/S打开/关闭ZOOM摄像头
U/J/H/KU/J-上/下,H/K-左/右(每次移动5像素,与shift一起按移动1像素)
shift+Z充值摄像头位置
Z/C调整原透明度
X重置参考帧
F切换参考帧搜索模式
R镜像参考窗口
T镜像输出窗口
L重新载入avatar
I显示FPS
ESC退出

2. 再次运行avatarify项目:

在第一次运行完后,我们运行人脸驱动项目需要的所有依赖都已经安装完成,之后再运行人脸驱动项目,我们就无需按照README.md的指示操作了,所以运行指令可以精简为:

cd avatarify-python
source scripts/settings.sh
source $(conda info --base)/etc/profile.d/conda.sh
conda activate $CONDA_ENV_NAME
bash run.sh

avatarify 支持任何视频会议应用程序,只要其中的视频输入源可以更改即可(ZOOM、Skype、Hangouts、Slack…)。(当然,前提是你得有个 1080 Ti 以上的显卡)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值