PARE: 3D人体估计的部位注意力回归器 [ICCV 2021]
PARE: 3D人体估计的部位注意力回归器,
Muhammed Kocabas, Chun-Hao Paul Huang, Otmar Hilliges Michael J. Black,
国际计算机视觉会议 (ICCV), 2021
特点
PARE是一种对遮挡稳健的人体姿态和形状估计方法。该实现包括使用PyTorch实现的PARE演示和评估代码。
更新
- 2021年10月13日:发布演示和评估代码。
开始使用
PARE在Ubuntu 18.04上使用python >= 3.7进行了实现和测试。如果您没有合适的设备,请尝试运行我们的Colab演示。
克隆仓库:
git clone https://github.com/mkocabas/PARE.git
使用virtualenv或conda安装依赖项:
# pip
source scripts/install_pip.sh
# conda
source scripts/install_conda.sh
演示
首先,您需要下载所需的数据(即我们训练好的模型和SMPL模型参数)。大约1.3GB。要执行此操作,只需运行:
source scripts/prepare_data.sh
视频演示
运行以下命令。有关更多选项,请参见scripts/demo.py
。
python scripts/demo.py --vid_file data/sample_video.mp4 --output_folder logs/demo
示例演示输出:
图像文件夹演示
python scripts/demo.py --image_folder <图像文件夹路径> --output_folder logs/demo
输出格式
如果演示成功完成,它会在--output_folder
中创建一个名为pare_output.pkl
的文件。
我们可以通过以下方式检查该文件的内容:
>>> import joblib # 您也可以在此处使用原生pickle
>>> output = joblib.load('pare_output.pkl')
>>> print(output.keys())
dict_keys([1, 2, 3, 4]) # 这些是视频中出现的每个主体的跟踪ID
>>> for k,v in output[1].items(): print(k,v.shape)
pred_cam (n_frames, 3) # 裁剪图像空间中的弱透视相机参数 (s,tx,ty)
orig_cam (n_frames, 4) # 原始图像空间中的弱透视相机参数 (sx,sy,tx,ty)
verts (n_frames, 6890, 3) # SMPL网格顶点
pose (n_frames, 72) # SMPL姿态参数
betas (n_frames, 10) # SMPL身体形状参数
joints3d (n_frames, 49, 3) # SMPL 3D关节
joints2d (n_frames, 21, 3) # 如果启用姿态跟踪,则为STAF检测的2D关键点,否则为None
bboxes (n_frames, 4) # 边界框检测 (cx,cy,w,h)
frame_ids (n_frames,) # 跟踪ID为#1的主体出现的帧ID
smpl_joints2d (n_frames, 49, 2) # SMPL 2D关节
Google Colab
训练
训练说明将很快发布。
评估
在运行评估脚本之前,您需要下载3DPW
和3DOH
数据集。下载后,data
文件夹应如下所示:
data/
├── body_models
│ └── smpl
├── dataset_extras
├── dataset_folders
│ ├── 3doh
│ └── 3dpw
└── pare
└── checkpoints
然后,您可以通过运行以下命令评估PARE:
python scripts/eval.py \
--cfg data/pare/checkpoints/pare_config.yaml \
--opts DATASET.VAL_DS 3doh_3dpw-all
python scripts/eval.py \
--cfg data/pare/checkpoints/pare_w_3dpw_config.yaml \
--opts DATASET.VAL_DS 3doh_3dpw-all
您应该在3DPW测试集上获得这个表格中的结果:
MPJPE | PAMPJPE | V2V | |
---|---|---|---|
PARE | 82 | 50.9 | 97.9 |
PARE (w. 3DPW) | 74.5 | 46.5 | 88.6 |
遮挡敏感性分析
我们准备了一个脚本来运行论文中提出的遮挡敏感性分析。遮挡敏感性分析在图像上滑动一个遮挡块,并可视化人体姿态和形状估计结果如何受到影响。
python scripts/occlusion_analysis.py \
--cfg data/pare/checkpoints/pare_config.yaml \
--ckpt data/pare/checkpoints/pare_checkpoint.ckpt
示例遮挡测试输出:
引用
@inproceedings{Kocabas_PARE_2021,
title = {{PARE}: Part Attention Regressor for {3D} Human Body Estimation},
author = {Kocabas, Muhammed and Huang, Chun-Hao P. and Hilliges, Otmar and Black, Michael J.},
booktitle = {Proc. International Conference on Computer Vision (ICCV)},
pages = {11127--11137},
month = oct,
year = {2021},
doi = {},
month_numeric = {10}
}
许可证
此代码可用于非商业科研目的,如LICENSE文件中所定义。通过下载和使用此代码,您同意LICENSE中的条款。第三方数据集和软件受各自的许可证约束。
参考
我们在每个文件中指出是否从外部借用了函数或脚本。如果您在项目中使用它们,请考虑引用这些作品。
联系
如有问题,请联系pare@tue.mpg.de
有关商业许可(以及与商业应用相关的所有问题),请联系ps-licensing@tue.mpg.de。