def preprocess_image(img_path, img_size): img = io.imread(img_path) if np.max(img.shape[:2]) != img_size: # print('Resizing so the max image size is %d..' % img_size) scale = (float(img_size) / np.max(img.shape[:2])) else: scale = 1.0 #scaling_factor center = np.round(np.array(img.shape[:2]) / 2).astype(int) # image center in (x,y) center = center[::-1] crop, proc_param = img_util.scale_and_crop(img, scale, center, img_size) # import ipdb; ipdb.set_trace() # Normalize image to [-1, 1] # plt.imshow(crop/255.0) # plt.show() crop = 2 * ((crop / 255.) - 0.5) return crop, proc_param, img
def __call__(self, sample): imgs_to_be_processed = sample['images'] imgs_to_be_returned = [] faceposes_to_be_returned = [] img_shapes = [] scales = [] # the 224 / the actual size of img, 2 x 1 centers = [] # the center of the picture for img_facepos in imgs_to_be_processed: img = img_facepos['image'] if np.max(img.shape[:2]) != self.config_img_size: # print('Resizing so the max image size is %d..' % self.config_img_size) scale = (float(self.config_img_size) / np.max(img.shape[:2])) else: scale = 1.0 #scaling_factor center = np.round(np.array(img.shape[:2]) / 2).astype(int) # image center in (x,y) center = center[::-1] crop, proc_param = img_util.scale_and_crop(img, scale, center, self.config_img_size) # import ipdb; ipdb.set_trace() # Normalize image to [-1, 1] # plt.imshow(crop/255.0) # plt.show() crop = 2 * ((crop / 255.) - 0.5) single_facepos = img_facepos['openpose'] # single_facepos *= scale faceposes_to_be_returned.append(single_facepos) imgs_to_be_returned.append(crop) img_shapes.append( np.array([[float(img.shape[0]), 0.], [0., float(img.shape[1])]])) scales.append(scale) centers.append(center) return { 'images': imgs_to_be_returned, 'faceposes': faceposes_to_be_returned, 'shape': img_shapes, 'scale': scales, 'centers': centers }
# read images and scale #input_img_path = "./training_set/NoW_Dataset/final_release_version/iphone_pictures/FaMoS_180424_03335_TA/multiview_neutral/IMG_0101.jpg" #input_img_path = "./training_set/NoW_Dataset/final_release_version/iphone_pictures/FaMoS_180704_03355_TA/multiview_expressions/IMG_1948.jpg" input_img_path = "./training_set/NoW_Dataset/final_release_version/iphone_pictures/FaMoS_180427_03338_TA/multiview_expressions/IMG_0230.jpg" #input_img_path = "./training_set/NoW_Dataset/final_release_version/iphone_pictures/FaMoS_180502_00145_TA/multiview_expressions/IMG_0407.jpg" openpose = np.load(input_img_path.replace("iphone_pictures", "openpose").replace("jpg", "npy"), allow_pickle=True, encoding='latin1') img = io.imread(input_img_path) if np.max(img.shape[:2]) != config_img_size: # print('Resizing so the max image size is %d..' % self.config_img_size) scale = (float(config_img_size) / np.max(img.shape[:2])) else: scale = 1.0#scaling_factor center = np.round(np.array(img.shape[:2]) / 2).astype(int) # image center in (x,y) center = center[::-1] crop, proc_param = img_util.scale_and_crop( img, scale, center, config_img_size) print(proc_param) #exit(0) crop = torch.tensor(crop) crop = crop.permute(2, 0, 1) crop = crop[None, :, :, :].float().cuda() # print(crop) # build model resnet50 = torch.load("./good_resnet50.pkl") resnet50.cuda() resnet50.fc = Identity() # print(resnet50) regression = torch.load("./good_model.pkl") regression.cuda()