Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bone reinitialization #49

Open
subin6 opened this issue Feb 8, 2023 · 1 comment
Open

Bone reinitialization #49

subin6 opened this issue Feb 8, 2023 · 1 comment

Comments

@subin6
Copy link

subin6 commented Feb 8, 2023

Hi, thank you for sharing your code.

I have a question on the following line, correct_bones in the process of bone reinitialization.

bones,_ = correct_bones(model, bones, inverse=True)

Why do you correct bones using the inverse of rest pose transformation?
Then, are the bones in the rest pose or another state?

As far as I know, you transform bones again into the rest pose bones using the rest pose transformation afterwards.
(

bones_rst, bone_rts_rst = correct_bones(self, self.nerf_models['bones'])
)

I’m wondering what is the purpose of rest pose?
Also, why did not you use the default bones(before multiplying the inverse of rest pose transformation) as rest pose?

Thank you.
Hope to hear from you soon!

@gengshan-y
Copy link
Contributor

gengshan-y commented Feb 9, 2023

Hi, the first line you referred to

bones,_ = correct_bones(model, bones, inverse=True)

transforms control points in the rest configuration (corresponding to \omega* in the paper, aligned with the rest shape) to a zero configuration.

First of all, this separate modeling of zero configuration is not an integral part of the method, the method worked without it.

The motivation of adding a zero configuration was to ensure all pose codes (rest code \omega^* and time code \omega^t) can be mapped to transforms J with the same definition:

J(\omega) = MLP_b(\omega) # J is the zero-to-any transformation

Instead defining J as the rest-to-any transformation and enforcing J(\omega^*)=Identity, we define J as zero-to-any transformation, where any can include both t and rest.

Hope this makes sense.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants