Hi, thank you for the great work!
I have a question about the inverse_kinematics_n
I am looking for the Inverse Kinematics (input keypoint, output quaternions) for SMPL model. May I ask if inverse_kinematics_n can be used as a SMPL.IK by setting the t2m_raw_offsets as the the T-pose offset
?
When I load a SMPL model with all axis-angle np.zeros(1, 24, 3)
, I can convert it to quaternions (1,0,0,0).repeat(24)
, and extract keypoint3D
by SMPL.forward() and get the T-pose offset.
Since the inverse_kinematics_n
can convert keypoint3D to quaternions, I try set the t2m_raw_offsets as the the T-pose offset
, and use it as input pose to caculate:
quat_params = src_skel.inverse_kinematics_np(the T-pose offset, face_joint_indx)
,
I expected the quat_params would be quaternions (1,0,0,0).repeat(24)
, but it give me
array([[ 1. , 0. , 0. , 0. ], [ 0.97018707, 0.10117273, 0.02506009, 0.21879934], [ 0.9764908 , 0.08095426, -0.02427085, -0.19830072], [ 0.19227548, 0.97177869, 0.00742641, 0.13645965], [ 0.96733868, -0.09798025, -0.02706633, -0.23221391], [ 0.97394329, -0.06727229, 0.02661659, 0.21494284], [-0.02280826, -0.9866249 , 0.12702832, -0.09957472], [ 0.99863803, 0.03256986, 0.00384251, -0.04057946], [ 0.99891472, 0.01709825, -0.00162746, 0.04329439], [ 0.98927391, 0.13215074, 0.00712388, -0.06183069], [ 0.8467989 , -0.49483883, -0.06065629, 0.18543833], [ 0.84711134, -0.50181162, 0.0676151 , -0.16129398], [ 0.99846792, 0.04506058, 0.00653788, -0.03145744], [ 0.99325216, -0.06699904, 0.02710451, -0.09070143], [ 0.98986506, -0.07060396, -0.02671974, 0.12028421], [ 0.9634037 , 0.26020402, 0.00433816, -0.06426686], [ 0.98609924, 0.02350155, 0.0062857 , -0.1643672 ], [ 0.9903416 , 0.05510591, 0.00776913, 0.12699005], [ 0.99951196, 0.02822196, -0.01334839, 0.00127889], [ 0.99990761, -0.01145354, -0.00515127, 0.00520699], [ 0.99215883, 0.02453573, -0.01576269, 0.12153636], [ 0.99276286, 0.03386558, 0.02881835, -0.11155534], [ 0.99562532, -0.03552062, 0.06299305, -0.05917664], [ 0.99824488, -0.02248499, -0.03899435, 0.03848618]])
.
Is there anything I did wrongly?
Thank you!