化身阿凡达,国外小哥开源 AI 实时变脸工具 Avatarify
疫情期间,很多人都在用 Zoom 和 Skype 等软件进行视频会议。国外一位开发小哥觉得这样开会太无聊,于是基于 first-order-model 开发了一个能够把别人的照片套在自己脸上的“变脸”软件 Avatarify,并将其开源。
看过电影阿凡达(Avatar)的朋友应该对这款软件的立意并不陌生,简单理解就是把别人的脸套在自己的表情上实时驱动。Avatarify 的作者 Ali Aliev 最初只是想逗一下在 ZOOM 上开会的同事,在视频会议期间将一些名人的脸实时叠加到自己的脸上。于是他参考了发表在 arxiv 上的一篇论文 “First Order Motion Model for Image Animation”,并基于论文中的开源项目 first-order-model 构建了 Avatarify。如图所示,作者使用 Avatarify 模仿马斯克与同事进行视频会议:
与其他 AI 人脸交换技术(如 deepfakes)类似,Avatarify 的算法是在你想交换的脸上训练的,即训练材料是你想要模仿的人的脸部图像。该模型通过在目标的相似类别(比如人脸)上训练算法,实现了面部表情的实时呈现。但由于该软件对视频进行的是实时处理,即需要同时打开视频会议、Avatarify 等软件,因此对于 GPU 的要求比较高(作者用的是 1080 Ti,勉强达到 33 FPS)。
测试环境
- GPU :越强越好,以下是作者使用的不同显卡的帧数参考:
GeForce GTX 1080 Ti:每秒 33 帧
GeForce GTX 1070:每秒 15 帧
GeForce GTX 950:每秒 9 帧
可以看到 1080 Ti 才能勉强不掉帧,想玩的同学量力而行......
PS:也可以在 Google 的 Colab 上进行远程测试,用谷歌的硬件来跑,在国外的朋友可以试试。
- 摄像头一个
- 下载训练好的神经网络权值:
不同操作系统的朋友往下看:
Linux
使用v4l2loopback
创建虚拟摄像头
1.下载 Miniconda Python 3.7 ,运行安装命令:
bash Miniconda3-latest-Linux-x86_64.sh
2.克隆 avatarify 镜像仓库,并安装相关依赖项 (需要 sudo 权限):
git clone https://github.com/alievk/avatarify.git cd avatarify bash scripts/install.sh
3.把之前下好的网络权值文件vox-adv-cpk.pth.tar
放在 avatarify 的目录下 (注意不要解压)。
Windows 10
1. 安装 Miniconda Python 3.7 。
2. 安装 Git 。
3. 点击开始菜单,在运行中输入"miniconda". 根据提示运行 Anaconda Prompt 。
4. 输入以下指令下载并安装 Avatarify :
git clone https://github.com/alievk/avatarify.git cd avatarify scriptsinstall_windows.bat
5. 把之前下好的网络权值文件 vox-adv-cpk.pth.tar
放在 avatarify 的目录下 (注意不要解压)。
6. 运行 run_windows.bat
如果安装成功,桌面会打开两个摄像头界面(一个是默认摄像头,一个是 avatarify 摄像头),不要关闭它们进行下一步。
7. 安装 OBS Studio 以抓取 Avatarify 摄像头的内容(主播直播常用的后台软件)。
8. 安装 VirtualCam 插件. 选择 Install and register only 1 virtual camera
.
9. 运行 OBS Studio。
10. 点击来源一栏中的“+” —— 窗口捕获 —— 选择添加现有一栏中的 "[python.exe]: avatarify" —— 编辑 —— 转换 —— 自适应屏幕。
11. 在 OBS Studio 中, 点击工具栏 —— VirtualCam,选择自动启动,缓冲帧设置为 0,开始。
现在 OBS-Camera
可以在 ZOOM 或其他视频会议软件中使用了。(10-11 步只需要设置一次)
除了 Linux 和 Windows 10 以外,作者还提供了 Mac 操作系统和一种连入 Google 平台的远程测试方法,详情请点击。
创建 Avatar 库
作者在 Avatarify 项目中提供了一组名人的标准化身(爱因斯坦、蒙娜丽莎等),你也可以把其他你想变成的名人的图片素材放到 avatars 文件夹里,但注意要遵循以下规则:
1、人物图片最好为正方形。
2、参考文件夹里的默认图片,人物面部距离不宜太远或太近。
3、人物图片背景不宜太过复杂,单一色调为佳。
运行
先打开 Avatarify 再打开视频会议软件。
Linux
运行脚本指令创建虚拟摄像机 /dev/video9
,可在 scripts/settings.sh
修改对应配置。
可以运行指令 v4l2-ctl--list-devices
显示系统中的所有设备。
运行:
bash run.sh
弹出 cam
和 avatarify
窗口, cam
窗口用来控制面部位置, avatarify
窗口可以预览 Avatar。
Windows 10
- 在 Anaconda Prompt 中运行:
cd C:pathtoavatarify run_windows.bat
- 打开 OBS Studio,此时
OBS-Camera
上将显示 Avatarify 处理后的人物面部。 - 弹出
cam
和avatarify
窗口,cam
窗口用来控制面部位置,avatarify
窗口可以预览 Avatar。
注意:如果视频延迟过高,可以在 OBS Studio 中右键单击“预览”窗口,然后取消选中“启用预览”。
操作指令
按键 | 功能 |
1-9 | 快速切换准备好的 Avatar |
Q | 打开 StyleGAN 生成的 Avatar,每按下一次新的 Avatar 会被采样 |
0 | 开启/关闭 Avatar |
A/D | 切换上一个/下一个 Avatar |
W/S | 打开/关闭 ZOOM 摄像头 |
U/H/J/K | 调整摄像头位置, H - 左移, K - 右移, U - 上移, J - 下移 (每次移动 5 像素,与 Shift 键一起按移动 1 像素)。 |
Shift-Z | 重置摄像头位置 |
Z/C | 调整原像透明度 |
X | 重置参考帧 |
F | 切换参考帧搜索模式 |
R | Mirror reference window. |
T | Mirror output window. |
L | 重新载入 Avatar |
I | 显示 FPS |
ESC | 退出 |
Avatarify 支持任何视频会议应用程序,只要其中的视频输入源可以更改即可(ZOOM、Skype、Hangouts、Slack…)。聪明的朋友已经准备好了吴彦祖的 Avatar,开始和你的朋友视频吧。(当然,前提是你得有个 1080 Ti 以上的显卡)
Avatarify 详细介绍:点击查看
Avatarify 下载地址:点击下载
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
搞机器学习,Python和R哪个更合适?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! R和Python有着相同的编程特性,同时都是数据科学家常用的工具。在机器学习领域,大约有69%的开发者使用Python,另外24%的开发者使用R。这两种语言都是开源的,因此都是免费的。但是,Python是被设计成一种广泛适用的编程语言,但R是被用于统计分析。 人工智能和数学分析是开源工具创新的两大热门领域。Python和R都营造了很好的开源生态环境,这有利各个水平的数据科学家更有效地完成科学工作。 机器学习和数据分析之间的区别随着时间的推移都是相对变化,但是,其主要的区别是机器学习偏向模型解释,而数据分析侧重解释和事实推测。在不断增长的质疑声中,Python在机器学习领域获得了一席之地。R则作为一门用于事实推断和统计推断的语言在数据分析领域享有盛誉。 这并不意味着必须把这两个语言划分到不同的领域 ——python也足以被用来作为数据分析的工具,R也具备充分的适应性可以完成机器学习中的重要工作。这两种语言各自有大量的库试图去完成对方的功能。Python具有可以提升其显著推断能力的库,R也有...
- 下一篇
Gse v0.50.0 发布, Go 高性能分词,大幅度更新
Go 语言高效分词,支持英文、中文、日文等。 该版本主要增加:AlphaNum 拉丁字母和数字分词设置,RemoveToken,gse.New(),分词 ToLower 设置;Tirm 清除标点符号和空格,TextFreq 设置默认加载 frenquency,cutDAGNoHMM 和最短路径加动态规划配置,支持 ", " 分割字典文件等功能。 增加更多示例、测试和 benchmark 代码, 修复 bug。 项目地址:https://github.com/go-ego/gse Nisqually Glacier Add add alphanum split words support use variable to control default frequency add gse.New() function and update test code, add New() function AlphaNum set support add ToLower set support and update code add remove token support and test co...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能