예제 #1
0
    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)
예제 #2
0
     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=[]
         
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
         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:
예제 #6
0
파일: Grabcut.py 프로젝트: sebaram/ir-hand
    #--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: