deepfacelab中文网

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

[CX2] 关于 DeepFaceLab 中用到的“两个”模型,概念上的困惑

[复制链接]

4

主题

5

帖子

100

积分

高级丹童

Rank: 2

积分
100
 楼主| 发表于 2024-10-1 19:28:27 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
本帖最后由 chjfth 于 2024-10-14 20:23 编辑

研究/琢磨 DeepFaceLab 五天,我有一个困惑,不知哪位高人能帮解答。


[20241001.0] DeepFaceLab 的工作流中,包含了两种模型:
  • XSeg model,用 5.XSeg) train.bat 生成的模型。官方自带的 $\_internal\model_generic_xseg 里头的也是这种。文件名是 XSeg_data.dat 和 XSeg_data.npy 。
  • DFM model,用 6) train SAEHD.bat 生成的模型。这种模型的支撑文件就多了,XXX_SAEHD_data.dat, XXX_SAEHD_decoder.npy, XXX_SAEHD_encoder.npy 等好几个。


image.png

image.png

==== 现在插一段铺垫,我目前所理解的“训练”的本质 ====


[20241001.0a] 所谓 training 的本质, 是在输入样本集输出结果集中找到一组参数(或称“参数集”), 有了这组参数, 拿其中一个具体的样本进去运算, 将会得到期望的结果(或是很接近期望的结果).



[20241001.0b] "参数"的意义在于: 我们手头交给机器训练的样本集是有限的, 而真实世界的具体样本(几乎)是无限的; 有了参数以后, 计算机算法针对任何输入的样本个体, 就可以计算(或说推理)出期望的结果.



[20241001.0c] 典型例子是 OCR 手写文字识别. 考虑 26 个小写英文字母手写图片的识别, 一个具体输入是 32x32 的图片, 我们希望算法能运算出(告知)这个图片上写的是哪个字母.
  • 再假设输入图片是单色(黑白)位图, 那么全样本集是 2(32*32) 个图片, 这是天文数字, 显然不可能给计算机准备一个  2(32*32) items 的对应表, 去查表找出某个样本图是什么字母.
  • 合理的方法是, 用机器学习训练出一个模型(想象它是一个大大的公式), 该模型也许包含 200 个参数, 然后, 拿 32*32 bits 的数据套入那个公式进行运算, 运算结果告诉我们, 当前这个 32*32 的位图是字母 a、b、c 还是别的.
  • 让计算机自动找出那个公式(或说公式里头的各个参数)的过程, 就是所谓的 training.
  • 为了让计算机自动找出那些参数, 我们得给计算机提供一些样本, 比如, 2600 张人手写的字母图片, 每个字母各 100 张.



[20241001.0d] 推理过程: 样本 → 参数 → 运算结果.
-
[20241001.0e] 我在上面的铺垫文字中, 很谨慎地使用"输出"这个名词, 因为它字面有歧义:
  • 我们拿 2600 个样本让机器去学习, 学习结果得到一个模型, 这个模型可称为"输出".
  • 我们拿一张具体的手写图片交给模型去运算, 结果得到一个运算结果, 告知这是哪个英文字母, 这也是一种"输出". 这个我称其“运算输出”以避免歧义.


-
[20241001.0f] 今后凡是碰到训练模型/使用模型的说法, 我不妨都问一问自己, 这个模型的 运算输入运算输出 分别是什么.

==== 铺垫结束 ====

[20241001.1] 现在将我的理解套用到 XSeg model 上。


[20241001.1a] 今天以为: 该训练出来的模型, 其运算输入是一张带背景的人脸图片, 运算输出是一个遮罩(黑白位图), 该遮罩告知图片中人物面庞的区域(该区域已经排除了遮挡物).


[20241001.1b] 举例来说, 如果人物嘴里叼着一根雪茄晃来晃去的, 总共有 100 帧这样的画面, 我们自然希望算法抠出的面庞不包含雪茄的残像, 因此, 我们明确给其中三幅叼雪茄的图片进行手工 labeling (5.XSeg) data_src mask - edit.bat), 用绿线排除雪茄这个遮挡物, 用这三幅图训练后的模型, 自动就能为剩余的 97 幅图自动去除雪茄了.


[20241001.1c] 注: 如果训练时给的样本(这个样本信息, 包括位图本身、和我们预先告知的正确遮罩位置(标准答案)), mask 区域是整个 head, 那么, 我们期望运算输出就是 head 的区域; 若训练样本是 whole face(wf) 的, 那么运算输出的遮罩区域就是 whole face.



[20241001.2] 现在我的疑问是,SAEHD training 训练出来的模型,它的运算输入是什么?运算输出又是什么?

[20241001.2a] 你要做深度学习训练,总要给系统一组样本和标准答案吧,我们喂给这个 SAEHD training 的样本和标准答案分别又是什么?

回复

使用道具 举报

14

主题

2849

帖子

1万

积分

高级丹圣

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

积分
15365

真我风采勋章万事如意节日勋章

发表于 2024-10-2 11:34:11 | 显示全部楼层
奇奇怪怪的ID 发表于 2024-10-2 08:29
说一下个人见解,例:仅以src说明扭曲训练

src原图即为标准答案

最近没啥动静啊?你那代码咋样了?试了我发的,新版DFL没?
你想看的随机颜色,在_internal\DeepFaceLab\core\imagelib\color_transfer.py
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
发表于 2024-10-2 11:52:10 | 显示全部楼层
wtxx8888 发表于 2024-10-2 11:34
最近没啥动静啊?你那代码咋样了?试了我发的,新版DFL没?
你想看的随机颜色,在_internal\DeepFaceLab\ ...

没试,看到的3个G文件就怕了,我没有开度盘会员

image.png

我连帖都犹豫了几天没发,放假还是好好出去玩的好
回复 支持 反对

使用道具 举报

14

主题

2849

帖子

1万

积分

高级丹圣

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

积分
15365

真我风采勋章万事如意节日勋章

发表于 2024-10-2 12:00:07 | 显示全部楼层
本帖最后由 wtxx8888 于 2024-10-2 12:02 编辑
奇奇怪怪的ID 发表于 2024-10-2 11:52
没试,看到的3个G文件就怕了,我没有开度盘会员

哈哈,出去看人挤人?
不发代码版的。改的文件太多。
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
发表于 2024-10-2 12:04:52 | 显示全部楼层
wtxx8888 发表于 2024-10-2 12:00
哈哈,出去看人挤人?

不是啊,我们这就有好几个休闲去处,人流不大,不过我都是等别人喊,没人喊就在家打游戏
回复 支持 反对

使用道具 举报

14

主题

2849

帖子

1万

积分

高级丹圣

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

积分
15365

真我风采勋章万事如意节日勋章

发表于 2024-10-13 14:17:15 | 显示全部楼层
奇奇怪怪的ID 发表于 2024-10-2 12:04
不是啊,我们这就有好几个休闲去处,人流不大,不过我都是等别人喊,没人喊就在家打游戏 ...

最近没啥消息了???
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
发表于 2024-10-13 15:12:07 | 显示全部楼层
本帖最后由 奇奇怪怪的ID 于 2024-10-13 15:13 编辑
wtxx8888 发表于 2024-10-13 14:17
最近没啥消息了???

额...因为对合成效果很失望,所以最近在构思怎么在合成前将dst提前“美颜美型”成src的脸部轮廓宽度高度比例和五官间距
回复 支持 反对

使用道具 举报

14

主题

2849

帖子

1万

积分

高级丹圣

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

积分
15365

真我风采勋章万事如意节日勋章

发表于 2024-10-13 15:35:28 | 显示全部楼层
本帖最后由 wtxx8888 于 2024-10-13 15:43 编辑
奇奇怪怪的ID 发表于 2024-10-13 15:12
额...因为对合成效果很失望,所以最近在构思怎么在合成前将dst提前“美颜美型”成src的脸部轮廓宽度高度比 ...

以前没接触过合成?(Photo Shop)
SRC,要比DST范围大(SRC的脸,大于DST),不然结果是可以预见的,这有啥失望的?自己,没处理好的问题。
SRC小就盖不住,训练虚影,合成脸部套娃。
脸型必然是DST的,这是改不了的,除非提前处理DST的脸型。

论坛有AE的变形教程。
【高端操作】金鱼AE高级合成教程-【DFL】精品教程-deepfacelab中文网 - Powered by Discuz! (dfldata.cc)
回复 支持 反对

使用道具 举报

17

主题

148

帖子

1798

积分

初级丹圣

Rank: 8Rank: 8

积分
1798
发表于 2024-10-13 15:49:03 | 显示全部楼层
wtxx8888 发表于 2024-10-13 15:35
以前没合成过?
SRC,要比DST范围大(SRC的脸,大于DST),不然结果是可以预见的。
SRC小就盖不住,训练虚 ...

额....所以我想的就是通过编写代码计算src人脸脸部的各种高度比例、宽度比例、五官间距比例来调整dst,我之前都是画个 src脸部五官轮廓图 用剪映对比着dst提前美型,你说的这些我知道,但是我的问题不是这些
回复 支持 反对

使用道具 举报

14

主题

2849

帖子

1万

积分

高级丹圣

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

积分
15365

真我风采勋章万事如意节日勋章

发表于 2024-10-13 15:56:18 | 显示全部楼层
本帖最后由 wtxx8888 于 2024-10-13 16:07 编辑
奇奇怪怪的ID 发表于 2024-10-13 15:49
额....所以我想的就是通过编写代码计算src人脸脸部的各种高度比例、宽度比例、五官间距比例来调整dst,我 ...

你调DST,得是LIVE的合成那部分,训练肯定用不到。
合成用的是帧图,或捕捉的直播画面,炼丹,可管不了这个。
你这是,打算写一套,实时的美颜滤镜呢?(对原始图像起效的)
回复 支持 反对

使用道具 举报

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

GMT+8, 2024-10-25 01:29 , Processed in 0.097760 second(s), 10 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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