deepfacelab中文网

 找回密码
 立即注册(仅限QQ邮箱)
查看: 1353|回复: 10

20230715学习笔记(三)当dst有多个人物的处理方式

[复制链接]

12

主题

113

帖子

1241

积分

初级丹圣

Rank: 8Rank: 8

积分
1241
 楼主| 发表于 2023-7-15 09:59:51 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
本帖最后由 qdpushaver 于 2023-7-15 09:59 编辑

20230715学习笔记(三)当dst有多个人物的处理方式

这大概现有最(详细)啰嗦的图文笔记了。主要涉及:提取面部(切脸)流程、aligned和aligned_debug文件夹的作用、排序工具使用、配角脸部图片删除和一些其他方法的介绍。
曲高者和寡,现在经常还能看到相关问题的提问,所以回过头来记录一下详细的学习过程,希望更多朋友坚持学习,共同进步。各步骤结论已经加粗下划线标注,也希望大神们指正。
本篇笔记背景:
1.其实,差一点就要放弃了。虽然DFL已经很简单了,但是,仍然会遇到些问题搞不明白,特别是大家的水平都已经挺高了,即便是认真回答,我也听不明白。让我想起了当年上学时,我上的小学不教英语,而其他小学有英语课。初一开学一上英语课,老师稍微一点,大家就都明白了,只有我们几个没上过英语课的一脸茫然,挫败感特别强。好在,英语入门不难,DFL入门也不难,多看多问多做,还是会有所收获,希望在放弃边缘的同学们,一起努力。
2.适用范围:前期已经能按照教程的步骤,将软件(2021_1120版本)自带的马斯克和小罗伯特唐尼完成了一次换脸,熟悉了12345678的流程(可能没弄5、遮罩这一步),对于aligned和aligned_debug(以下简称debug)这俩文件夹的用途也还不是那么明白,然后,按照自己的想法去创作时,遇到和教程不一样的地方就会不知道咋办了。
现将后续学习的心得分享如下:马斯克换钢铁侠是一对一的换脸,算是最为简单的了,主要是为了让大家上手软件。然而,在实际运用中,我们会遇到dst和src的素材存在多对一、一对多、多对多(只需一对一换)以及多对多(多个换多个)情况的场景。那么,先把难度调高一点点,从dst素材有多个人物开始。

准备工作:
软件版本(2021_1120)
Dst素材:周润发电影《赌神》(1989)中1:49:49-1:50:06,踩着专属bgm进赌场片段(专门下了个21GB的蓝光版,但这电影本身画质就是那种带点马赛克风格,截出来只比3GBmkv格式的略清晰而已),可以自己下载一段素材用,不影响本文理解。
注:Dst素材一定要清晰,后面事半功倍,也可以参考下面帖子大神们的解决方案:https://dfldata.cc/forum.php?mod=viewthread&tid=14921&extra=   用“人脸清晰化工具”或“手动切脸 +MVE调整”。涉及内容较多,可以作为进阶练习内容,不影响本文理解

Src素材:随意,可以继续用小罗伯特唐尼的,也可以自己搜索。

Model文件夹:随意。如果前期马斯克换钢铁侠是从零开始训练的,可以不动这个文件夹继续试试,但是,西方人的脸型不一定效率高;也可以再从零开始训练;也可以下载大神们的现成好丹。这个地方也很重要,但是涉及内容较多,可以作为进阶练习内容,不影响本文理解。

正式开始。
1.工作空间清理,可以手动把data_dst文件夹里清理掉或者复制一份放到别处;
2.src 视频提取图像 extract images from videodata_src。用原有素材的话此步骤可以省略;
3. dst 视频提取图像(全帧率) extract images fromvideo data_dst FULL FPS,正常执行。最后会生成x张图片,保存在data_dst文件夹下,此时,aligned和debug这俩文件夹应该还是空的;
4.src 自动提取面部 data_src faceset extract,用原有素材的话此步骤可以省略;
5. dst 自动提取面部 data_dst faceset extract,需要关注。
自动提取面部到最后,会提示找到x张图片,找到y个面部。其中:x就是第3步生成的图片的数量x,这里忘记截图了。一对一的情况下,x和y是相等的,多对一的情况下,x小于y。例如,本文所有素材就是395张图片,3131个面部。

插一段,关于这些图片数量关系和各个文件夹功能的直观经验。
(1)data_dst文件夹(不含aligned和debug两个子文件夹)的图片,是对dst素材分解帧所产生,后续还要用来合成视频,所以,这些图片(见图1,文件夹共397个项目,减去2个文件夹,即395张图片),文件名即其时间顺序编号(5位数,从00001开始),动,否则,合成的视频会丢帧。
附图1.png

(2)接着往下看,打开aligned文件夹(见附图2),里面有3131个项目,这是执行《dst 自动提取面部 data_dst faceset extract》后生成的,这里面出现的脸均默认为要被替换成src的脸。当然,这肯定不是我们想要的,我们一般只想换其中一个,如何删除配角的面部图片,这里列为**问题一**,具体解决方案在后面。
附图2.png

再看一下每张图片的编号,也是5位数,也是从00001开始,但是不同的是后缀不同,有00001_0、00001_1和00001_2,再直接看到最后一个文件,编号是00395_5。看到这个395,应该就明白了,aligned文件夹里面的图片,与其上一层的data_dst文件夹也有对应关系,具体就是,把上一层395张图片,每张图片里的人脸都单列了出来并加上后缀进行区别(见附图3),所以总数从395张图片变成了3131张。
附图3.png

(3)细心的同学可能已经发现,00001图中,其实是有5个人。推测是脸部角度及亮度影响,软件只识别除了3个。如何来验证我们的判断呢,就得看剩下的这个debug文件夹了。还是先看数量及文件名规律,395个图片,编号从00001到00395,总数及名字与上一层的aligned文件夹是对应的。
再打开debug的00001看下,果然有三个人脸识别的框(这些红框是自带的,不是后画上去的)。原来aligned文件夹的00001_1、00001_2和00001_3就是从这里来的(见附图4)。同时,我们也应该注意到,debug的00001里,只有一个面部识别框是对的(即明确圈出了人脸范围和五官位置),其他两个头部识别的蓝框还可以,但是五官识别的绿线是一团糟,推测这就是aligned文件夹图片00001_1和00001_2里人物是歪斜的原因,aligned文件夹中没摆正的图片,大概是软件没有正确识别人脸的。不能正确识别五官,会影响换脸质量,所以,这类图片建议不要用。那么,如果主角的脸也没识别正确,或者,干脆没识别上,应该咋办,这是**问题二**
附图4.png

了解了每个文件里里图片的来源、作用和相互关系,那么我们就可以开始动手了。


我们处理dst素材中有多个目标的原则是,主角的脸部图片不能少,其他的图片不要留。


**问题一**如何删除配角脸部图片的解决方案。首先是针对上面提到,aligned文件夹里面有3131个项目,软件默认都是要换掉的脸,但我们只想把主角的脸换掉,那么其他人的脸可以删除吗,是可以的。最终合成视频用的是data_dst文件夹下的395张图片,aligned文件夹里的图片只用来换脸,不需要就删掉。删掉之后,软件就知道了,剩下的脸是需要换的,删除掉的脸不用换。那么如何来删除呢。

方法一:一个一个手动去删除。优点是准确率高,缺点是费时费力费眼睛。短视频可以,长视频不建议。

方法二:按照文件后缀去删除,上文提到,每一帧截出来的人脸图片文件名是有帧数+后缀的命名规则的。直接在文件夹中搜索后缀“_4”,然后人工识别,批量删除。这个方法快了一些,但是有时候在不同的帧,人脸数量有变化,主角的后缀会不一样(见附图5),第37帧的时候,主角是_4,到第38帧,又成了_5。这一点要注意,批量删除的时候不要删high了,把主角也删除了。如果不放心,可以自己简单校验一下结果。本文素材为例,总帧数图片有395张,主角是第20帧全脸登场的,那么如果软件提取主角面部全部成功(实际很难,有些大角度得另做处理)的话,删除其他人后,aligned文件夹中主角的脸应该是376张,才能不影响后期合成。
附图5.png


方法三
(1)排序。用软件自带的《dst 面部排序 data dst sort》,这个操作可以让aligned文件夹里的3131张图片,按照某种特征排列起来,方便你删除,一般是用默认的第5种直方图分布。注意:这个操作会改变aligned文件夹里图片的文件名(见附图6),为防止初次操作发生意外,建议备份一个aligned文件夹并记好这是哪一步操作之前。这种方法比上一种更为集中一些,可以更happy的框选删除了,但是依然请注意,别太high了删多了。你就想,如果这软件足够智能的话,这一步根本都不用人工操作,所以,还是得看好了再动手。
排序操作虽然会改变文件名,但是如果没有其他需要了,可以不用改回来,并不会影响后续的合成步骤。
附图6.png

(2)粗删。删除的过程中也会遇到一些问题,比如:在想删除的配角的图片中能看到主角的脸,或者,图片有主角,但是旋转了,也没铺满。这类拿不准的图片,可以先放着不删,等后面再看。
(3)细删。大部分的配角脸部删除之后,因为这些图片的文件名已经改了,就需要运行《dst 原始文件名恢复 data_dst util recoveroriginal filename》了。运行后,可以发现,剩余图片名字又回到了帧数+后缀的规则下,此时,在恢复完文件名的aligned文件夹中可以看到,第37帧有2个(见附图7),那么_1那个就可以删掉了,以此类推,同一帧里只保留主角脸大清晰的。如果有明显丢了帧,可以从备份aligned文件夹里看看,是主角没出现,还是误删了。最后的aligned文件夹中,应该有376张的主角脸部图片。
附图7.png
至此,问题一关于如何删除和保留就是这样。


**问题二**的主角识别不好的解决方案。
(1)整理debug文件夹。可以手动把debug文件夹里的删掉,但是不推荐。推荐本站的《[易用脚本]按照aligned整理目标aligned_debug》,这样debug文件夹里就变得和aligned文件夹一一对应了。
(2)错误debug文件删除。在debug文件夹里浏览一遍,把主角的脸和五官标的不好的(绿线乱成一团)图片删除掉。
(3)重绘错误debug图片。这里需要注意,软件提取不好是有原因的,可能是角度、清晰度或者背景干扰等。大角度问题算是进阶内容,新手阶段建议放弃;清晰度不够,需要用到人脸清晰化工具进行一下预处理,然后运行《dst 手动提取面部(删除 debug 图片后) data_dst faceset MANUAL RE-EXTRACT DELETED ALIGNED_DEBUG》。软件会把删除的debug文件夹图片(也就是你在上一步中认为提取脸部不正确的图片)找出来,让你手动提取,软件自带的手动提取不是很好用,具体经验可以参考文末另一篇笔记的附图,不喜欢在一棵树上解决问题的同学,可移步站里关于“手动切脸 +MVE调整”的相关教学,更人性化更高效。
这个操作会把所有步骤中删掉debug图片都找出来,不需要提取面部的(比如本例中没有主角的前十几帧)直接按空格跳过就好,一旦你重新绘制了,他会记下来,并把相应的面部图片放到aligned文件夹里。
提取完成后,dst多对一素材自动提取面部的后续筛选工作就完成了。


课后作业,以本例素材为例,有一部分的主角脸部图片过于模糊,可以用软件自带的《dst 面部排序 data_dst sort》,这次按清晰度排序,把模糊的单独放到其他地方。只用清晰的图片来训练,避免影响模型整体效果。训练完成后,再把图片放回来再合成。(不确定,正在验证中)
20230713提取面部自动五官心得.png
回复

使用道具 举报

36

主题

271

帖子

1909

积分

初级丹圣

Rank: 8Rank: 8

积分
1909

万事如意节日勋章

发表于 2023-7-15 11:32:30 | 显示全部楼层
你所需要的是一款可以帮你识别分类好人脸的切脸软件
回复 支持 反对

使用道具 举报

13

主题

994

帖子

1万

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
11929
发表于 2023-7-15 14:47:14 | 显示全部楼层
天光脑震荡 发表于 2023-7-15 11:32
你所需要的是一款可以帮你识别分类好人脸的切脸软件

mve好像有这个功能,但是我没用过。
回复 支持 反对

使用道具 举报

36

主题

271

帖子

1909

积分

初级丹圣

Rank: 8Rank: 8

积分
1909

万事如意节日勋章

发表于 2023-7-15 15:00:08 | 显示全部楼层
seancai110 发表于 2023-7-15 14:47
mve好像有这个功能,但是我没用过。

FaceSwap魔改切脸版
回复 支持 反对

使用道具 举报

12

主题

113

帖子

1241

积分

初级丹圣

Rank: 8Rank: 8

积分
1241
 楼主| 发表于 2023-7-15 15:39:43 | 显示全部楼层
天光脑震荡 发表于 2023-7-15 11:32
你所需要的是一款可以帮你识别分类好人脸的切脸软件

嗯呢。我这是个笨办法,主要是为了说明一下各个文件夹的用途和解决思路。
回复 支持 反对

使用道具 举报

7

主题

867

帖子

5752

积分

高级丹圣

Rank: 13Rank: 13Rank: 13Rank: 13

积分
5752

万事如意节日勋章

发表于 2023-7-15 16:16:23 | 显示全部楼层
支持,冲你这学习精神,dfl完全不在话下,不懂的可以问我
回复 支持 反对

使用道具 举报

12

主题

113

帖子

1241

积分

初级丹圣

Rank: 8Rank: 8

积分
1241
 楼主| 发表于 2023-7-15 16:35:42 | 显示全部楼层
lknet 发表于 2023-7-15 16:16
支持,冲你这学习精神,dfl完全不在话下,不懂的可以问我

先谢过大佬:)
回复 支持 反对

使用道具 举报

4

主题

62

帖子

1908

积分

初级丹圣

Rank: 8Rank: 8

积分
1908
发表于 2023-7-18 16:01:13 | 显示全部楼层
值得学习,明白了其中各文件夹的关系,感谢
回复 支持 反对

使用道具 举报

0

主题

93

帖子

680

积分

高级丹师

Rank: 5Rank: 5

积分
680
发表于 2023-7-23 06:29:39 | 显示全部楼层
感谢分享
回复

使用道具 举报

2

主题

13

帖子

105

积分

高级丹童

Rank: 2

积分
105
发表于 2023-7-26 11:12:13 | 显示全部楼层
大赞,我也是这么过来的,现在还在研究训练参数的区别
回复 支持 反对

使用道具 举报

QQ|Archiver|手机版|deepfacelab中文网 |网站地图

GMT+8, 2024-9-23 20:23 , Processed in 0.122906 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表