赚个积分 发表于 2024-5-11 17:54:44

转载【3D牙齿图集(带精确遮罩)】3000张,多角度多表情

本帖最后由 赚个积分 于 2024-5-11 17:58 编辑

3D头模生成牙齿切图3000张,已写入3D软件同步渲染的牙齿牙龈遮罩(相当于写入了Xseg遮罩)。解决炼丹缺少牙齿照片的难点。
切图为F,分辨率1024,适用WF和F的模型。切图用DFL自动切图,一些极限角度可能没有完美对齐,但是嘴的点基本还是在嘴巴附近的。
下牙主要在前2000张,后面2001-3000只有上牙。
角度基本齐全。为了节约空间,没有让表情在不同角度都左右对称,建议训练的时候开启左右翻转。

https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/12/213518azyyn99ootkkq3an.jpeg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5

https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/12/213546dfdyszefbisgfgzh.png?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5


https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/17/193510w9zp0g63a3twa06t.png?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5


一、使用方法

(一)图集放置,两种方法:

方法1. 将牙齿图集和你要训练的全脸图(全脸图可以写入全脸遮罩,因为如果没有遮罩,dfl默认给的是F遮罩,不带额头)一起放到aligned文件夹里。比如:
①对练杨幂专丹,SRC:牙齿图➕杨幂图,DST:牙齿图➕杨幂图或杂图
②练杨幂脸换到热巴视频的模型,SRC:牙齿图➕杨幂图,DST:牙齿图➕热巴图
(根据其他网友的反馈,牙齿图一定要src和dst都放。如果牙齿图只加在src,训练久了有可能会影响遮罩外的内容)

方法2. 已有杨幂专丹,想提升牙齿质量。可以将牙齿图放到SRC,杨幂图放DST。(不推荐)

方法1比较慢,方法2见效比较快。可以看到同样的训练次数,右边的方法2牙齿比左边的方法1更清晰。



方法2是利用了DFL神经网络里SRC和DST共用的部分,来牵制住模型,不让模型走样。但是,由于方法2,SRC只训练了牙齿图。虽然有遮罩排除了牙齿以外的部分,但是久而久之还是对SRC的网络产生了影响。可以看到上面图片,右边使用方法2,到30w次的时候,眼睛周围上半张脸,颜色出现了明显走样,虽然牙齿更清晰了,但是其他部分更加模糊了。


https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/17/194844yhu9gphqpz9lqohd.jpg?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5
可以看到,只要训练次数够久,模型还是会逐渐跑偏。因为牙齿图遮罩外的部分不进行loss计算,所以牙齿图生成的结果,遮罩外区域会越来越糊。(不过如果输入的是全脸图,还是能生成正常人脸,应该是神经网络已经学会分辩带背景的照片和黑背景的头模图了。)
如果SRC只有牙齿图,那么也会逐步影响SRC的神经网络。所以最好还是使用方法1,在SRC文件夹里加上人脸图,这样才能牵制住SRC路径的所有神经网络。



注意: 一定不要做的:
1. 不要把牙齿图放DST,杨幂图放SRC。
这样练不出清晰的牙齿图,牙齿反而变模糊。因为牙齿图的信息只传递给了SRC和DST共用网络,没有给到SRC专属的部分。

2. 不要在SRC文件夹和DST文件夹只放带遮罩的牙齿图。
这样训练到一定次数,遮罩外的部分由于没有图片信息约束,就会开始跑偏,像背景一样一团乱。

这是之前一个画了牙齿遮罩的高圆圆图对练,因为两边图都带了牙齿遮罩,练了几千次就崩了。
https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/17/195003csssjnwnjvwvdjsw.png?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5


(二)训练顺序
建议先用src训练出人物,等人物成型之后,再加入牙齿图进行细节训练。
我训练的图片配比是1500到2500张人物图,加3000张牙齿图,一起训练。

当然,如果人物图多了,牙齿出效果的速度肯定会变慢。但是人物图太少了,就会像上面的方法2一样,因为牙齿图的影响,造成模型走样。如果人物图太多了,可以分批替换进去训练。


(三)参数设置参考

1. 训练遮罩部分 :打开。
这样才能读取牙齿遮罩。

2. 遮罩边缘模糊:不打开。
本来切图留给遮罩的空间就不多,遮罩被压缩会模糊,所以没有必要再模糊遮罩边缘了。

3.眼部嘴部优先训练 :打不打开都行,感觉不打开更好?
因为嘴眼优先执行的时候,是DFL自动给嘴巴和眼睛加了一个遮罩,并计算这部分的loss。但是有时候DFL切脸对嘴的定位就不太准,有时候嘴角的landmark会排除一部分牙齿,所以可能DFL自己的嘴部遮罩并没有这么靠谱。而我们的牙齿图已经自带了精确的牙齿遮罩,所以我个人觉得专门训练牙齿的时候不需要打开嘴眼优先。如果想要同时训练眼神,可以打开。

4. 随机翻转人脸 :打开。
为了节约空间,这个牙齿图集没有做到每一个表情在每一个角度都生成左右对称的两张图。所以建议打开人脸翻转。一般来说,脸越对称,越好看。但是如果你的目标人脸本来就有点歪,歪脸是他的特色,那你只能关闭翻转来训练了。

5.是否扭曲样本:不打开。
一般到练牙齿的阶段,人物的五官特征都出来了,练细节不需要开这个功能。

6. 随机颜色:一般设0.1。
同样是为了节约空间,所以牙齿图集的颜色和光阴比较单一,建议开启这个功能,让网络学习不同颜色的牙齿。
不过,要同时打开颜色转换模式,设为rct或者lct,总之就是不能是none,随机颜色才会对src起作用

至于其他参数,可以按照训练细节的经验来设置。比如我喜欢gan power开0.1,然后开着梯度裁剪,这样基本不会崩。当然,你如果不想开梯度裁剪,那么gan就要开小一点,开0.01甚至0.001。


二、一些讨论

1. 为什么要用3D模型生成精确遮罩?
我一开始是用了一个高圆圆的牙齿图集,画了一百多张牙齿遮罩,然后训练了一个牙齿的遮罩模型。但是后面应用遮罩的时候,发现AI识别的牙齿还是有一些问题。比如:后牙颜色比较暗的时候识别不到、嘴唇的高光会被识别为牙齿、牙龈和嘴唇的区别存在困难。所以最后还是使用3D模型来解决这个问题。
https://luntantup.oss-cn-shanghai.aliyuncs.com/forum/202306/17/195708a4v4m0r0h2rwrgmi.png?x-oss-process=image/auto-orient,1/quality,q_90/watermark,text_REZMZGF0YS5jY-iuuuWdmw,type_d3F5LW1pY3JvaGVp,color_ffffff,size_25,shadow_77,x_5,y_5

牙齿包
***本内容需购买可见***






jandown 发表于 2024-5-11 20:40:16

最后清一色的烤瓷牙 :lol

meiyouruguo 发表于 2024-5-12 20:18:25

尝试一下

luodao11 发表于 2024-5-17 22:55:55

厉害,这个解决思路真的很牛。
页: [1]
查看完整版本: 转载【3D牙齿图集(带精确遮罩)】3000张,多角度多表情