def __init__(self): parser = argparse.ArgumentParser( description='PyTorch hand pose Training') args = parser.parse_args() '''user setting''' args.gpu_ids = '0' args.use_net = ['hpe1_orig', 'hpe2'] #hpe1_orig, hig, hpe1, hpe2 forward_list = ['hpe1_orig', 'hpe2'] #hpe1_orig, hig_hpe1, hpe2 trained_modelFile_hpe1_orig = basedir + '..\\HPE\\output\\2020_2_26_11_29\\trainedModel_epoch99.pth.tar' trained_modelFile_hpe2 = basedir + '..\\HPE2\\output\\2020_4_10_18_46\\trainedModel_epoch99.pth.tar' '''common setting''' out_list = {} args.train_net = [] args.cgan = True args.is_train = False args.gan_mode = 'vanilla' args.trainImageSize = 128 trainImageSize = 128 args.skeleton_pca_dim = 52 args.skeleton_orig_dim = 63 args.discriminator_reconstruction = False args.test_batch = 1 hpe_numBlocks = 5 #device #device = torch.device(torch.device("cuda:%s"%args.gpu_ids if torch.cuda.is_available() else "cpu") device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") args.device = device cudnn.benchmark = True #--HPE_orig net setting if 'hpe1_orig' in args.use_net: if not 'hpe1_orig' in locals(): hpe1_orig = dpnet(args.skeleton_pca_dim, hpe_numBlocks, device) checkpoint = torch.load( trained_modelFile_hpe1_orig, map_location=lambda storage, loc: storage) hpe1_orig.load_state_dict(checkpoint['state_dict']) #--HPE2 net setting if 'hpe2' in args.use_net: if not 'hpe2' in locals(): hpe2 = dpnet(args.skeleton_pca_dim, hpe_numBlocks, device) checkpoint = torch.load( trained_modelFile_hpe2, map_location=lambda storage, loc: storage) hpe2.load_state_dict(checkpoint['state_dict_hpe2']) with open(basedir + '..\\pca_52_by_957032_augmented_X2.pickle', 'rb') as f: self.pca = pickle.load(f) #--fusion net setting #fusionnet=FusionNet(hpe1_orig,pix2pix,hpe1,hpe2,None,args) fl = [] if 'hpe1_orig' in locals(): fl.append(hpe1_orig) else: fl.append(None) if 'pix2pix' in locals(): fl.append(pix2pix) else: fl.append(None) if 'hpe1' in locals(): fl.append(hpe1) else: fl.append(None) if 'hpe2' in locals(): fl.append(hpe2) else: fl.append(None) fusionnet = FusionNet(fl[0], fl[1], fl[2], fl[3], None, args) self.fusionnet = fusionnet.to(device) #--dataset of uvr (for utils) camera_info = {} camera_info['fx'] = 475.065948 camera_info['fy'] = 475.065857 camera_info['cx'] = 315.944855 camera_info['cy'] = 245.287079 camera_info['camerawidth'] = 640 camera_info['cameraheight'] = 480 camera_info['cube'] = np.asarray([250, 250, 250]) camera_info['trainImageSize'] = 128 self.trainImageSize = camera_info['trainImageSize'] self.cube = camera_info['cube'] camerawidth = camera_info['camerawidth'] cameraheight = camera_info['cameraheight'] jointnum = 21 d_maximum = 500 self.datasetloader_uvr = datasetloader_UVR('..', 0, camera_info, '..', '..') self.utils = self.datasetloader_uvr.utils #--start self.fusionnet.set_mode('eval') self.ir_batch = np.zeros( (1, 1, args.trainImageSize, args.trainImageSize), dtype=np.float32) self.depth_batch = np.zeros( (1, 1, args.trainImageSize, args.trainImageSize), dtype=np.float32)
camera_info['cameraheight']=240 elif dataset_version=='v2': camera_info['fx']=475.065948 camera_info['fy']=475.065857 camera_info['cx']=315.944855 camera_info['cy']=245.287079 camera_info['camerawidth']=640 camera_info['cameraheight']=480 camera_info['cube']=np.asarray([250,250,250]) camera_info['trainImageSize']=128 trainImageSize=camera_info['trainImageSize'] cube=camera_info['cube'] utils=Utils(camera_info) imgs_train=np.zeros((trainImageSize,2*trainImageSize),'float32') datasetloader_uvr=datasetloader_UVR('..',0,camera_info,'..','..') dataset_dict={} dataset_dict['com']=[] dataset_dict['window']=[] #--start progressbar=trange(frame_start,data_num//thread_num,leave=True) for g in progressbar: with Manager() as manager: Mobj=manager.list([0 for x in range(thread_num)]) MpList=[] depth_train_bag=[] window_bag=[] com_bag=[]
camera_info['fy'] = 475.065857 camera_info['cx'] = 315.944855 camera_info['cy'] = 245.287079 camera_info['camerawidth'] = 640 camera_info['cameraheight'] = 480 camera_info['cube'] = np.asarray([250, 250, 250]) camera_info['trainImageSize'] = 128 trainImageSize = camera_info['trainImageSize'] cube = camera_info['cube'] utils = Utils(camera_info) imgs_train = np.zeros((trainImageSize, 2 * trainImageSize), 'float32') #--dataset of uvr datasetloader_uvr = datasetloader_UVR('..', data_num, camera_info, 'test', 'generator') #--start ground2d = {} for frame in range(data_num): depth = cv2.imread(load_filepath_img + 'depth%d.png' % frame, 2) ir = cv2.imread(load_filepath_img + 'ir%d.png' % frame, 2) depth_seg = depth.copy() depth_seg[depth_seg > d_maximum] = 0 # preprocess (depth) depth_train, depth_crop, com, window = datasetloader_uvr.preprocess_depth( depth_seg, trainImageSize, cube) # preprocess (ir)
trainImageSize = camera_info['trainImageSize'] cube = camera_info['cube'] #--number of datasets traindataNum_uvr = 175000 #170000 traindataNum_blur_uvr = 0 traindataNum_vr20 = 0 #vr dataset (slow motion): 215 validateNum = 10000 validateNum_vr20 = 0 #vr test dataset: 2370 #--dataset of uvr dataset_path_uvr = '/home/yong/ssd/dataset/preprocessed_HIG/' datasetloader_uvr = {} datasetloader_uvr['train'] = datasetloader_UVR(dataset_path_uvr, traindataNum_uvr, camera_info, 'train', 'generator') datasetloader_uvr['train_blur'] = datasetloader_UVR( dataset_path_uvr, traindataNum_blur_uvr, camera_info, 'train_blur', 'generator') datasetloader_uvr['train'].set_datasetLoader(args.train_batch) datasetloader_uvr['train_blur'].set_datasetLoader(args.train_batch) #--dataset of VR20 camera_info_vr20 = {} camera_info_vr20['fx'] = 475.065948 / 2 camera_info_vr20['fy'] = 475.065857 / 2 camera_info_vr20['cx'] = 315.944855 / 2 camera_info_vr20['cy'] = 245.287079 / 2 camera_info_vr20['camerawidth'] = int(640 / 2)
hpe.load_state_dict(checkpoint['state_dict_hpe1']) hpe.eval() img_hpe = np.zeros((1,1,trainImageSize,trainImageSize), dtype = np.float32) with open(basedir+'..\\pca_52_by_957032_augmented_X2.pickle','rb') as f: pca=pickle.load(f) ##--init realsense--## if input_type=='sr300': realsense=Realsense() ##--dataset--## jointnum=21 datasetloader_uvr={} datasetloader_uvr['train']=datasetloader_UVR(load_filepath_preprocess,data_num,camera_info,'train','generator') datasetloader_uvr['train'].set_datasetLoader(args.test_batch) datasetloader_uvr['train_blur']=datasetloader_UVR(load_filepath_preprocess,data_num,camera_info,'train_blur','generator') datasetloader_uvr['train_blur'].set_datasetLoader(args.test_batch) datasetloader_uvr['test']=datasetloader_UVR(load_filepath_preprocess,data_num,camera_info,'test','generator') datasetloader_uvr['test'].set_datasetLoader(args.test_batch) datasetloader_uvr['test_blur']=datasetloader_UVR(load_filepath_preprocess,data_num,camera_info,'test_blur','generator') datasetloader_uvr['test_blur'].set_datasetLoader(args.test_batch) utils=datasetloader_uvr[dataset_name].utils d_maximum=500 if input_type=='dataset': loadpath_dict="/home/yong/ssd/dataset/preprocessed_HIG/dataset_dict_"+dataset_name+".pickle" with open(loadpath_dict,'rb') as f:
#--user setting input_type = 'dataset_uvr' # 'sr300' 'dataset_uvr' imgfile_path_orig = "/home/yong/ssd/dataset/depth_ir/" + dataset_name + "/" #--common setting ointNum = 21 fx = 475.065948 fy = 475.065857 cx = 315.944855 cy = 245.287079 cube = np.asarray([250, 250, 250]) utils = Utils(21, fx, fy, cx, cy, cube) #--dataset of uvr datasetloader_uvr = datasetloader_UVR(imgfile_path_orig, 0, 0) #imgfile_path_orig="/home/yong/Downloads/saveData/uvrDataset - ablation/images/" ##--init realsense--## if input_type == 'sr300': pipeline, depth_scale = init_device() #--start try: for frame in range(690, 1000): #while(1): #capture if input_type == 'sr300': depth_orig, ir_orig = read_frame_from_device( pipeline, depth_scale) else: