Spaces:
Runtime error
Runtime error
| # This folder is modified from the https://github.com/Mikubill/sd-webui-controlnet | |
| # Openpose | |
| # Original from CMU https://github.com/CMU-Perceptual-Computing-Lab/openpose | |
| # 2nd Edited by https://github.com/Hzzone/pytorch-openpose | |
| # 3rd Edited by ControlNet | |
| # 4th Edited by ControlNet (added face and correct hands) | |
| import os | |
| os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE" | |
| import numpy as np | |
| import torch | |
| from . import util | |
| from .wholebody import Wholebody | |
| def draw_pose(poses, H, W): | |
| canvas = np.zeros(shape=(H, W, 3), dtype=np.uint8) | |
| for pose in poses: | |
| canvas = util.draw_bodypose(canvas, pose.body.keypoints) | |
| canvas = util.draw_handpose(canvas, pose.left_hand) | |
| canvas = util.draw_handpose(canvas, pose.right_hand) | |
| canvas = util.draw_facepose(canvas, pose.face) | |
| return canvas | |
| class DWposeDetector: | |
| def __init__(self, onnx_det, onnx_pose): | |
| self.pose_estimation = Wholebody(onnx_det, onnx_pose) | |
| def __call__(self, oriImg): | |
| oriImg = oriImg.copy() | |
| H, W, C = oriImg.shape | |
| with torch.no_grad(): | |
| keypoints_info = self.pose_estimation(oriImg) | |
| return draw_pose( | |
| Wholebody.format_result(keypoints_info), | |
| H, | |
| W, | |
| ) | |