Spaces:
Paused
Paused
| import json | |
| import os | |
| import cv2 | |
| import torch | |
| import sys | |
| from Detected import Image_Processor | |
| from Datasets_BFDF import get_dataloader | |
| import numpy as np | |
| mask_model = "MODEL/pose2seg_release.pkl" | |
| keypoints_model = "COCO-Keypoints/keypoint_rcnn_R_101_FPN_3x.yaml" | |
| P = Image_Processor(mask_model, keypoints_model) | |
| DEVICE = torch.device("cuda:2") | |
| BATCH_SIZE = 64 | |
| Path = os.path.join('bodyfeature', 'BodyFeature_imagenet.json') | |
| BodyFeature = {} | |
| cnt = 1 | |
| loader_train, loader_val, loader_test = get_dataloader(None, dataset='Ours') | |
| loaders = [loader_val, loader_test, loader_train] | |
| for loader in loaders: | |
| for (data, name, img_name, sex, age, height, weight), target in loader: | |
| values = {} | |
| data = data.to(DEVICE) | |
| cnt += 1 | |
| img_e = cv2.imread(name[0]) | |
| print('Handling the %d pic %s' % (cnt, img_name[0])) | |
| try: | |
| F = P.Process(img_e) | |
| except: | |
| print("Can't Handle this pic!") | |
| continue | |
| # print(type(F.WSR)) | |
| values['WSR'] = float(F.WSR) | |
| values['WTR'] = float(F.WTR) | |
| values['WHpR'] = float(F.WHpR) | |
| values['WHdR'] = float(F.WHdR) | |
| values['HpHdR'] = float(F.HpHdR) | |
| values['Area'] = float(F.Area) | |
| values['H2W'] = float(F.H2W) | |
| values['Age'] = float(age.numpy()[0]) | |
| values['Height'] = float(height.numpy()[0]) | |
| values['Weight'] = float(weight.numpy()[0]) | |
| values['BMI'] = float(target.numpy()[0]) | |
| values['Sex'] = int(sex.numpy()[0]) | |
| BodyFeature[img_name[0]] = values | |
| json_str = json.dumps(BodyFeature) | |
| with open(Path, 'w') as json_file: | |
| json_file.write(json_str) | |