Deepfacelab 小白教程

不小心入了AI换脸的坑,但是感觉AI换脸很有意思,第一次感觉科研使我快乐。

目录

一、AI换脸软件简介

二、Deepfacelab下载安装

三、Deepfacelab Demo实现

四、Deepfacelab 填坑

五、总结


一、AI换脸软件简介

这个没有具体使用过,目前我只使用过Deepfacelab,但是查看各种资料都是说Deepfacelab综合来说是最好用的,可玩度也很高,最重要的是deepfacelab对部署环境没有要求,这个就完全满足我这样的懒人了。。。

下述表格转载于大神博主,其链接为https://blog.csdn.net/u014575897/article/details/85272910。

二、Deepfacelab下载安装

Github源码地址:https://github.com/iperov/DeepFaceLab

预编译好的Windows版本:https://mega.nz/#F!b9MzCK4B!zEAG9txu7uaRUjXz9PtBqg(需要科学上网)

所需环境:windows系统即可,需要强力版本的显卡,毕竟AI就是个又氪又肝的玩意。。。

下载好之后,直接解压就可以了,解压完了一般是如下界面(DeepFaceLabCUDA10.1AVX版本)。

Demo实现之前先学习下解压目录下的各种bat文件的功能(实现将A视频中的人脸替换为B视频中的人脸,下文中都是以A和B来表示):

1)是清空workspace文件夹的,包括切的图片和人脸、模型文件等等。。。

2)和3)都是将视频文件转换为一帧一帧的图像;

4)和 4.X)是将SRC视频文件(即待替换的视频B)的人脸识别出来和进行排序;

5)和 5.X)是将DST视频文件(即待替换的视频A)的人脸识别出来和进行排序;

6)是进行训练;

7)人脸替换(即将分离出来的图片先进行人脸替换);

8)将人脸替换后的图片合成视频;

9)和10)待定。。。

三、Deepfacelab Demo实现

源程序中自带Demo的视频素材,可以直接进行Demo实现。

打开workspace,发现里面有两个视频,分别是data_dst和data_src,对应于上述的A和B,这就是自带的素材。

1.视频解压,双击bat文件中的2) extract images from video data_src3.2) extract images from video data_dst FULL FPS;

功能:你会发现workspace中的data_dst和data_src两个文件夹中有分割好的图像文件;

2.人脸提取,双击bat文件中的4) data_src extract faces S3FD all GPU 和 5) data_dst extract faces S3FD all GPU;

功能:你会发现workspace中的data_dst中的aligned和aligned_debug文件夹中有人脸图片,data_src两个文件夹中的aligned类似。

PS:目前来说一般采用S3FD的人脸识别方法,该方法比较好!老版本貌似只有MT和DLIB的人脸识别方法。

3.训练,双击bat文件中的6) train SAE;接下来,Cmd里面所有的参数选项都是直接按“Enter”键即可,因为默认参数都是优化过的,完全适应于Demo视频(对于其他视频也是比较适用,特别是对于新手来说);

功能:训练人脸对齐模型,那还用说?该模型文件保存于workspace中的model文件夹中,你会发现模型文件有5个“h5”的文件

PS:Deepfacelab这个版本是基于Keras来实现的,所以只能用一个GPU进行训练。如果是新手的话更建议采用H128的方法进行训练。SAE方法更全,最好最灵活的模型,但是相对来说需要对Deepfacelab有深入了解,或者跟我一样用默认参数。。。

warning:CMD默认参数中有一个选项是训练迭代无次数限制(默认参数),即需要人工停止训练,停止标准包括1)Train Preview窗口中的第一行、第二行、第四行和第五行的人脸都比较清晰即可;2)训练窗口中的loss值接近于0.2。如下图二红色方框所示(妈蛋,为了截图打开cmd界面,把训练了12个小时的模型给覆盖了,心碎ing)

停止方法,在Train Preview窗口中按“Enter”键。按"P"键是刷新图片哈,可以实时看到最新训练的效果。

   

4.人脸替换,双击bat文件中的7) convert SAE,Cmd里面第一个参数选项输入“n”,其余也全是按“Enter”键即可。

功能:你会发现workspace中的data_dst中的merged文件夹中有替换好的人脸图片。

PS:训练用的什么方法,人脸替换的步骤就要用相应的方法。Cmd第一个选项就是是否使用UI界面模式,反正我没弄懂,我就是直接不用UI模型就好了。

5.视频转换:双击bat文件中的8) converted to mp4,Cmd里面所有的参数选项都是直接按“Enter”键即可;

功能:你会发现workspace中多了一个result.mp4的视频文件,这就是完成AI换脸的成果了。

 

四、Deepfacelab 填坑

完成上述步骤,你发现其实软件用起来很简单的吧,但是其中会有很多坑,下面一步步说。

1.素材坑。搞深度学习的都知道,样本数据好和算法好两个来选,肯定选样本数据好。因为深度学习这个东西就是“炼丹”,丢进去的都是好东西那么练出来的肯定不会差,所以对于上述步骤2.人脸提取完成后,需要人工进行筛选人脸图片。

解决方法:人工筛选人脸图片,删除掉那些无人脸的图片、颠倒的人脸图片、模糊对焦不好的图片等等,只留下人脸提取好的人脸图片。

2.分辨率大小问题,视频素材分辨率尽可能清晰。

3.模型保存,每训练完一次,把workspace中的model文件夹和分割图片都尽可能单独保存一次,免得model丢失。这是血与泪的教训啊!

五、总结

这部分有博主总结的很好,我就不多自己画图了!(主要是懒。。。)

 

参考文献:

1.https://blog.csdn.net/u014575897/article/details/85272910

2.https://www.deepfakescn.com/(常用AI换脸软件的教程网吧)

最后推荐一波AI换脸学习的QQ群,743285272(主要是免费群,可以白嫖)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/256516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Underscore.js 的模板功能

Underscore是一个非常实用的JavaScript库,提供许多编程时需要的功能的支持,他在不扩展任何JavaScript的原生对象的情况下提供很多实用的功能。 无论你写一段小的js代码,还是写一个大型的HTML5应用,underscore都能帮上忙。目前&…

ANSYS——查看剖面图的应力分布云图以及工作平面的相关设置

剖面图和切片图其实差不多,只是切片图只有一个截面,而剖面图是切去一部分保留另一部分模型,不但可以看到截面处应力分布还可以看到剩余模型的应力分布 切片应力云图可见:https://blog.csdn.net/qq_45769063/article/details/106357700 1.剖面云图的查看 首先将工作平面的…

2016.8.2

高端内存映射方式 高端内存映射分为三种:永久映射、临时映射和非连续动态内存映射。高端内存一般是指896MB以上的页框,这段区间内核一般不能直接访问。 1.永久映射 永久内核映射允许内核建立高端页框到内核地址空间的长期映射。它们使用主内核页表中的一…

深度学习之pytorch(三) C++调用

玩深度学习,个人觉得基于anaconda的python适合开发与测试,C适合实际的工程部署!而pytorch官方有编译好的libtorch,特别方便,适合于我这样的伸手党和手残党(win10下编译tensorflow编译了好久都没通过,好忧伤…

机器学习(一) 基于sklearn库的数据集划分(交叉验证)

机器学习中首要环节就是数据集的处理,其中数据集的处理从个人理解(如有错误敬请谅解)的角度来说包括两个方面:数据集划分和数据清理。其中数据集划分是指训练集、验证集和测试集的数据类别划分;数据清理是指数据的清洗、删除等等方面。这两天…

敏捷项目开源管理软件ScrumBasic(2)- 多项目支持

1.加入Project对象模型 public class Project{[Key][MaxLength(32)]public string ID { get; set; }public string Name { get; set; }public int Order { get; set; }public ICollection<UserStory> Stories { get; set; }public ApplicationUser Creator { get; set; }…

postgresql表和列注释(描述)

2019独角兽企业重金招聘Python工程师标准>>> PostgreSQL添加表和列注释。本文为测试表test&#xff0c;默认无注释。 test# \d关联列表架构模式 | 名称 | 类型 | 拥有者 | 大小 | 描述 -------------------------------------------------public | test | …

Fifth scrum meeting - 2015/10/30

概述 从昨天开始&#xff0c;我们的开发工作终于进入了正轨&#xff0c;由于之前没有mooc服务器API接口&#xff0c;一些工作无法进行。 因为我们团队开始开发较晚&#xff0c;因此我们将开发阶段的截至时间定为了下周五&#xff0c;测试阶段则压缩为下周周六和周日两天。 我们…

计算机加入域 不能访问网络位置 解决办法

计算机加入域 不能访问网络位置 解决办法 启动以下服务 本文转自 onesthan 51CTO博客&#xff0c;原文链接&#xff1a;http://blog.51cto.com/91xueit/1660286&#xff0c;如需转载请自行联系原作者

Android Camera HAL浅析

1、Camera成像原理介绍 Camera工作流程图 Camera的成像原理可以简单概括如下&#xff1a; 景物(SCENE)通过镜头&#xff08;LENS&#xff09;生成的光学图像投射到图像传感器(Sensor)表面上&#xff0c;然后转为电信号&#xff0c;经过A/D&#xff08;模数转换&#xff09;转换…

win10 下pycharm+anaconda 编译生成pyd文件

由于生产部署的问题&#xff0c;需要把用python写的深度学习代码编译为可被调用的文件。上网搜索了下&#xff0c;暂时了解到win10下pyd文件比较流行。下面是直接引用某位博主的结论&#xff0c;个人感觉总结的很好。其中Cython库将已有的Python代码转化为C语言的代码&#xff…

JVM(4)之 使用MAT排查堆溢出

为什么80%的码农都做不了架构师&#xff1f;>>> 接下来讲解如何设置以及当发生堆溢出的时候怎么排查问题。先看一小段代码&#xff1a;   代码中使用了一个无限循环来为list添加对象&#xff0c;如果采用默认的堆大小的话可能要等待好久才能出现堆溢出的错误&a…

caffe 中的一些参数介绍

转自&#xff1a;http://blog.csdn.net/cyh_24/article/details/51537709 solver.prototxt net: "models/bvlc_alexnet/train_val.prototxt" test_iter: 1000 # test_interval: 1000 # base_lr: 0.01 # 开始的学习率 lr_policy: "step" # 学习率的…

python 制作二进制文件数据集(bin)

为了方便进行深度学习的程序调用与实现&#xff0c;需要将excel的数据文件转换为二进制文件。好处就是接口统一&#xff0c;读写速度快&#xff0c;节约空间。 一、调用库 使用xlrd读入execel表格&#xff0c;经过处理后转换为对应的dataframe结构&#xff0c;再使用pickle库…

远程连接mysql数据库注意点记录

一、如何新建独立帐号并设置权限 这里我使用Navicat作为我的数据库管理工具&#xff0c;打开Navicat。 选择“用户”--“新建用户” 输入用户名、主机、密码&#xff0c;需要注意的是&#xff0c;主机那不是写“localhost”&#xff0c;而是写“%” 然后可以设置“服务器权限”…

【域控管理】父域的搭建

从这篇博文开始&#xff0c;所有的域控系统都是在虚拟机中创建的。 在VM里安装Windows Server 2008 R2的方法就不多说了&#xff0c;无脑式安装&#xff0c;略过不提。 进到系统桌面&#xff0c;打开本地连接&#xff0c;设置网卡的IP地址&#xff0c;如下图&#xff1a; 注意&…

tensorflow2 tensorboard可视化使用

tensorflow2自带tensorboard&#xff0c;所以不必再自行安装tensorboard。 一、使用环境 win10 x64&#xff1b; anaconda3tensorflow2&#xff08;cpu版本&#xff09; 二、使用 1.在模型训练之前插入以下代码 log_dir os.path.join(logs) #win10下的bug&#xff0c; if…

IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)...

首先了解一下CGContextRef: An opaque type that represents a Quartz 2D drawing environment. Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框. 自己学习时实现的demo&…

eclipse maven jetty插件方式启动项目

2019独角兽企业重金招聘Python工程师标准>>> 1. 2.点击run即可启动项目 参考:maven命令具体含义请自行百度.例子:maven clean的作用 / maven djetty 转载于:https://my.oschina.net/u/3146772/blog/1576710

AWS S3 Windows系统下的文件夹上传基于python

AWS S3 上传文件&#xff0c;基于cmd命令行发现无法上传文件夹&#xff0c;只能上传单个文件&#xff0c;不知道是我能力不行还是什么原因&#xff0c;如果有大佬了解的可以在下面评论下! 一、环境配置 1.win10 X64&#xff1b; 2.awscli 1.18.91 3.python&#xff08;程序…