def __call__(self, results): image_size = results['ann_info']['image_size'] img = results['img'] joints_3d = results['joints_3d'] joints_3d_visible = results['joints_3d_visible'] c = results['center'] s = results['scale'] r = results['rotation'] if self.use_udp: trans = get_warp_matrix(r, c * 2.0, image_size - 1.0, s * 200.0) img = cv2.warpAffine( img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) joints_3d[:, 0:2] = \ warp_affine_joints(joints_3d[:, 0:2].copy(), trans) else: trans = get_affine_transform(c, s, r, image_size) img = cv2.warpAffine( img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) for i in range(results['ann_info']['num_joints']): if joints_3d_visible[i, 0] > 0.0: joints_3d[i, 0:2] = affine_transform(joints_3d[i, 0:2], trans) results['img'] = img results['joints_3d'] = joints_3d results['joints_3d_visible'] = joints_3d_visible return results
def __call__(self, results): image_size = results['ann_info']['image_size'] img = results['img'] joints_3d = results['joints_3d'] joints_3d_visible = results['joints_3d_visible'] c = results['center'] s = results['scale'] r = results['rotation'] trans = get_affine_transform(c, s, r, image_size) img = cv2.warpAffine( img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) for i in range(results['ann_info']['num_joints']): if joints_3d_visible[i, 0] > 0.0: joints_3d[i, 0:2] = affine_transform(joints_3d[i, 0:2], trans) results['img'] = img results['joints_3d'] = joints_3d results['joints_3d_visible'] = joints_3d_visible return results
def __call__(self, results): """Perform random affine transformation to joints coordinates.""" c = results['center'] s = results['scale'] / 200.0 r = results['rotation'] image_size = results['ann_info']['image_size'] assert self.item in results joints = results[self.item] if self.visible_item is not None: assert self.visible_item in results joints_vis = results[self.visible_item] else: joints_vis = [np.ones_like(joints[0]) for _ in range(len(joints))] trans = get_affine_transform(c, s, r, image_size) nposes = len(joints) for n in range(nposes): for i in range(len(joints[0])): if joints_vis[n][i, 0] > 0.0: joints[n][i, 0:2] = affine_transform(joints[n][i, 0:2], trans) if (np.min(joints[n][i, :2]) < 0 or joints[n][i, 0] >= image_size[0] or joints[n][i, 1] >= image_size[1]): joints_vis[n][i, :] = 0 results[self.item] = joints if self.visible_item is not None: results[self.visible_item] = joints_vis return results
def __call__(self, results): image_size = results['ann_info']['image_size'] img = results['img'] joints_2d = results['joints_2d'] joints_2d_visible = results['joints_2d_visible'] joints_3d = results['joints_3d'] pose = results['pose'] c = results['center'] s = results['scale'] r = results['rotation'] trans = get_affine_transform(c, s, r, image_size) img = cv2.warpAffine(img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) for i in range(results['ann_info']['num_joints']): if joints_2d_visible[i, 0] > 0.0: joints_2d[i] = affine_transform(joints_2d[i], trans) joints_3d = _rotate_joints_3d(joints_3d, r) pose = _rotate_smpl_pose(pose, r) results['img'] = img results['joints_2d'] = joints_2d results['joints_2d_visible'] = joints_2d_visible results['joints_3d'] = joints_3d results['pose'] = pose if 'iuv' in results.keys(): iuv = results['iuv'] if iuv is not None: iuv_size = results['ann_info']['iuv_size'] iuv = cv2.warpAffine(iuv, trans, (int(iuv_size[0]), int(iuv_size[1])), flags=cv2.INTER_NEAREST) results['iuv'] = iuv return results
def __call__(self, results): image_size = results['ann_info']['image_size'] img = results['img'] joints_3d = results['joints_3d'] joints_3d_visible = results['joints_3d_visible'] c = results['center'] s = results['scale'] r = results['rotation'] if self.use_udp: trans = get_warp_matrix(r, c * 2.0, image_size - 1.0, s * 200.0) img = cv2.warpAffine( img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) joints_3d[:, 0:2] = \ warp_affine_joints(joints_3d[:, 0:2].copy(), trans) else: trans = get_affine_transform(c, s, r, image_size) img = cv2.warpAffine( img, trans, (int(image_size[0]), int(image_size[1])), flags=cv2.INTER_LINEAR) for i in range(results['ann_info']['num_joints']): if joints_3d_visible[i, 0] > 0.0: joints_3d[i, 0:2] = affine_transform(joints_3d[i, 0:2], trans) # print('save image') # im_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # cv2.imwrite('ori_images/cropped_image'+str(c[0])+'.jpg', im_rgb) #time.sleep(3) results['img'] = img results['joints_3d'] = joints_3d results['joints_3d_visible'] = joints_3d_visible return results