基于两阶段蒸馏的高效全身姿态估计方法
DWPose是一种采用两阶 段知识蒸馏的全身姿态估计方法。该项目提供多个不同规模的模型,在COCO-WholeBody数据集上表现出色。DWPose可替代OpenPose用于ControlNet,提升图像生成质量。项目开源了模型及相关代码,支持ONNX推理,并可与Stable Diffusion WebUI集成。
<a href='https://arxiv.org/abs/2307.15880'><img src='https://img.shields.io/badge/ArXiv-2307.15880-red'></a>
<img src="https://yellow-cdn.veclightyear.com/ab5030c0/0cc74928-0061-4311-9a2d-b9dba3dfb50c.gif" style="height:200px" /> <img src="https://yellow-cdn.veclightyear.com/ab5030c0/bbae5543-1279-436b-92d3-88a05f196b49.gif" style="height:200px" />
<p>          DWPose                      DWPose + ControlNet (<i>提示词:钢铁侠</i>) </p> </div>本仓库是《基于两阶段蒸馏的高效全身姿态估计》(ICCV 2023,CV4Metaverse研讨会)的官方实现。我们的代码基于MMPose和ControlNet。
<p align="center"><img src="https://yellow-cdn.veclightyear.com/ab5030c0/dc8b4e36-ff0b-4182-bb12-5d1ed66c88aa.jpg" width="650px"/>⚔️ 我们发布了一系列名为DWPose的模型,从小到大,用于人体全身姿态估计。此外,我们还用DWPose替换了ControlNet中的Openpose,获得了更好的生成图像。
2023/12/03
:DWPose支持一致且可控的图像到视频合成用于角色动画。
2023/08/17
:我们的论文《基于两阶段蒸馏的高效全身姿态估计》被ICCV 2023 CV4Metaverse研讨会接收。🎉 🎉 🎉
2023/08/09
:现在您可以在sd-webui-controlnet中尝试DWPose了!只需将sd-webui-controlnet更新至 >= v1.1237版本,然后选择dw_openpose_full作为预处理器。
2023/08/09
:我们支持使用cv2运行onnx模型。您可以避免安装onnxruntime。请查看opencv_onnx分支。
2023/08/07
:我们将所有DWPose模型上传到了huggingface。现在,您可以从百度网盘、谷歌云盘和huggingface下载它们。
2023/08/07
:我们发布了一个新的带有onnx的DWPose。通过这种方式,您可以避免安装mmcv。请查看onnx分支。
请参阅安装说明。该分支使用onnx。您可以在不安装mmcv的情况下尝试用于ControlNet的DWPose。
在COCO-WholeBody v1.0验证集上的结果,使用的检测器在COCO val2017数据集上的人体AP为56.4
架构 | 输入尺寸 | FLOPS (G) | 身体AP | 脚部AP | 面部AP | 手部AP | 整体AP | 百度网盘链接 | 谷歌云盘链接 |
---|---|---|---|---|---|---|---|---|---|
DWPose-t | 256x192 | 0.5 | 0.585 | 0.465 | 0.735 | 0.357 | 0.485 | 百度网盘 | 谷歌云盘 |
DWPose-s | 256x192 | 0.9 | 0.633 | 0.533 | 0.776 | 0.427 | 0.538 | 百度网盘 | 谷歌云盘 |
DWPose-m | 256x192 | 2.2 | 0.685 | 0.636 | 0.828 | 0.527 | 0.606 | 百度网盘 | 谷歌云盘 |
DWPose-l | 256x192 | 4.5 | 0.704 | 0.662 | 0.843 | 0.566 | 0.631 | 百度网盘 | 谷歌云盘 |
DWPose-l | 384x288 | 10.1 | 0.722 | 0.704 | 0.887 | 0.621 | 0.665 | 百度网盘 | 谷歌云盘 |
首先,你需要下载我们的姿态模型dw-ll_ucoco_384.onnx(百度网盘,谷歌云盘)和检测模型yolox_l.onnx(百度网盘,谷歌云盘),然后将它们放入ControlNet-v1-1-nightly/annotator/ckpts目录。之后你就可以使用DWPose生成你喜欢的图像了。
cd ControlNet-v1-1-nightly
python gradio_dw_open_pose.py
cd ControlNet-v1-1-nightly
python dwpose_infer_example.py
注意:请根据你的文件更改图像路径和输出路径。
在mmpose/data/coco准备COCO数据集,在mmpose/data/UBody准备UBody数据集。
UBody需要转换为图像格式。别忘了。
cd mmpose
python video2image.py
如果你想在UBody上评估模型
# 在UBody的注释中添加类别
cd mmpose
python add_cat.py
cd mmpose
bash tools/dist_train.sh configs/distiller/ubody/s1_dis/rtmpose_x_dis_l__coco-ubody-256x192.py 8
cd mmpose
bash tools/dist_train.sh configs/distiller/ubody/s2_dis/dwpose_l-ll__coco-ubody-256x192.py 8
cd mmpose
# 如果是第一阶段蒸馏
python pth_transfer.py $dis_ckpt $new_pose_ckpt
# 如果是第二阶段蒸馏
python pth_transfer.py $dis_ckpt $new_pose_ckpt --two_dis
# 在UBody上测试
bash tools/dist_test.sh configs/wholebody_2d_keypoint/rtmpose/ubody/rtmpose-l_8xb64-270e_ubody-wholebody-256x192.py $pose_ckpt 8
# 在COCO上测试
bash tools/dist_test.sh configs/wholebody_2d_keypoint/rtmpose/ubody/rtmpose-l_8xb64-270e_coco-ubody-wholebody-256x192.py $pose_ckpt 8
@inproceedings{yang2023effective,
title={Effective whole-body pose estimation with two-stages distillation},
author={Yang, Zhendong and Zeng, Ailing and Yuan, Chun and Li, Yu},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={4210--4220},
year={2023}
}
我们的代码基于MMPose和ControlNet。
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效 率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。