Spaces:
Running
Running
import numpy as np | |
def _pad_image(image, stride=1, padvalue=0): | |
assert len(image.shape) == 2 or len(image.shape) == 3 | |
h, w = image.shape[:2] | |
pads = [None] * 4 | |
pads[0] = 0 # left | |
pads[1] = 0 # top | |
pads[2] = 0 if (w % stride == 0) else stride - (w % stride) # right | |
pads[3] = 0 if (h % stride == 0) else stride - (h % stride) # bottom | |
num_channels = 1 if len(image.shape) == 2 else image.shape[2] | |
image_padded = np.ones( | |
(h + pads[3], w + pads[2], num_channels), dtype=np.uint8) * padvalue | |
image_padded = np.squeeze(image_padded) | |
image_padded[:h, :w] = image | |
return image_padded, pads | |
def _get_keypoints(candidates, subsets): | |
k = subsets.shape[0] | |
keypoints = np.zeros((k, 18, 3), dtype=np.int32) | |
for i in range(k): | |
for j in range(18): | |
index = np.int32(subsets[i][j]) | |
if index != -1: | |
x, y = np.int32(candidates[index][:2]) | |
keypoints[i][j] = (x, y, 1) | |
return keypoints | |