Xinyu-Yi/PIP

wrong posture?

Closed this issue · 6 comments

hi,作者您好!感谢您的研究,在使用自己的imu进行测试时,发现手部imu只能驱动手腕而无法驱动肘部和肩膀,而在您的上一篇transpose中是正常的。这是什么原因导致的呢?由于init_pose是24个节点,我将dipimu的init_pose作为我的init_pose,6个对应部位imu的实时oris和acc作为输入。下面是full_joint的可视化,发现在rnn输出时已经存在这个问题。期待您的答复
Screenshot from 2022-07-26 16-18-05

图是第一帧的full_joint可视化,这在transpose中呈现的是T-pose姿态,在pip中是肘部内锁的姿态

因为我们需要做T-pose calibration,应该使用T-pose的关节坐标作为初始化。速度初始化成0。并且T-pose calibration结束就马上开始跟踪。但是实际上这个初始化只会影响最开始几帧的精度,根据我的经验用这个A-pose也不会有太大影响,你得看看是不是其他地方出错了

我部分解决了这个问题,code里面的predict代码batch-size是若干,一次运行。而实时imu的batchsize是1,每帧运行一次预测,将输入的initpose换成上一帧的输出pose能解决,但是姿态还是有很大问题。换一个问题:每次预测都只有一帧的情况下,初始pose是否就是上一帧的pose?请问会放单帧实时预测的代码吗?

我这边也有根节点转圈圈的问题

那个代码是一次算一个序列的,你需要自己写一次传一帧的,把rnn输出的hidden states和cell states读出来,传给下一帧。初始化的mlp网络只需要第一次用,后面不用

已经解决了,实时效果很不错,感谢作者回复~