kleinlee / DH_live

每个人都能用的数字人
669 stars 147 forks source link

嘴唇跟牙齿有画面冲突 #27

Closed qiuzi closed 1 month ago

qiuzi commented 1 month ago

牙齿会呈现在嘴唇之上,这类问题是训练的模型造成还是推理时处理不当?Screenshot_2024-09-19-12-26-37-815_com.mxtech.videoplayer.ad.jpg

kleinlee commented 1 month ago

更多是模型的问题。 DH_live适用于面部区域256*256分辨率,在这种情况下此问题不算严重。 对于更高分辨率,分辨率提升一倍算力就增加至四倍,违背了普通显卡实时运算的要求。所以未对此情况做出优化。

qiuzi commented 1 month ago

能提供一下高分辨率的网络方案吗? 嘴部384*256的

kleinlee commented 1 month ago

一个解决办法是,在DiNet训练过程中,数据集需要更加混淆下牙和下嘴唇的色差,同时增加一个嘴部patch判别器,严格保证嘴部的真实性。这样在384分辨率上也该也能达到可用地步。

qiuzi commented 1 month ago

一个解决办法是,在DiNet训练过程中,数据集需要更加混淆下牙和下嘴唇的色差,同时增加一个嘴部patch判别器,严格保证嘴部的真实性。这样在384分辨率上也该也能达到可用地步。

frame = cv2.resize(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY), (150, 100)) sharpen_image = frame.astype(np.float32) mean_ = int(np.mean(sharpen_image)) max_, min_ = mean_ + 60, mean_ - 60 sharpen_image = (sharpen_image - min_) / (max_ - min_) * 255. sharpen_image = sharpen_image.clip(0, 255).astype(np.uint8) 是这里对嘴部取样吗?

yancccc commented 1 month ago

请问怎么进行训练?DiNet训练吗?

qiuzi commented 1 month ago

请问怎么进行训练?DiNet训练吗?

需要准备数据集,项目里有训练代码

yancccc commented 1 month ago

请问怎么进行训练?DiNet训练吗?

需要准备数据集,项目里有训练代码

(dinet) ps@ps:/home/py/ycc/DH_live-main$ python train.py 视频列表: ['./1/circle.mp4'] video_selected final: 1 100%|█████████████████████████████████| 1/1 [00:00<00:00, 6808.94it/s] train size: 0 训练字典信息: {'driven_images': [], 'driven_keypoints': [], 'driving_keypoints': [], 'driven_mask_keypoints': []} Traceback (most recent call last): File "/home/py/ycc/DH_live-main/train.py", line 63, in raise ValueError("训练集为空!请检查数据加载和预处理步骤。") ValueError: 训练集为空!请检查数据加载和预处理步骤。 没有生成训练字典信息

qiuzi commented 1 month ago

请问怎么进行训练?DiNet训练吗?

需要准备数据集,项目里有训练代码

(dinet) ps@ps:/home/py/ycc/DH_live-main$ python train.py 视频列表: ['./1/circle.mp4'] video_selected final: 1 100%|█████████████████████████████████| 1/1 [00:00<00:00, 6808.94it/s] train size: 0 训练字典信息: {'driven_images': [], 'driven_keypoints': [], 'driving_keypoints': [], 'driven_mask_keypoints': []} Traceback (most recent call last): File "/home/py/ycc/DH_live-main/train.py", line 63, in raise ValueError("训练集为空!请检查数据加载和预处理步骤。") ValueError: 训练集为空!请检查数据加载和预处理步骤。 没有生成训练字典信息

视频需要预处理成训练需要的文件结构,可以等作者发布预处理脚本或者用我改的试试https://github.com/qiuzi/DH_live/raw/main/train_preparation.py

yancccc commented 1 month ago

请问怎么进行训练?DiNet训练吗?

需要准备数据集,项目里有训练代码

(dinet) ps@ps:/home/py/ycc/DH_live-main$ python train.py 视频列表: ['./1/circle.mp4'] video_selected final: 1 100%|█████████████████████████████████| 1/1 [00:00<00:00, 6808.94it/s] train size: 0 训练字典信息: {'driven_images': [], 'driven_keypoints': [], 'driving_keypoints': [], 'driven_mask_keypoints': []} Traceback (most recent call last): File "/home/py/ycc/DH_live-main/train.py", line 63, in raise ValueError("训练集为空!请检查数据加载和预处理步骤。") ValueError: 训练集为空!请检查数据加载和预处理步骤。 没有生成训练字典信息

视频需要预处理成训练需要的文件结构,可以等作者发布预处理脚本或者用我改的试试https://github.com/qiuzi/DH_live/raw/main/train_preparation.py

能详细一点吗,怎么处理训练数据,怎么修改训练脚本

lonngxiang commented 1 month ago

image 嘴很奇怪

qiuzi commented 1 month ago

image 嘴很奇怪

你训练了多少步?

lonngxiang commented 1 month ago

你好,我这没有训练,直接传视频进行提取的特征,然后去推理合成视频效果

qiuzi commented 1 month ago

你好,我这没有训练,直接传视频进行提取的特征,然后去推理合成视频效果

最好自己训练一下,公版模型对素材要求有限

lonngxiang commented 1 month ago

你好,我这没有训练,直接传视频进行提取的特征,然后去推理合成视频效果

最好自己训练一下,公版模型对素材要求有限

嗯我看下,他这训练数据一般要几个视频呢,训练后效果怎么样呢

qiuzi commented 1 month ago

你好,我这没有训练,直接传视频进行提取的特征,然后去推理合成视频效果

最好自己训练一下,公版模型对素材要求有限

嗯我看下,他这训练数据一般要几个视频呢,训练后效果怎么样呢

越多越好,清晰度尽量4K

lonngxiang commented 1 month ago

麻烦问circle.mp4 这文件是train生成的吗还是

qiuzi commented 1 month ago

麻烦问circle.mp4 这文件是train生成的吗还是

训练不需要circle 文件