Xinyu-Yi / TransPose

A real-time motion capture system that estimates poses and global translations using only 6 inertial measurement units
https://xinyu-yi.github.io/TransPose/
GNU General Public License v3.0
373 stars 72 forks source link

训练中的关节位置信息 #34

Closed Jaceyxy closed 3 months ago

Jaceyxy commented 1 year ago

您好,我尝试训练该网络,我想要知道您是如何获得关节坐标真值信息的

Xinyu-Yi commented 1 year ago

hi, apply the gt pose and tran on a smpl model to get the joint position in the global space, then transform it into the root space

wdanc commented 1 year ago

hi, apply the gt pose and tran on a smpl model to get the joint position in the global space, then transform it into the root space

hi, xinyu, I have question about the joint postition GT and some other issues:

  1. The smpl model returns joint positions and vertex positions, so ...... It seems like the approximate vertex position should be used as the joint position here, right?
  2. "transform it into the root space" just needs to be multiplied by the root rotation matrix like in the normalize_and_concat function in utils.py right?
  3. In the paper, A.2 Normalization Equa. 22, it is multiplied by the inverse of the root rotation matrix, but the normalize_and_concat function in utils is multiplied by the root rotation matrix directly, which is confusing to me.
  4. Also, why you concatenate the origin acceleration? This is not the same as Eq. 22 either. https://github.com/Xinyu-Yi/TransPose/blob/4963e71ae33c3ea5ac24fcc053015804e9705ad1/utils.py#L13 Thanks a lot.
Xinyu-Yi commented 1 year ago
  1. I just use the joint positions returned by the smpl model, rather than a nearby vertex position. The vertex positions are only used in synthesizing IMU acceleration for AMASS dataset. To supervise the training, I use joint positions.
  2. Transformation matrix rather than rotation matrix, i.e., you also need to minus the root position.
  3. Rotation matrix inverse times a column 3-vector equals the row 3-vector times the rotation matrix
  4. All non-root acceleration should minus the root acceleration, while the root acceleration keep unchanged.
Jaceyxy commented 1 year ago

@wdanc Hello, may I know how you get the joint position information from smpl model? If possible,could you attach the relevant code. Thank you very much

wdanc commented 1 year ago
  1. I just use the joint positions returned by the smpl model, rather than a nearby vertex position. The vertex positions are only used in synthesizing IMU acceleration for AMASS dataset. To supervise the training, I use joint positions.
  2. Transformation matrix rather than rotation matrix, i.e., you also need to minus the root position.
  3. Rotation matrix inverse times a column 3-vector equals the row 3-vector times the rotation matrix
  4. All non-root acceleration should minus the root acceleration, while the root acceleration keep unchanged.

sorry for my 4th question hhhh~~ Thx

wdanc commented 1 year ago

@wdanc Hello, may I know how you get the joint position information from smpl model? If possible,could you attach the relevant code. Thank you very much

https://github.com/Xinyu-Yi/TransPose/blob/4963e71ae33c3ea5ac24fcc053015804e9705ad1/preprocess.py#L75

In the preprocess.py line 75

Jaceyxy commented 1 year ago

@wdanc Hello, may I know how you get the joint position information from smpl model? If possible,could you attach the relevant code. Thank you very much

https://github.com/Xinyu-Yi/TransPose/blob/4963e71ae33c3ea5ac24fcc053015804e9705ad1/preprocess.py#L75

In the preprocess.py line 75

thank you very much!!

whl-007 commented 10 months ago

hi, apply the gt pose and tran on a smpl model to get the joint position in the global space, then transform it into the root space

你好,我想问问您这句话的意思是将imu的位置直接当成ground-truth中的一个关节的位置了吗,还是你假设你的imu固定在smpl皮肤上的一个位置,然后根据你imu的数据再推断出5个关节的位置呢?我以前想的是他们都转换到了一个统一的坐标系,现在感觉是假设已知imu的位置,然后直接放在了人体的SMPL坐标系中?那么我要是放置imu不稳定是会导致结果不好是吗?