deepfacelab中文网

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

深入浅出理解扭曲的作用

[复制链接]

3

主题

63

帖子

1520

积分

初级丹圣

Rank: 8Rank: 8

积分
1520
 楼主| 发表于 2025-3-18 15:54:48 | 显示全部楼层 |阅读模式
星级打分
  • 1
  • 2
  • 3
  • 4
  • 5
平均分:NAN  参与人数:0  我的评分:未评
本帖最后由 xunlian 于 2025-3-18 22:15 编辑

1.什么是扭曲,是不是45度的SCR人脸和50度的DST人脸通过扭曲后,可以换出50度的SCR人脸

2.扭曲的作用是什么,GPT说扭曲可以增加泛化功能,什么是泛化?
3.训练中扭曲应该训练多久。
4.为什么开启扭曲时,第5列很像,关闭扭曲后训练了一个晚上,第5列又不像了?



进入正题前,先看下面两张图
550eedb15d0544818dccff3071cb36a3.jpeg     182386607a6e45a49333ac5477ddae70.jpeg

                       图1                                                                    图2

我想各位都认识两张图中字,都是王。从小老师教我们王的写法如图1,但是生活中,各种原因,人们对于王的写法可能有很多种,图2只是例举一部分。但是你看到图2的时候,基本都能意识到都是王字。
那好,如果我们把图1 当做是SCR,图2当做是DST。你看到图2中的各种王字的写法,立刻就会在脑中想到图1,王字的正规写法。是不是有点换脸的意思?


我们在联想一下,图2的各种王,是不是相当于图1的变化,虽然是变化,但是也是有条件的变化,不是无脑变,基本保持了王字的整体结构。那我们是不是也可以理解成图1经过扭曲后,产生的图2中的各种王?



当你能基本理解上面的解释,我们开始进入正题。
当图1经过扭曲后,产生了图2中各种王字,但是图2的王 万变不离其宗,其实就是图1.就像数学中,当X=某个区间时,X=Y。我们把X=DST,Y=SCR,这是不是就是某位SCR的专丹?


提问:图1经过扭曲,就一定会扭曲成图2中的王,不会扭曲成像 土,士,丰等别的字。扭曲成丰时,难道也能达到换出王的效果?
答:扭曲后,也可能会扭曲成土,士,丰,甚至扭曲成 工 玉等字,但是不用担心,因为有我们有一个帮手-LOSS损失函数,在loss函数的帮助下,即使扭曲成了土,士,丰,通过LOSS函数,王和土,士,丰进行对比,会剔除土,士,丰等字的影响。因为土,士,丰这些字的损失值比图2中各种王字的损失值都大。换一种说法,图2中的各种王字,在loss函数的对比下,损失值基本是相同的,而且也是损失值最小的。
可能这个回答你不太好理解。
再换一个说法,当某张SCR经过扭曲后,会生成N张图片,这些图片其实都不一样,但是其中有M张图片,在LOSS函数综合考虑下:比如情况1:嘴巴像,眼睛不像 损失值判定1,情况2:嘴巴不像,眼睛像,损失值也判定1,但是N-M后剩下的图片损失值都大于1。这样M图片集是不是就相当于图2中的各种王。


现在我们模拟一个训练环境,此时经过1000迭代。


我们通过一个圆再来直观的来理解。下图是一张圆心(0.0),半径1CM的圆。
image.jpg         
                       SCR                                                                              DST

某个SCR素材坐标(0.0),通过扭曲后,生成了大量图片,其中有很多张图片通过LOOS函数判定,损失值都为1,而且此时1的损失值是系统中最小的。也就是说生成图片是最接近SCR素材(0.0)。所以如图所示,这个SCR在扭曲后,生成了一个半径1的坐标集。简单取4个坐标(0.1)(0.-1)和(1.0)(-1.0)。这4个点到(0.0)距离都是1,而且只要是圆上的点,到(0.0)都是1。
随着我们不断的训练下去,随着损失值不断减小,圆的半径也会越来越小。但是只要有这个圆,唯一最优解就不唯一。唯一最优解不唯一又意味着什么,那就是条条大路通罗马,即所谓的泛化能力
DST的训练同理。

我们想像一下,如果DST(0.0)要换出SCR(0.0).需要怎么做?
1、非扭曲状态下:只有点对点换(0.0)换(0.0),可问题是 SCR和DST本身就不同,所以根本就不存在所谓(0.0)换(0.0)
2、扭曲状态下:SCR扭曲出一个集合,DST也扭曲成一个集合。只要DST集合中的一个坐标和SCR集合中的一个坐标最为接近,是不是就相当于DST的(0.0)换出了SCR中的(0.0).是不是大大增加了匹配的概率?

以上只是一个简单的比喻,换脸的模型远远要复杂的多。
以DF架构为例,共享编码器,分离解码器。
SCR和DST在同一个编码器的编码下进行统一编码。编码为通用特征特征+个性特征。
通用特征:人脸角度,人脸轮廓(圆脸 国字脸 瓜子脸)五官比例
个性特征:肤色  表情  痣 皱纹 等
当我们要高质量的进行换脸,SCR和DST的通用特征和个性特征就必需接近匹配。

回到扭曲的正题,
开启扭曲后,SCR的通用特征和个性特征都会进行扭曲,训练的越久,就会类似形成一个以圆,圆上的各点就是扭曲出的各种特征。当DST的特征刚好在这个圆上,就匹配上了。
关闭扭曲训练时怎么样呢?
关闭扭曲训练,就如同直接把图1的王 送入编码器,由于没有扭曲,LOSS函数只会认为只有图1的王 规规矩矩的三横一竖,才会是损失值最小的王,输入图2的王 损失值都大。这样持续训练下去,就不会形成类似圆,而可能会是一个线段。
我们对比一下 一个半径是1的圆 和1个长度是1的线段,哪个范围大?肯定是圆啊。


回顾开头几个问题:
1.什么是扭曲,是不是45度的SCR人脸和50度的DST人脸通过扭曲后,可以换出50度的SCR人脸
5度小角度 基本可以换出来,但是换出来的结果远没有SCR原生50度的脸效果好。原因就是 SCR没有50度的,但是在扭曲作用下,可以把45度脸再旋转5度,不就是50度了吗。但是旋转的50度肯定没有原生50度质量好(神态 表情等)。但是对于大角度,扭曲是没有办法的。特别是DF架构,大家都有体会。

2.扭曲的作用是什么,GPT说扭曲可以增加泛化功能,什么是泛化?
开头已经用大篇幅解释了扭曲的作用,GPT说的泛化,其实就是扭曲形成的圆,因为圆上的点都是某个SCR的最优解,所以大大增加了DST匹配的概率(单SCR多DST万能丹原理)


3.训练中扭曲应该训练多久。
一般80%扭曲 20%非扭曲


4.为什么开启扭曲时,第5列很像,关闭扭曲后训练了一个晚上,第5列又不像了?
在扭曲阶段时,SCR的最优解最多,DST刚好匹配到了最优解。关闭扭曲后,SCR最优解开始减少,DST没匹配上,自然就不像了。


























评分

参与人数 4贡献 +4 收起 理由
zj13528 + 1
毕加索 + 1 谢谢,这是稀缺的理论分享!
Terea + 1 感谢楼主分享
Liulianpi + 1 非常好

查看全部评分

回复

使用道具 举报

6

主题

46

帖子

468

积分

初级丹师

Rank: 3Rank: 3

积分
468
发表于 2025-3-18 20:50:09 | 显示全部楼层
形容很贴切
回复 支持 反对

使用道具 举报

1

主题

46

帖子

750

积分

高级丹师

Rank: 5Rank: 5

积分
750
发表于 2025-3-18 21:40:54 | 显示全部楼层
就喜欢这些纯理论的帖子,虽然读了几遍才理解。谢谢大佬的指点
回复 支持 反对

使用道具 举报

1

主题

39

帖子

375

积分

初级丹师

Rank: 3Rank: 3

积分
375

万事如意节日勋章

发表于 2025-3-18 23:14:18 | 显示全部楼层
听到一个说法,liae架构的模型,经过大量的扭曲后,然后关闭扭曲继续训练,无论训练多久都不会趋向于dst,有这个说法吗。
回复 支持 反对

使用道具 举报

0

主题

43

帖子

657

积分

高级丹师

Rank: 5Rank: 5

积分
657
发表于 2025-3-19 01:03:47 | 显示全部楼层
大佬咱能不能严谨点,那叫SRC,不是SCR
回复 支持 反对

使用道具 举报

0

主题

2

帖子

40

积分

初级丹童

Rank: 1

积分
40
发表于 2025-3-19 10:01:02 | 显示全部楼层
豁然开朗
回复

使用道具 举报

4

主题

77

帖子

1812

积分

初级丹圣

Rank: 8Rank: 8

积分
1812
发表于 2025-3-19 13:12:56 | 显示全部楼层
学习了
回复

使用道具 举报

3

主题

63

帖子

1520

积分

初级丹圣

Rank: 8Rank: 8

积分
1520
 楼主| 发表于 2025-3-19 21:39:38 | 显示全部楼层
狗蛋 发表于 2025-3-18 23:14
听到一个说法,liae架构的模型,经过大量的扭曲后,然后关闭扭曲继续训练,无论训练多久都不会趋向于dst, ...

LIAE不管怎么练 始终都摆脱不了DST的影子。
不单单是共享解码器的原因,LIAE还有一个所谓的中间层,这个中间层是DST+SRC特征组合。
DF架构 是DST去SRC的解码器进行换脸,LIAE却是这个DST+SRC特征组合去共享的解码器换脸。
这就是LIAE的光影好的原因。
LIAE设计初衷就是在DST的脸上重现SRC的五官,脸型和光影是DST,眼睛嘴巴鼻子是SRC

不管DF还是LIAE 都不能无脑换脸,SRC和DST 越相似 换脸效果就越好
回复 支持 反对

使用道具 举报

7

主题

189

帖子

1921

积分

初级丹圣

Rank: 8Rank: 8

积分
1921

万事如意节日勋章开心娱乐节日勋章

发表于 2025-3-23 21:48:45 | 显示全部楼层
感谢大佬分享经验
回复 支持 反对

使用道具 举报

5

主题

43

帖子

266

积分

初级丹师

Rank: 3Rank: 3

积分
266
发表于 2025-3-25 04:27:04 | 显示全部楼层
所以我想问,开启扭曲之后,再关闭扭曲是为了什么?
回复 支持 反对

使用道具 举报

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

GMT+8, 2025-4-4 23:15 , Processed in 0.117345 second(s), 45 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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