YuanxunLu / LiveSpeechPortraits

Live Speech Portraits: Real-Time Photorealistic Talking-Head Animation (SIGGRAPH Asia 2021)
MIT License
1.16k stars 200 forks source link

Audio to Mouth-related Motion #26

Closed DWCTOD closed 2 years ago

DWCTOD commented 2 years ago

大佬您好, 看到论文中提到的“ Audio to Mouth-related Motion” ,这里的音频特征是使用基于中文数据集训练的(Mandarin Chinese part of the Common Voice dataset)APC模型,然后 audio2feature部分是要针对每个目标人物重新训练一遍是吗? 但是这里每个目标人物的数据可能只有几分钟(3-5分钟),这样子会不会对泛化效果影响很大,例如训练的时候使用的是一个女性角色,测试的时候使用男性去测试? 因为我目前尝试的一个方案,是基于ATnet在大量数据集上训练从音频到人脸关键点的映射,然后利用ATnet提取的音频特征,后面的操作与大佬论文中相似,也是用3-5分钟的视频微调 音频特征到人脸表情相关参数的映射,但是目前测试的效果,感觉泛化能力并不理想。因此想请教大佬的看法

YuanxunLu commented 2 years ago

APC模型只是语音特征,对所有人都是一样的(speaker-independent),不需要fine-tune。Audio2Feature用的是APC模型提取的特征作为输入的训练的,是target-aware的。 据我所知,ATVG的语音特征用的是MFCC,并不是基于学习的feature。 泛化性这个问题是现有技术都有的问题,需要一些新思路去做,无论是从数据规模,特征提取/表示,都可以去做一些创新。

DWCTOD commented 2 years ago

这里我对ATnet提取音频特征的表述有点问题,实际上我想表达的是这个项目的作者:https://github.com/xinwen-cs/AudioDVP 中的方法 基于ATVG中的 ATnet结构(从音频到人脸关键点映射),使用mfcc经过网络提取高维度的特征,而且高维度特种还可能包含一般性音频-关键点运动信息,然后利用这个高维度音频特征与3DMM参数微调做映射。 具体论文描述和论文链接 如下: 2021-11-09 20-36-10屏幕截图 论文:https://ieeexplore.ieee.org/document/9199560

YuanxunLu commented 2 years ago

没有仔细看过这篇论文,这么做需要实验去做证明有效吧。本身里面信息就是耦合着的(考虑到数据集规模,网络会倾向于学一个整个数据集的全局mean mapping,而且里面expression的分布也会被平均掉),个人觉得直接用pretrain common model的feature还不如直接用这个model的结果,外加额外训练personalized的偏置,这样更简洁而且更容易理解。另外,用common数据集其实是忽略到pose/camera的影响了,空间并不是归一化的,泛化肯定会受限了,另一个很直观的就是NVP的路子,先训一个common blendshape,再额外每个人训delta的personalized blendshape。都在统一的3D object coordinates下做,出来的结果我个人觉得泛化性会更好一些。

DWCTOD commented 2 years ago

谢谢大佬的解答,非常感谢 另外还有一个疑问,论文中提到 lip synchronization 得分的结果,看了描述好像是通过统计路人评价的结果(如果没有理解错的话),不知道有没有利用其他客观指标去对比的呢?例如 https://github.com/joonson/syncnet_python (不过这个对中文的测试得分,好像并不是非常理想)或 https://github.com/julianyulu/SyncNetCN (基于中文数据集训练,目前还未开源权重文件)

2021-11-10 12-01-46屏幕截图

YuanxunLu commented 2 years ago

关于lip sync的客观指标(SyncNet)是测试过的,在rebuttal中说明过,但并未展示在最终论文中,结果是与NVP相似或更好一些。 关于SyncNet的鲁棒性我是个人存疑的,因为你如果输入同一个视频不同size的cut&crop(人脸在视频中的位置/大小等),结果能差的非常大,甚至能出现生成结果比groundtruth分更好的情况(假如你做过相关测试的话),因此我没有放这个结果。 个人认为目前暂时还没有一个较好且鲁邦的客观评价方法。

DWCTOD commented 2 years ago

谢谢大佬回复 关于“甚至能出现生成结果比groundtruth分更好的情况”,我之前使用自己爬的CCTV的数据集,对于原视频用SyncNet 测试,得分分布差别会很大。用自己的方法(audio-DVP + 一些最新的成果魔改)生成结果,一般来说SyncNet判断的得分都没有原视频高。而且存在 即使得分可能还可以(5左右),但是实际上同步效果并不理想的问题。

DWCTOD commented 2 years ago

您好,不知道是否会考虑分享audio2feature训练相关的代码,对于音频这块并不是非常了解,感觉参数特别多,尝试训练的时候发现,很多参数并没有在options中指定具体的值,例如 time_frame_length ,compute_mel_online(目前尝试已将部分参数注释),以及audio_feature与pred_feat 的对应关系(好像是2:1),具体的音频和视频帧序列长度设置应该设置为多少(好像视频帧240)?

打扰了,这里通过大佬提供的数据集是可以训练并获取 Audio2Feature.pkl 的权重,但是有个疑问就是当我的数据集换了之后,例如fps变成25,以及feature特征不是使用landmark而是换成3DMM参数时具体要如何调整?

config 中的 residual:false 是不是需要调整成 False? 换算了一下如果这里我使用的是fps25 的话,感觉和APC_feature无法整除(大概是1:4.8)

YuanxunLu commented 2 years ago

目前没有开源训练代码的计划,我现在做其他的项目。 关于上述的部分参数,请参考 Issue #27. 假如视频FPS等改变,需要重新设计相关参数和网络。 关于FPS和语音特征长度的整除关系,你可以自行设计,我是在60FPS下设计的。

DWCTOD commented 2 years ago

好的,非常感谢大佬