TMElyralab / MuseTalk

MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting
Other
2.97k stars 369 forks source link

训练集构建时,reference image 如何选择? #65

Open gobigrassland opened 6 months ago

gobigrassland commented 6 months ago

(1)最近也在复现这篇论文的训练代码,刚开始我选择reference image是距离target/gt image 一定距离外的帧,比如5-25帧外。之所以如此,是考虑很多视频脸部在不断运动且幅度比较大,比如抖音短视频中卖货的主播等等。今天首次看到有train_codes这个分支,其中代码一直是选择超过5帧以外的任意一帧作为reference image. 为什么这样选择,难道这种视频头部运动幅度较大不会影响训练效果吗?

img_name = random.choice(video_imgs)
            img_idx = int(basename(img_name).split(".")[0])
            random_element = random.randint(0,len(video_imgs)-1)
            while abs(random_element - img_idx) <= 5:
                random_element = random.randint(0,len(video_imgs)-1)
            img_dir = os.path.dirname(img_name)
            ref_image = os.path.join(img_dir, f"{str(random_element)}.png")

(2)关于该项目,reference image的目的是什么? 本来已经有masked image,期望通过音频驱动,补全与音频一致的嘴巴区域。那reference image目的是进行进一步约束得到较好重建结果,避免mask区域生成偏离太多? 再回到第1个问题,如果reference image 和 target image 偏差较大了。这种reference image有多少正向作用呢?

希望作者答疑解惑一下~

gobigrassland commented 6 months ago

下面图片,左侧是reference image, 右侧是target/gt image. reference image是选择25帧之外的,原视频头部运动幅度较大,25帧外差异就很大了。 随机挑选2组。 0 261

czk32611 commented 6 months ago

(1) reference image确实是一个研究方向,我们也正在对比实验。采用随机采样也是大部分论文所用的方法,我们的baseline方法就如此继承了。

(2) reference image的目的是给模型提供下半脸的外貌信息

hnsywangxin commented 1 month ago

外的任意一帧作为reference i @czk32611 您好,我有2个问题: 1:我看了论文,在参考帧的选择上面,论文写的是” Selective Information Sampling“,为啥代码中还是随机的呢,这是出于什么考虑 2:从整个架构看,VAE发挥的作用至关重要,我看咱们用的还是sd1.5的vae,最近sd3.5的vae已经发布,从效果上看据说比原来的好很多,参考:https://huggingface.co/AuraDiffusion/16ch-vae 我改变了vae权重,但是效果反而变差了(更加模糊),能帮我看看是哪里出问题了嘛,这是我最新的musetalk.json:

image

谢谢