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

Sensor Calibration #5

Closed trikpachu closed 2 years ago

trikpachu commented 2 years ago

Hi Xinyu-Yi,

Thank you for sharing the code. Maybe I missed it, but I couldn't figure out where in the code you actually do the Calibration stated in section A 1. in the paper. For example the Raw DIP-IMU data is uncalibrated, but you just adapt it for NaN values and the npass it to the network after normalization. But nevertheless I obtain the same results as in the paper. Why do you not do the calibration in here?

Also would it be possible to share the training routines, so that we can reproduce your results from scratch? The latter might be also in your interest as I will list your method as a comparison in a coming paper, and in best case I plug and play your method with my Input to have the fairest comparison.

Thank you in advance

Xinyu-Yi commented 2 years ago

Hi,

The raw DIP-IMU dataset is already calibrated, so we don't need to perform calibration.

I'm too busy to collect the training code for release. And it shouldn't be difficult to implement the training part.

trikpachu commented 2 years ago

Hi,

Damn, thank you. I missed that it was already calibrated as I used the processed version until now. If it is available I would also take dirty code. I am not afraid of the difficulty of the routine, but that maybe you used some tricks not clearly described in the paper or just different implementations from which I will use. But also will I start training soon once my synthesis of training data is complete and then I can come back to you if I obtain different results then expected, if that would be ok?

I am concerned, as I know from experience using tensorflow layers of different versions, that this can notably affect results. So please do not be annoyed by my concerns :)

Xinyu-Yi commented 2 years ago

It will be very easy to get similar results in the paper if you first estimate joint positions and then 6d rotations. You can implement the pipeline yourself and if there's any problem just ask me:)

trikpachu commented 2 years ago

Hey everything is running fine so far, but please clarify two things for me: I think there is an error in the paper in equation 8 for L_vel: the second sum should start at t=m*n, not at t=m, right? And as this is possible with different levels of sophistication: How did you obtain the Ground Truth for ground contact probability?

Xinyu-Yi commented 2 years ago

Yes, equation 8 is wrong. It should start at t=m*n. Thanks very much! The ground truth for contact states is just 0 or 1. We train the network using BCE loss.

trikpachu commented 2 years ago

Yes I figured that, but to obtain the ground truth from the data what do you do? The most simple way is assigning the lowest foot as 1 and the other as 0, another approach might be to look at velocities (still or most still foot would be 1), or at a certain threshold distance to ground level. And additionally I assume that always only one foot had ground truth contact probability of 1, even when standing still?

trikpachu commented 2 years ago

Nevermind my stupidity, it is written in your paper.