如何进行AI换脸,AI换脸从 “0“ 到 “1” 详细教程 ——从配置环境开始
后续文章读起来可能会影响观看可以前往鄙人博客查看:http://www.anyuer.club/?id=199
前言:
本人吃计算机这口饭的,说实话AI换脸很火的时候自己却没碰,挺吃亏的,最近时间比较充裕,整理了一下AI换脸的一个简单的流程,从 “0” 到 “1” 开始吧
1.环境
win10
64位
NVDRTX 3060
2.打开GPU图形设置
win10设置打开搜索——图形设置
3.环境配置
本AI换脸采用的GAN(计算机生成对抗网络),其中比较优秀的开源工具有 DeepFace (本文采用)
DeepFace :https://github.com/iperov/DeepFaceLab
windows环境下提供两个下载地址,大家可以按照自己的配置按需下载(均需要翻墙):
mega :https://mega.nz/folder/Po0nGQrA#dbbttiNWojCt8jzD4xYaPw
yandex : https://disk.yandex.ru/d/7i5XTKIKVg5UUg
当然了,如果你翻不起墙或者不方便,我这边提供一个RTX 3060的版本
链接:https://pan.baidu.com/s/14dOUh0iaONHHK3jyXtIRbw?pwd=yuer
提取码:yuer
4.安装工具环境
下载完成以后即为如此一个应用程序,直接双击打开
选择好了路径,直接extract即可,之后好像没啥了,如果有啥一路点确认即可
5.识别项目结构
我们要做的事情很简单,从一个001.mp4里面提取面部,再把提取出来的脸替换到002.mp4里面去,我们把001.MP4取名为源视频,002.MP4取名为目标视频
—DeepFaceLab_NVIDIA_RTX3000_series
--------_internal
--------workspace #工作路径
----------------data_dst #目标视频图片存储路径——后面会讲到
----------------data_src #源视频图片存储路径——后面会讲到
----------------model #模型保存——后面会讲到
----------------data_dst.mp4 #如上文002.MP4
----------------data_src.mp4 #如上文001.MP4
--------(.*).bat
6.所做事情大概是干什么
从源视频抽帧——把视频一帧一帧换成图片
从抽出来的图片里面提取出面部信息
从目标视频抽帧——把视频一帧一帧换成图片
从目标视频抽出来的帧提取面部信息
利用算法进行训练比如GAN(计算机生成对抗网络等等)
训练完成以后生成面部图片
生成出来的面部进行替换,生成N张图片
把图片合起来,即为生成的视频
还是很空洞,没关系实操一遍就好很简单!
6.2) extract images from video data_src.bat
强调一下是从 2)开始的,大家不用去运行第一个,后面会讲!
运行bat脚本——2) extract images from video data_src.bat
Enter FPS (?:help):
这是让你输入FPS,好像是帧数,如果记不起来可以像我一样,啥都不输入,直接留白,然后回车就会有默认值 0
Output image format (png /jpg ?:help) :
这个是抽帧,看你抽成png 还是 jpg ,你可以输入,但也可以像我一样,留白,啥都不输入,回车也会有默认值png
所以事情处理完成以后就会出现Done的字样,这个时候再点击关闭就好了
进入文件夹worksho–>data_src 会有很多图像,对!没有错,就是抽出来的人脸
6.3) extract images from video data_dst FULL FPS.bat
运行脚本——3) extract images from video data_dst FULL FPS.bat
Output image format ( png/jpg ?:help ) :
这个很简单,直接输入刚才选择的类型即可,如果你完全按照我的操作来的,这里直接留白输入回车即可
同样出现了done的字样即为完成
进入文件夹worksho–>data_dst 也会有很多图像
6.4) data_src faceset extract.bat
运行脚本——4) data_src faceset extract.bat
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
默认留白,输入回车即可
[wf] Face type ( f/wf/head ?:help ) :
默认留白,输入回车即可
[0] Max number of faces from image ( ?:help ) :
默认留白,输入回车即可
[512] Image size ( 256-2048 ?:help ) :
默认留白,输入回车即可
[90] Jpeg quality ( 1-100 ?:help ) :
默认留白,输入回车即可
[n] Write debug images to aligned_debug? ( y/n ) :
默认留白,输入回车即可
655和654是人脸图片数量
6.5) data_dst faceset extract.bat
运行脚本——5) data_dst faceset extract.bat
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
默认留白,输入回车即可
[wf] Face type ( f/wf/head ?:help ) :
默认留白,输入回车即可
[512] Image size ( 256-2048 ?:help ) :
默认留白,输入回车即可
[90] Jpeg quality ( 1-100 ?:help ) :
默认留白,输入回车即可
出现done就完成了
和上一步非常相似,但是如果你进入到
workspace\data_dst\aligned_debug看图片就会看到一些比较新鲜的图片——很明显把人脸突出强调了对吧
6.6) train Quick96.bat
运行脚本——6) train Quick96.bat
deepface采用了不少的训练模式,这种就是相对来说不那么吃配置,见效稍微快一点的
Running trainer.
[new] No saved models found. Enter a name of a new model :
这里取个名字,建议取个简单的,主要是自己用来区分,我取名为 yuer 回车输入了
Running trainer.
[new] No saved models found. Enter a name of a new model : yuer
yuer
Model first run.
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
默认留白,输入回车即可
当它运行到一定程度以后
会出现一个新的小窗口,这窗口就是在不停的利用GAN进行训练
这里就是生成图片的预览啦,点击这个窗口,按P可以刷新
上面有介绍,但是我也看不懂了看了个大概
s:保存生成的预览图片
p:刷新生成的预览图片
enter:退出模型训练
训练了大概三分钟,这个效果还是相对来说不错的
这个时候可以按enter 退出了
退出以后cmd窗口也会出现done
6.7) merge Quick96.bat
运行脚本——7) merge Quick96.bat
这次看脚本名字就知道,生成 快速96 ,很明显这次是要生成点图片了。就是将训练的图片换过去,生成新图片
Running merger.
Choose one of saved models, or enter a name to create a new model.
[r] : rename
[d] : delete
[0] : yuer - latest
:
这里可能你出现的不是yuer,因为名字是自定义的,但是latest告诉你的是上一次的训练模型,也就是quick96
可以直接回车,也可以输入0,因为0是默认值
Running merger.
Choose one of saved models, or enter a name to create a new model.
[r] : rename
[d] : delete
[0] : yuer - latest
:
0
Loading yuer_Quick96 model…
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
默认留白,输入回车即可
Running merger.
Choose one of saved models, or enter a name to create a new model.
[r] : rename
[d] : delete
[0] : yuer - latest
:
0
Loading yuer_Quick96 model…
Choose one or several GPU idxs (separated by comma).
[CPU] : CPU
[0] : NVIDIA GeForce RTX 3060 Laptop GPU
[0] Which GPU indexes to choose? :
0
Initializing models: 100%|###############################################################| 4/4 [00:00<00:00, 8.87it/s]
====================== Model Summary ======================
== ==
== Model name: yuer_Quick96 ==
== ==
== Current iteration: 734 ==
== ==
-------------------- Model Options --------------------
== ==
== batch_size: 4 ==
== ==
--------------------- Running On ----------------------
== ==
== Device index: 0 ==
== Name: NVIDIA GeForce RTX 3060 Laptop GPU ==
== VRAM: 3.41GB ==
== ==
[y] Use interactive merger? ( y/n ) :
切记,这里输入 n,虽然输入y也可以,但是我不会
[y] Use interactive merger? ( y/n ) : n
Choose mode:
(0) original
(1) overlay
(2) hist-match
(3) seamless
(4) seamless-hist-match
(5) raw-rgb
(6) raw-predict
[1] :
默认留白,输入回车即可
Choose mask mode:
(0) full
(1) dst
(2) learned-prd
(3) learned-dst
(4) learned-prdlearned-dst
(5) learned-prd+learned-dst
(6) XSeg-prd
(7) XSeg-dst
(8) XSeg-prdXSeg-dst
(9) learned-prdlearned-dstXSeg-prd*XSeg-dst
[1] :
默认留白,输入回车即可
[0] Choose erode mask modifier ( -400…400 ) :
默认留白,输入回车即可
[0] Choose blur mask modifier ( 0…400 ) :
默认留白,输入回车即可
[0] Choose motion blur power ( 0…100 ) :
默认留白,输入回车即可
[0] Choose output face scale modifier ( -50…50 ) :
默认留白,输入回车即可
Color transfer to predicted face ( rct/lct/mkl/mkl-m/idt/idt-m/sot-m/mix-m ) :
默认留白,输入回车即可
Choose sharpen mode:
(0) None
(1) box
(2) gaussian
[0] ( ?:help ) :
默认留白,输入回车即可
[0] Choose super resolution power ( 0…100 ?:help ) :
默认留白,输入回车即可
[0] Choose image degrade by denoise power ( 0…500 ) :
默认留白,输入回车即可
[0] Choose image degrade by bicubic rescale power ( 0…100 ) :
默认留白,输入回车即可
[0] Degrade color power of final image ( 0…100 ) :
默认留白,输入回车即可
[16] Number of workers? ( 1-16 ?:help ) :
默认留白,输入回车即可
6.8) merged to mp4.bat
运行脚本——8) merged to mp4.bat
最后一步生成视频,把刚才的图片合并成视频
[16] Bitrate of output file in MB/s :
默认留白,输入回车即可
出现done以后
7.查看生成的视频
workspace文件夹下的result.MP4就是生成的视频文件
因为我是为了写博客,所以训练的时间不够长生成出来的视频效果不太好,大家训练的时候,训练个三五天,生成出来的视频杠杠好!
8.一些细节
- clear workspace.bat——该脚本是用来清理掉之前已经建立的模型,和 workspace 文件夹下面的 data_src 和 data_dst文件夹的所有内容的
如果你在6.7)卡着很久都不动
Use interactive merger? ( y/n ) :
这里你不输入n,输入y
[16] Number of workers? ( 1-16 ?:help ) :
留白回车
等到程序输出完以下信息后
会出现这个窗口
按一下Tab,会出现以下预览,这个时候,再Tab回去关闭窗口,cmd控制台窗口也关,再重新运行6.7)脚本,输入n就好了
如何进行AI换脸,AI换脸从 “0“ 到 “1” 详细教程 ——从配置环境开始相关推荐
- mysql8.0windows,Windows下mysql 8.0.12 安装详细教程
本文为大家分享了mysql 8.0.12 安装详细教程,供大家参考,具体内容如下 一.安装 1.从官网上下载MySQL8.0.12版本,下载链接 2.下载后解压到一个文件夹下 我的解压路径:C:\Pr ...
- redhat7 32位mysql_Redhat7.3安装MySQL8.0.22的详细教程(二进制安装)
一.MySQL安装包下载 官网地址:https://dev.mysql.com/downloads/mysql/ 下载步骤: 过滤操作系统版本 选择归档安装包 下载后,上传并md5校验安装包是否与上图 ...
- 360天擎卸载密码_Windows安装和完全卸载MySQL8.0(超详细教程)
前言 MySQL8相比之前版本改动还是挺大的,因为刚从安装接触,就先从基本的说起.现在的mysql8安装只能采用解压配置版,像以前老版本的傻瓜式安装将不复存在. 注意点 MySQL8之后并不需要my. ...
- AI—漂亮的花简单制作(含详细教程)
暑假在家刷短视频???不!不!不!球球,别别别!平面制作搞起来!跟数媒小可爱学炒鸡有意思的AI吧! 今天带来的是一朵漂亮的花-->(效果图入下) 步骤一.用"星形"工具--& ...
- mysql8.0 linux安装自启动_Linux系统安装部署MySQL8.0.12特详细教程
第一篇文章要详细讲解下Linux系统下安装新版MySQL8.0.12教程,我的系统是Centos7: 1.首先下载MySQL8.0.12软件包 方法一.直接下载到Linux系统: 8.0版本:wget ...
- 联想平板android版本升级,联想乐Pad A1平板安卓4.0升级操作详细教程
[天极网平板频道]你还记得乐PadA1千元普及风暴时的震撼感受吗?在这个夏天千元乐Pad A1一跃升级为安卓4.0系统,在这个炎炎夏天成功吃上冰激凌,给那些小乐粉丝们带来惊喜.联想乐Pad A1拥有7 ...
- MySQL8.0.27安装详细教程与安装失败原因解析
本来向分享一下数据库学习和性能优化的一些经验的,后来想了想,还是先分享一下MySQL的基本安装和新手安装时会遇到的一些常见问题吧.言归正传,下面开始了. 下载安装包 首先第一步当然是,官网下载,下载网 ...
- 2022 MySQL8.0.29安装详细教程(妈妈级)
目录 前言: 一.下载安装包地址 MySql Community(社区版):MySQL :: MySQL Community Downloads(这里我选的是社区版,社区版是免费的,基本满足简单的日常 ...
- 华为云物联网平台微信小程序开发教程2.0【完整详细教程】
一.简介 在之前曾发布过一篇文章"华为云物联网平台的微信小程序开发",在最近接到部分用户私信在使用开发过程中出现的问题,例如API访问的"401"现象等问题 ...
最新文章
- html 在weblogic 上编译报错,HTTL在weblogic环境下,JDK版本1.7情况下。出现编译错误。...
- python从入门到精通书籍推荐-清华大学出版社-图书详情-《Python从入门到精通》...
- CentOS 生成SSH-KEY
- Bitcoin 中的挖矿算法(1) 难度值前奏
- 如何执行超过一百兆(100MB)的sql脚本?
- Tomcat、JBOSS、WebSphere、WebLogic、Apache之间的区别
- 【OPTEE开发】从TA到安全驱动的功能设计
- Docker学习与总结
- VScode加文件头的方式
- 需求分析报告应该包含哪些部分_一份数据分析报告所需要的内容以及注意事项...
- oracle的dbv命令,Oracle的DBV命令行工具用法详解
- 计算机发展史的第五个阶段,信息技术的发展历程是怎样的? 信息技术的发展历程分五个阶段...
- 爬虫--爬取人人网案列(一)
- VerilogHDL正弦信号发生器
- css--打字机效果
- 补码/反码、零扩展和符号位扩展(Zero extension and Sign extension)
- 《仿美团》项目研发总结
- Soundiron Bontastic Vintage Italian Chord Organ 复古意大利和弦风琴
- 微信小程序兼容手机底部横条适配
- 特征工程和数据预处理常用工具和方法