def main(_): start = time.clock() if args.dataset == 'MSRA': di = MSRA15Importer(args.data_root, cacheDir='./cache/MSRA/',refineNet=None) Seq_all = [] MID = args.test_sub for seq in range(9): if seq == MID: Seq_train_ = di.loadSequence('P{}'.format(seq), rng=rng, shuffle=False, docom=False, cube=(175, 175, 175)) else: Seq_train_ = di.loadSequence('P{}'.format(seq), rng=rng, shuffle=False, docom=False, cube=None) Seq_all.append(Seq_train_) Seq_test_raw = Seq_all.pop(MID) Seq_test = Seq_test_raw.data Seq_train = [seq_data for seq_ in Seq_all for seq_data in seq_.data] train_num = len(Seq_train) print ('loaded over with %d train samples'%train_num) imgs = np.asarray([d.dpt.copy() for d in Seq_train], 'float32') gt3Dcrops = np.asarray([d.gt3Dcrop for d in Seq_train], dtype='float32') M = np.asarray([d.T for d in Seq_train], dtype='float32') com2D = np.asarray([d.com2D for d in Seq_train], 'float32') cube = np.asarray([d.cube for d in Seq_train], 'float32') # uv_crop = np.asarray([d.gtcrop for d in Seq_train], dtype='float32')[:, :, 0:-1] del Seq_train train_stream = MultiDataStream([imgs, gt3Dcrops, M, com2D, cube]) else: raise ValueError('error dataset %s'%args.dataset) test_num=len(Seq_test) print ('loaded over with %d test samples'%test_num) test_gt3Dcrops = np.asarray([d.gt3Dcrop for d in Seq_test], dtype='float32') test_M = np.asarray([d.T for d in Seq_test], dtype='float32') # test_com2D = np.asarray([d.com2D for d in Seq_test], 'float32') # test_uv_crop = np.asarray([d.gtcrop for d in Seq_test], dtype='float32')[:, :, 0:-1] test_uv = np.asarray([d.gtorig for d in Seq_test], 'float32')[:, :, 0:-1] test_com3D = np.asarray([d.com3D for d in Seq_test], 'float32') test_cube = np.asarray([d.cube for d in Seq_test], 'float32') test_imgs = np.asarray([d.dpt.copy() for d in Seq_test], 'float32') test_data=np.ones_like(test_imgs) for it in range(test_num): test_data[it]=norm_dm(test_imgs[it], test_com3D[it], test_cube[it]) del Seq_test test_stream = MultiDataStream([test_data, test_gt3Dcrops, test_M, test_com3D, test_uv, test_cube]) clip_index = np.int(np.floor(test_num/args.batch_size)) * args.batch_size extra_test_data = [test_data[clip_index:], test_gt3Dcrops[clip_index:], test_M[clip_index:], test_com3D[clip_index:], test_uv[clip_index:], test_cube[clip_index:]] gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.8) tf.set_random_seed(1) with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess: model = Model(sess, args) model.train(args, train_stream, test_stream) if args.phase == 'train' \ else model.test(args, test_stream, extra_test_data=None) end = time.clock() print ('running time: %f s'%(end-start))
coms_test = np.asarray([d.com for d in Seq_test], 'float32') gt3Dcrops_test = np.asarray([d.gt3Dcrop for d in Seq_test], dtype='float32') imgs_test = np.asarray([d.dpt.copy() for d in Seq_test], 'float32') Ms_test = np.asarray([d.T for d in Seq_test], 'float32') cubes = tf.placeholder(dtype=tf.float32, shape=(None, 3)) test_data = np.ones_like(imgs_test) test_label = np.ones_like(gt3Dcrops_test) print "training data {}".format(imgs_train.shape[0]) print "testing data {}".format(imgs_test.shape[0]) print "testing sub {}".format(MID) print "done" for it in range(test_num): test_data[it] = norm_dm(imgs_test[it], coms_test[it], cubes_test[it]) test_label[it] = gt3Dcrops_test[it] / (cubes_test[it][0] / 2.) test_data = np.expand_dims(test_data, 3) test_label = np.reshape(test_label, (-1, 21 * 3)) hd_edges = [[0, 1], [1, 2], [2, 3], [3, 4], [0, 5], [5, 6], [6, 7], [7, 8], [0, 9], [9, 10], [10, 11], [11, 12], [0, 13], [13, 14], [14, 15], [15, 16], [0, 17], [17, 18], [18, 19], [19, 20]] visual = False visual_aug = False if visual == True: import matplotlib.pyplot as plt for i in range(0, test_num, 10): plt.imshow(imgs_test[i], cmap='gray') gt3D = gt3Dcrops_test[i] + coms_test[i]
def main(_): start = time.clock() if args.dataset == 'ICVL': if args.phase == 'train': di_train = ICVLImporter(args.data_root, cacheDir='./cache/ICVL/', refineNet=None) Seq_train = di_train.loadSequence('Training_2014', rng=rng, shuffle=False, docom=False, cube=None) train_num = len(Seq_train.data) print('loaded over with %d train samples' % train_num) imgs = np.asarray([d.dpt.copy() for d in Seq_train.data], 'float32') gt3Dcrops = np.asarray([d.gt3Dcrop for d in Seq_train.data], dtype='float32') M = np.asarray([d.T for d in Seq_train.data], dtype='float32') com2D = np.asarray([d.com2D for d in Seq_train.data], 'float32') cube = np.asarray([d.cube for d in Seq_train.data], 'float32') # uv_crop = np.asarray([d.gtcrop for d in Seq_train.data], dtype='float32')[:, :, 0:-1] del Seq_train train_stream = MultiDataStream([imgs, gt3Dcrops, M, com2D, cube]) else: raise ValueError('error dataset %s' % args.dataset) di_test = ICVLImporter(args.data_root, cacheDir='./cache/ICVL/', refineNet=None) Seq_test = di_test.loadSequence('Testing_2014', rng=rng, shuffle=False, docom=False, cube=(250, 250, 250)) test_num = len(Seq_test.data) print('loaded over with %d test samples' % test_num) test_gt3Dcrops = np.asarray([d.gt3Dcrop for d in Seq_test.data], dtype='float32') test_M = np.asarray([d.T for d in Seq_test.data], dtype='float32') # test_com2D = np.asarray([d.com2D for d in Seq_test.data], 'float32') # test_uv_crop = np.asarray([d.gtcrop for d in Seq_test.data], dtype='float32')[:, :, 0:-1] test_uv = np.asarray([d.gtorig for d in Seq_test.data], 'float32')[:, :, 0:-1] test_com3D = np.asarray([d.com3D for d in Seq_test.data], 'float32') test_cube = np.asarray([d.cube for d in Seq_test.data], 'float32') test_imgs = np.asarray([d.dpt.copy() for d in Seq_test.data], 'float32') test_data = np.ones_like(test_imgs) for it in range(test_num): test_data[it] = norm_dm(test_imgs[it], test_com3D[it], test_cube[it]) del Seq_test test_stream = MultiDataStream( [test_data, test_gt3Dcrops, test_M, test_com3D, test_uv, test_cube]) clip_index = np.int(np.floor(test_num / args.batch_size)) * args.batch_size extra_test_data = [ test_data[clip_index:], test_gt3Dcrops[clip_index:], test_M[clip_index:], test_com3D[clip_index:], test_uv[clip_index:], test_cube[clip_index:] ] gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7) tf.set_random_seed(1) with tf.Session(config=tf.ConfigProto(gpu_options=gpu_options)) as sess: model = Model(sess, args) model.train(args, train_stream, test_stream) if args.phase == 'train' \ else model.test(args, test_stream, extra_test_data=None) end = time.clock() print('running time: %f s' % (end - start))
test_num=len(Seq_test) cubes_test = np.asarray([d.cube for d in Seq_test], 'float32') coms_test = np.asarray([d.com for d in Seq_test], 'float32') Ms_test = np.asarray([d.T for d in Seq_test], 'float32') gt3Dcrops_test = np.asarray([d.gt3Dcrop for d in Seq_test], dtype='float32') imgs_test = np.asarray([d.dpt.copy() for d in Seq_test], 'float32') test_data=np.ones_like(imgs_test) test_label=np.ones_like(gt3Dcrops_test) print "testing data {}".format(imgs_test.shape[0]) print "testing sub {}".format(MID) print "done" for it in range(test_num): test_data[it]=norm_dm(imgs_test[it],coms_test[it],cubes_test[it]) test_label[it]=gt3Dcrops_test[it]/(cubes_test[it][0]/2.) test_data=np.expand_dims(test_data,3) test_label=np.reshape(test_label,(-1,21*3)) hd_edges=[[0,1],[1,2],[2,3],[3,4], [0,5],[5,6],[6,7],[7,8], [0,9],[9,10],[10,11],[11,12], [0,13],[13,14],[14,15],[15,16], [0,17],[17,18],[18,19],[19,20]] visual=True inputs=tf.placeholder(dtype=tf.float32,shape=(None,96,96,1)) label=tf.placeholder(dtype=tf.float32,shape=(None,21*3)) gt_ht=tf.placeholder(dtype=tf.float32,shape=(None,24,24,21))
docom=False, cube=(250, 250, 250)) test_num = len(Seq_train.data) print test_num cubes = np.asarray([d.cube for d in Seq_train.data], 'float32') coms = np.asarray([d.com for d in Seq_train.data], 'float32') Ms = np.asarray([d.T for d in Seq_train.data], dtype='float32') gt3Dcrops = np.asarray([d.gt3Dcrop for d in Seq_train.data], dtype='float32') imgs = np.asarray([d.dpt.copy() for d in Seq_train.data], 'float32') test_data = np.ones_like(imgs) test_label = np.ones_like(gt3Dcrops) for i in range(test_num): test_data[i] = norm_dm(imgs[i], coms[i], cubes[i]) test_label[i] = gt3Dcrops[i] / (cubes[i][0] / 2.) #print cubes[i] # plt.imshow(test_data[i],cmap='gray') # print i # plt.pause(0.0001) # plt.cla() test_data = np.expand_dims(test_data, 3) test_label = np.reshape(test_label, (-1, 42)) # for i in range(test_num): # print cubes[i] inputs = tf.placeholder(dtype=tf.float32, shape=(None, 96, 96, 1)) label = tf.placeholder(dtype=tf.float32, shape=(None, 42)) batch_size = 128