SmoothNet icon indicating copy to clipboard operation
SmoothNet copied to clipboard

Why SMPL rotation is 3 not 3*3?

Open lucasjinreal opened this issue 3 years ago • 7 comments

HI., I saw there has an option, smpl 6d, why it only have 243 and 246

rotation matrix why not be 24 * 3 *3? what's this 6d stands for?

lucasjinreal avatar Aug 17 '22 12:08 lucasjinreal

Hi @jinfagang,

All existing SMPL-Based methods directly regress 6D rotation matrix from the model (e.g., SPIN, PARE). You can find the function to transform 6d into 9d (3*3) matrix (rot6d_to_rotmat).
You can refer to this paper ( On the continuity of rotation representations in neural networks) to understand why existing SMPL-Based models use it. Thanks!

ailingzengzzz avatar Aug 17 '22 14:08 ailingzengzzz

My question is why your input shape is 24x3 and 24x6, in rotation matrix, shouldn't it be 24x3x3 and 24x3x4 (rot6d is R and T)?

lucasjinreal avatar Aug 17 '22 14:08 lucasjinreal

Sure, but 6D representation is enough. You can transform them into each other. Try it.

ailingzengzzz avatar Aug 17 '22 14:08 ailingzengzzz

My output is rotmat 3x3, I reshape it like (-1, 3) seems not logically right, if I reshape to (-1, 9), it can not feed into model. I want avoid conversion to rot6d, if keep original output would save processing time. and I just need output from SmoothNet be rotmat 3x3.

BTW, does there a ready to use function to convert a [1789, 24, 3, 3] to SmoothNet input need windowed input function? Hardlly to tell how to convert my data from datasets.py massive codes. I think it need something like [B, 32, 3]

lucasjinreal avatar Aug 17 '22 14:08 lucasjinreal

Please try to reshape the input of SmoothNet as [N, C, T]. C is 24*3*3. T is a window size.

ailingzengzzz avatar Aug 17 '22 14:08 ailingzengzzz

@ailingzengzzz Does NxT=Seqlen?

lucasjinreal avatar Aug 18 '22 02:08 lucasjinreal

Yes, if there is no overlap among the sliding windows.

ailingzengzzz avatar Aug 18 '22 07:08 ailingzengzzz