Closed MaxMayya closed 3 years ago
We constrain the weights of each vertex to be non-zero only on its nearby several parts and require the sum of these parts' weights equals one. Actually, I do not remember whether I does the initialization. You can initialize these weights based on the geodesic distance of the vertex to related parts. I think the initialization is not important if the abovementioned two constraints are satisfied.
Thanks for the reply. Yes I thought of using the geodesic distance but I cannot figure out how to impose those constrains. Correct me if I'm wrong: in the code, the weights of W
(loaded from RepWs.pth
) seem not to satisfy the convexity constrain (sum of positive weights to 1). Some weights are negative and the forward
of learnable_skinning_layer
normalises them through a SoftMax. I'm a little puzzled here!
Yes, I use a softmax to normalize the related parts' weights of RepWs to satisfy the convexity constrain. The softmaxed weights are the final skinning weights.
Okay I see. What about the sparsity constraint? Do you fix the number of the "influencing" parts a priori or it's automatically done during the training? If it's the latter, how do you guide the learning to satisfy such constraint?
I fix the number of the influencing parts for each vertex, and require the convexity constrain on these influencing parts.
So when fixing that number, do you follow some semantic logic (for ex. hand vertices can be influenced by forearm and arm but not by the feet)?
yeah
thanks
How do you initialize
W
weights? What loss do you use to train theW
layer?