Closed lucasjinreal closed 1 year ago
Sorry, I am not familiar with metahuman (not sure about its topology). Generally speaking, there are two ways to allow us to drive a neutral mesh template. 1) if it has a consistent topology with FLAME or BIWI-style (we trained in this project), we can directly drive them with CodeTalker. 2) if not. We may find a way to convert it to those topologies we used (FLAME or BIWI-style), drive it, and convert it back. Of course, you may train your own speech2mesh methods (CodeTalker, FaceFormer, etc.) on new data to adapt to new neutral template topologies.
@Doubiiu 是不是在render.py中,把FLAME_sample.ply替换为自己的模型就可以驱动了?
@kendo6666 不是的,如果想要pretrained的model来驱动任意neutral face的话,原则上要新的neutral face的topology要和训练的一样,因为这样模型才知道相应的语音应该驱动哪些顶点。如果topology不一致的话,需要重新训练模型。
@Doubiiu 你的意思是说它不能驱动新的的人物头部模型?而必须要先设计模型以及和语音对应的面部动画,再将其做为数据集来重新训练模型?如果真这样做,岂不是成了先有鸡还是先有蛋的循环了^o^
@kendo6666 是不能驱动新的拓扑结构的人物头部模型,模型是学习某种映射,这个映射的面部动画数据集是用设备采集下来的(比如VOCASET和BIWI),然后模型用于驱动与VOCAST和BIWI数据集相同的拓扑结构的neutral face(neutral face可以采集或者用3D重建生成)。并不是一个循环问题,生成的数据“通常”不能作为模型学习的数据。
@Doubiiu 非常感谢你的耐心回复。我可能因为其他项目的原因,有一些先入为主的错误想法。那我可不可以理解为codetalker的应用场景是先通过面捕或其他手段对自然人采集相关的面部数据,加上对应语音数据进行训练,然后对该自然人的人脸进行3D建模,以得到和训练相同的网络拓朴,然后用新的语音数据进行推理,这样理解对吗?
@Doubiiu 非常感谢你们杰出的工作!!! 那如果是一个全新设计的3D的虚拟数字人,没有现实世界上对应的人脸(或者说没有对应的相同拓扑的训练数据),有可能使用code talker吗?
@kendo6666 我觉得这是有可能的,比如把这个新的拓扑结构的人脸转换成一些通用数据集中的拓扑结构,相当于要做到一个双向映射,驱动完再转回原来的拓扑结构,总之有点麻烦且效果没法得到保证。
明白了,非常感谢耐心回复!我按你说的方法准备自定义义数据训练模型,先试一下。
For instance, given a mesh of metahuman face mesh, does it able to driven?