蚂蚁的牙是什么颜色的? ~ 黑色的! ~蚂蚁牙黑~  今年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" ]]; thenrm -rf v4l2loopback 2> /dev/nullgit clone https://github.com/alievk/v4l2loopback.gitecho "--- Installing v4l2loopback (sudo privelege required)"cd v4l2loopbackmake && sudo make installsudo depmod -acd ..
fisource $(conda info --base)/etc/profile.d/conda.sh
conda create -y -n $CONDA_ENV_NAME python=3.7
conda activate $CONDA_ENV_NAMEconda 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 fommpip 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.shecho "--- 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_NAMEconda 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 pytorchpip 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/K U/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 以上的显卡)

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

  1. java项目在linux环境中赋予新建文件777权限

    一.使用java file类的方法 1. setExecutable设置可执行权限 1) setExecutable(boolean executable) 查看源码: public boolean ...

  2. 理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术

    本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + Vx ...

  3. Linux环境中对海康威视工业相机SDK进行二次开发(QT+CMake+Opencv+海康SDK)

    关于在Windows环境中对海康威视工业相机SDK进行二次开发的话,可以参考这两篇博客. 海康威视工业相机SDK二次开发(VS+Opencv+QT+海康SDK+C++)(一) 海康威视工业相机SDK二 ...

  4. Java项目在Linux环境使用aspose把word转pdf乱码问题

    Java项目在Linux环境使用aspose把word转pdf乱码问题 一.问题 在项目中有word转pdf并展示的功能,在本地的windows环境下没有问题.但是放在Linux中部署运行,生成的pd ...

  5. linux环境中QT程序连接达梦数据库DM7简介

    linux环境中QT程序连接达梦数据库DM7简介 一.安装UnixODBC 1.下载UnixODBC安装包 下载地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixO ...

  6. python27怎么安装thrift解压包_Python在Linux环境中安装Thrift

    1.文件下载:thrift-0.11.0.tar.gz 个人网盘下载:链接:https://pan.baidu.com/s/1MXgx8LuN4wk7ssVUD9Wzaw  提取码:xw85 2. 将 ...

  7. linux qt 达梦,linux环境中QT程序连接达梦数据库DM7简介

    linux环境中QT程序连接达梦数据库DM7简介 一.安装UnixODBC 1.下载UnixODBC安装包 下载地址:ftp://ftp.unixodbc.org/pub/unixODBC/unixO ...

  8. Linux环境中Visual Studio Code的配置使用----编译运行C/C++(良心教程)

    之前的博文分享了下载安装[VS code]的详细教程, 有需要速戳–>Linux环境中Visual Studio Code 安装配置及其卸载(详细教程) 本篇博文分享本人初次使用[VS code ...

  9. Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)

    两篇相关博文: 在VMware15中创建虚拟机安装ubuntu系统(超详细教程) Linux环境编译运行C/C++语言程序----配置gcc.g++(详细教程) 此篇分享我在linux环境下安装VS ...

最新文章

  1. c#读取excel两列数据并绘制xy曲线_EXCEL绘制三Y轴图表
  2. Yahoo!网站性能最佳体验的34条黄金守则
  3. mysql delete删除列,在MySQL中删除我的Key列 (Delete my Key column in MySQL)
  4. VMware Workstation Pro 14.1.1 正式版
  5. Javascript 引擎工作机制(js层面梳理)
  6. ajax jquery php_基于Ajax jquery的使用php登录
  7. 在同一个类中调用另一个方法没有触发 Spring AOP 的问题
  8. C语言main函数的参数及其返回值详细解析
  9. idea 设置author 设置黑色主题
  10. java生成exe_java生成可执行文件的方法总结
  11. 使用Word制作签名电子版
  12. 卸载 mysql 2008_强力卸载SQL Server 2008图文详解
  13. java导出乱码_导出文件乱码问题处理(java)
  14. 耳鸣头晕是怎么回事?
  15. CVE-2020-5135:SonicOS缓冲区溢出漏洞通告
  16. [转载]别让用户发呆—设计中的防呆策略
  17. win10系统修改hosts文件无法保存
  18. 【Java 代码实例 13】Java操作pdf的工具类itext
  19. [Render] 适用于高级Unity创作者的通用渲染管线[4] - URP中的光照
  20. 存储卡、逻辑加密卡和CPU卡的相关知识

热门文章

  1. 盛大文学云中书城zz
  2. 强智教务JAVA/PHP模拟登录 密码JavaScript脚本encodeInp()加密算法破解
  3. 二级路由器设置,二级路由器无法上网
  4. 融云对接php,谈谈微信小程序中首次对接融云WebIM SDK经验
  5. 小程序商城制作一个需要多少钱
  6. hive大数据量实现分页查询,java结合mybatis及多数据源(hive、MySQL)
  7. Android 利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)
  8. Vijos1197 费解的开关 枚举+位运算
  9. qq2007服务器中断,自动重启pubwin2007服务器脚本
  10. MediaCodec之Decoder