ashawkey / RAD-NeRF

Real-time Neural Radiance Talking Portrait Synthesis via Audio-spatial Decomposition
MIT License
878 stars 153 forks source link

请问如何控制头部的动作? #27

Open kendo6666 opened 1 year ago

kendo6666 commented 1 year ago

在我生成的视频中,感觉头部晃动得很厉害(可能的原因是训练素材人特本身头部就有晃动),请问是否有参数控制头部晃动的幅度呢?

ashawkey commented 1 year ago

@kendo6666 You may check smooth_path if you mean the input pose sequence is shaking. Or you can simply fix pose with --data_range 0 1.

kendo6666 commented 1 year ago

@ashawkey 非常感谢您的回复。 我是想试图关闭RAD-NeRF对头部的控制,让它渲染出来的图片与对应的index的原始图片位置是完全相同的。这样,我就可以构建全身的人像——只渲染头部的部份,再和原始帧做拼接,头部和躯干的动作与原始帧相同即可。但是data_range似乎不是我想要的,它在NeRFDataset的init中决定了要加载的帧的数量。

ashawkey commented 1 year ago

In that case, I think only using the head model (do not append --torso) will work? It renders head with the provided pose sequence, and loads extracted gt torso image. If you only want a head, modify here to if False.

kendo6666 commented 1 year ago

@ashawkey 这正是我想干的,但是我的问题是,head 模型根据姿势序列渲染的头部是晃动的,如果不渲染躯干, 它能够和gt的躯干图像完美地吻合拼接上吗?

kendo6666 commented 1 year ago

@ashawkey 尝试了一下,头部晃动不大的时候,效果是可以接受的,如果晃动幅度较大,则项部结合处会有双下巴。

ashawkey commented 1 year ago

Yes, I think this is unavoidable for cut-and-paste methods...

kendo6666 commented 1 year ago

@ashawkey 非常感谢你的回复。有一个不成熟的想法,有没有可能让nerf只渲染面部和口型,不控制头部的晃动,让头部的位置跟着原始的帧保持一致呢?这样头部和躯干自然就贴合了,头、躯干,四肢的晃动跟原始帧相同。这样可行吗?如果可行,该如何修改代码呢?

ashawkey commented 1 year ago

I'm not sure what does the shaking exactly mean, but we are actually rendering faces at the estimated head pose from input image frame. There may be inaccuracy in the head pose estimation (face tracking), which leads to slight mismatch with the input frame, but this is an open question yet to be solved.

kendo6666 commented 1 year ago

@ashawkey 谢谢你的回复。我说的“晃动”就是指正常说话时头部的左右上下的移动。 我的想法不太正确,这个想法本身来源于wav2lip,它是仅截取面部rect送入神经网络,然后将输出再拼接回来,这样可以不用关心头部的运动,过肩的长头发以及躯干和四肢的运动,但是在RAD-NeRF中,头部姿势本身是get_rays的一部份。 在实践当中,通常需要一个完整的“人”,而不仅只有头部和肩部,当不使用--torso时,因为头部在运动而torso没有渲染,导致head/torso运动不一致,这样在结合处就会不自然。我再想想是否有其它的解决方法吧,如果你有更好的意见,也请你告诉我,谢谢!

DestoryVIP commented 8 months ago

@ashawkey 谢谢你的回复。我说的“晃动”就是指正常说话时头部的左右上下的移动。 我的想法不太正确,这个想法本身来源于wav2lip,它是仅截取面部rect送入神经网络,然后将输出再拼接回来,这样可以不用关心头部的运动,过肩的长头发以及躯干和四肢的运动,但是在RAD-NeRF中,头部姿势本身是get_rays的一部份。 在实践当中,通常需要一个完整的“人”,而不仅只有头部和肩部,当不使用--torso时,因为头部在运动而torso没有渲染,导致head/torso运动不一致,这样在结合处就会不自然。我再想想是否有其它的解决方法吧,如果你有更好的意见,也请你告诉我,谢谢!

你好,我发现我训练的人的头部总是忽大忽小,是不是您说的摇晃呢?请问您解决了吗?