PyTorch的MANO层(使用v0.4和v1.x进行测试)
ManoLayer是一个可微分的PyTorch层,可以确定地从姿势和形状参数映射到手部关节和顶点。 它可以作为可微分层集成到任何架构中以预测手部网格。
项目地址:(点击本链接可直接访问)
https://github.com/hassony2/manopth
(致谢:感谢读者@朱小鹏 提供的工具 GitHub Trending Hub,现在可以直接在微信打开Github链接啦)
ManoLayer采用批量手部姿势和形状矢量并输出相应的手部关节和顶点。
代码主要是原始 MANO 模型从chumpy到 PyTorch的PyTorch端口。因此,它直接建立在Javier Romero,Dimitrios Tzionas和Michael J. Black的工作之上。
ManoLayer被开发并用于CVPR19的论文《学习手部和被操纵物体的关节重建》。可查看即将推出的代码。
如果你觉得本项目对你的研究有用,可以考虑引用:
原版 MANO 文献:
SIGGRAPHASIA:2017, :
title = {Embodied Hands: Modeling and Capturing Hands and Bodies Together},
author = {Romero, Javier and Tzionas, Dimitrios and Black, Michael J.},
journal = {ACM Transactions on Graphics, (Proc. SIGGRAPH Asia)},
publisher = {ACM},
month = nov,
year = {2017},
url = {http://doi.acm.org/10.1145/3130800.3130883},
month_numeric = {11}
}
出版这个PyTorch端口是为了:
@INPROCEEDINGS{hasson19_obman,
title = {Learning joint reconstruction of hands and manipulated objects},
author = {Hasson, Yana and Varol, G{\"u}l and Tzionas, Dimitris and Kalevatykh, Igor and Black, Michael J. and Laptev, Ivan and Schmid, Cordelia},
booktitle = {CVPR},
year = {2019}
}
安装 environment.yml 里列出的依赖库
在现有的conda环境中,请输入:conda env update -f environment.yml
在一个全新的环境中,请输入:conda env create -f environment.yml ,将会创建一个 manopth 的conda环境
前往MANO的网站
点击“Sign Up(注册)”创建帐户并提供你的相关信息
下载模型和代码(下载的文件应该是 mano_v*_*.zip 格式)。 请注意,此下载中的所有代码和数据均归MANO许可。
将models 文件夹解压并复制到 manopth/mano 文件夹中
你的文件结构应该是这样的:
manopth/
mano/
models/
MANO_LEFT.pkl
MANO_RIGHT.pkl
...
manopth/
__init__.py
...
查看是否都就绪完毕,可以运行:python manopth/manopth_mindemo.py ,运行后会调用MANO层随机生成一个手部数据。
作为本地包安装以后,你能够在另一个项目中导入和使用ManoLayer
现在,你可以在另一个项目中使用:from manopth import ManoLayer 啦
查看 manopth_mindemo.py
通过MANO层简单地向前传递手部的随机姿势和形状参数
结果如下:
Demo具有更多选项,前向和后向传递,以及用于快速分析的循环,输入以下指令查看:
python manopth_demo.py
点击阅读原文,查看划线部分链接内容