Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

代码与原论文有所出入 #207

Open
zzzark opened this issue Aug 5, 2022 · 3 comments
Open

代码与原论文有所出入 #207

zzzark opened this issue Aug 5, 2022 · 3 comments

Comments

@zzzark
Copy link

zzzark commented Aug 5, 2022

@PeizhuoLi 您好!关于end-effectors的loss,源代码实现方式为:
https://github.com/DeepMotionEditing/deep-motion-editing/blob/master/retargeting/models/architecture.py#L116
ee = get_ee(pos, self.dataset.joint_topologies[i], self.dataset.ee_ids[i], velo=self.args.ee_velo, from_root=self.args.ee_from_root) height = self.models[i].height[offset_idx] height = height.reshape((height.shape[0], 1, height.shape[1], 1)) ee /= height
其中height为 “左脚---左手” 这一条路径长度。
然而,论文中关于 End-Effectors Loss 部分如下:
hAe, hBe are the lengths of the kinematic chains from the root to the end-effector e, in each of the skeletons SA and SB.
描述的是 “根节点---端点” 的路径,与代码有出入,不知我的理解是否有误,还望解答,感谢!

@PeizhuoLi
Copy link
Collaborator

你好,height应该是“左脚--头”这一路径的长度,即身高的定义。你所提到论文中这句话对应的实现是在get_ee函数中,代码是与论文中说法一致的。

这里height只是将其大小根据角色身高归一化,以免不同高度的角色会有不同大小量度的ee_loss从而影响训练。

希望有所帮助!

@zzzark
Copy link
Author

zzzark commented Sep 7, 2022

你好,height应该是“左脚--头”这一路径的长度,即身高的定义。你所提到论文中这句话对应的实现是在get_ee函数中,代码是与论文中说法一致的。

这里height只是将其大小根据角色身高归一化,以免不同高度的角色会有不同大小量度的ee_loss从而影响训练。

希望有所帮助!

@PeizhuoLi 您好,非常感谢您耐心的回复!
height 是“左脚--头”这一路径的长度,而不是“左脚---左手”,这是我的疏忽。

关于 get_ee 函数,我个人的理解如下:
Snipaste_2022-09-07_16-34-42

也就是 get_ee 函数里面并没有实现各个 end-effectors 除以 “根节点--左手”、“根节点--右手”、“根节点--左脚”、“根节点--右脚”、“根节点--头部”,只是返回了各个 end-effectors 在世界坐标系中的速度。

因此,符合论文的伪代码应该如下:

Snipaste_2022-09-07_16-56-50

如果以上有任何错误的地方,还请指出,感谢~

@PeizhuoLi
Copy link
Collaborator

您好,抱歉一开始没理解具体的问题。您提到的伪代码是正确的写法。论文中提到的hAe/hBe主要是为了一些特殊情况(如高度非对称,图12)设计的。在release的版本中的确没有包含使用hAe和hBe进行normalize的代码,而是简化的使用高度进行normalize。只使用高度进行normalize的好处是可以让减少模型对lambda ee的敏感度。希望能解决疑惑。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants