def set_params_disp(disp='cnn'): params = {} params['data_path'] = HOME + 'kitti/2012/displets_data/displets_data/Kitti/training/' params['image_path'] = params['data_path'] + 'colored_0/' params['gt_disp_path'] = params['data_path'] + 'gt/disp_noc/' params['cnn_disp_path'] = params['data_path'] + 'dispmaps/%s/disp_0/' % disp params['sem_label_path'] = HOME + 'kitti/2012/displets_data/displets_semantic_labels/' params['label_path'] = params['sem_label_path'] + 'semantic/' params['label_instance_path'] = params['sem_label_path'] + 'instance/' params['car_instance_path'] = params['sem_label_path'] + 'car_instance/' params['car_inst_path'] = params['sem_label_path'] + 'car_inst_denoise/' uts.mkdir_if_need(params['car_inst_path']) params['output_path'] = params['data_path'] + 'Results/' params['car_model_path'] = HOME + 'kitti/2012/displets_data/displets_data/models/semi_convex_hull/' car_ids = [1, 7, 8, 9, 10, 11, 13, 15] params['car_names'] = ['%02d' % x for x in car_ids] params['car_num'] = len(car_ids) params['car_inst_num'] = 652 params['image_set'] = params['data_path'] + 'split/train.txt' params['calib_path'] = params['data_path'] + 'calib/' params['intrinsic'] = [] color_params = zpark.gen_color_list(HOME + 'zpark/color_v2.lst') params['size'] = [375, 1242] params.update(color_params) params['colors'] = {'car': [64, 0, 128]} params['class_names'] = ['car'] return params
def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 50 == 0: print "\nPass %d, Batch %d, Cost %f" % ( event.pass_id, event.batch_id, event.cost) else: sys.stdout.write('.') sys.stdout.flush() elif isinstance(event, paddle.event.EndPass): result = trainer.test(reader=paddle.batch( sun3d.test(params['test_scene'][0:4], height=params['size'][0], width=params['size'][1], tasks=tasks), batch_size=2 * params['batch_size']), feeding=feeding) task_string = '_'.join(tasks) print "\nTask %s, Pass %d, Cost %f" % (task_string, event.pass_id, result.cost) folder = params['output_path'] + '/' + data_source uts.mkdir_if_need(folder) model_name = folder + '/model_stage_' + str( params['stage']) + '_' + task_string + '.tar.gz' with gzip.open(model_name, 'w') as f: parameters.to_tar(f) print "\nsave with pass %d" % (event.pass_id)
def event_handler(event): if isinstance(event, paddle.event.EndIteration): if event.batch_id % 50 == 0: if not isinstance(event.cost, list): cost = [event.cost] else: cost = event.cost print "\nPass %d, Batch %d, " % (event.pass_id, event.batch_id), for i in range(len(cost)): print "%s: %f, " % (cost_name[i], cost[i]), print "\n" else: sys.stdout.write('.') sys.stdout.flush() elif (isinstance(event, paddle.event.EndPass) and \ event.pass_id % 4 == 1): print "Testing", result = trainer.test(reader=paddle.batch( sun3d.test_upsampler(params['test_scene'][0:5], rate=params['sample_rate'], height=params['size'][0], width=params['size'][1]), batch_size=params['batch_size']), feeding=feeding) print "\nTask upsample, Pass %d," % (event.pass_id), if not isinstance(result.cost, list): cost = [result.cost] else: cost = result.cost for i in range(len(cost)): print "%s: %f, " % (cost_name[i], cost[i]), folder = params['output_path'] + '/upsampler/' uts.mkdir_if_need(folder) model_name = folder + '/upsample_model_' + \ FLAGS.suffix + '.tar.gz' with gzip.open(model_name, 'w') as f: parameters.to_tar(f) print "model saved at %s" % model_name
def main(argv): argv = FLAGS(argv) # parse argv to FLAG scene_names = uts.read_file(DATA_PATH + 'test_sun3d.txt') scene_names = scene_names[FLAGS.start:FLAGS.end] for scene_name in scene_names: scene_name += '/' print FLOW_PATH + scene_name + 'flow/' # down load file if not os.path.exists(DATA_PATH + scene_name + 'id_img2depth.txt'): print 'Retrieve Data' os.system("/home/peng/SUN3DCppReader/src/build/SUN3DCppReader " \ + scene_name + " " + DATA_PATH) if not os.path.exists(DATA_PATH + scene_name + '/id_img2depth.txt'): continue if not os.path.exists(FLOW_PATH + scene_name + '/flow/'): uts.mkdir_if_need(FLOW_PATH + scene_name + '/flow/') id_img2depth = find_image_depth_matching(scene_name) gen_img_pair_data(scene_name, 500, id_img2depth)
def set_params_disp(disp='psm', stereo_rect=True): params = {} params['data_path'] = HOME + 'apolloscape/car_labels/' params['image_path'] = params['data_path'] + 'images/' params['depth_gt_path'] = params['data_path'] + 'depth/' params['depth_path_rect'] = params['data_path'] + 'stereo_depth/%s/' % disp params['depth_path_v2'] = params['data_path'] + 'depth_2/' params['car_pose_path'] = params['data_path'] + 'car_poses/' params['car_pose_path_new'] = params['data_path'] + 'car_poses_challenge/' params[ 'car_pose_path_sim'] = params['data_path'] + 'car_poses_challenge_sim/' uts.mkdir_if_need(params['car_pose_path_new']) uts.mkdir_if_need(params['car_pose_path_sim']) params['car_inst_path'] = params['data_path'] + 'car_instance/' params['train_list'] = params['data_path'] + 'split/train.txt' params['val_list'] = params['data_path'] + 'split/val.txt' params['minival_list'] = params['data_path'] + 'split/mini_val.txt' params['minitrain_list'] = params['data_path'] + 'split/mini_train.txt' params['output_path'] = params['data_path'] + 'results/' params['car_inst_num'] = 10000 params['size'] = [2710, 3384] params['intrinsic'] = { 'Camera_5': np.array([ 2304.54786556982, 2305.875668062, 1686.23787612802, 1354.98486439791 ]), 'Camera_6': np.array([ 2300.39065314361, 2301.31478860597, 1713.21615190657, 1342.91100799715 ]) } # normalized intrinsic cam_names = params['intrinsic'].keys() for c_name in cam_names: params['intrinsic'][c_name][[0, 2]] /= params['size'][1] params['intrinsic'][c_name][[1, 3]] /= params['size'][0] vertice_num = '5000' params['car_model_path'] = HOME + 'car_models/%s/' % vertice_num params['car_model_path'] = HOME + 'car_models/5000_align/' params['car_model_path_pkl'] = params[ 'data_path'] + '/3d_car_instance_sample/car_models/' params['car_model_path_off'] = HOME + '/car_models/%s_off/' % vertice_num params['car_model_path_pkl'] = HOME + '/car_models/%s_pkl/' % vertice_num params['save_image_path'] = params[ 'data_path'] + '/3d_car_instance_sample/images/' # params['car_model_path'] = HOME + 'car_models/5000/' # params['car_model_path_pkl'] = HOME + 'car_models/5000_pkl/' uts.mkdir_if_need(params['car_model_path_pkl']) uts.mkdir_if_need(params['car_model_path_off']) # params['car_names'] = [os.path.basename(x)[:-4] for x in \ # glob.glob(params['car_model_path'] + '*.mat')] params['car_types'], params['car_names'] = load_carnames( params['car_model_path']) color_params = zpark.gen_color_list(HOME + 'zpark/color_v2.lst') params.update(color_params) if stereo_rect: # the crop with cars params['rect_crop'] = np.array([1432., 668., 2200., 2716.]) params['rect_crop'][[0, 2]] /= params['size'][0] params['rect_crop'][[1, 3]] /= params['size'][1] # the crop only crop vertically params['rect_crop_top'] = np.array([1432., 0., 2200., 3383.]) params['rect_crop_top'][[0, 2]] /= params['size'][0] params['rect_crop_top'][[1, 3]] /= params['size'][1] params['image_path_rect'] = params['image_path'] + 'stereo_rect/' uts.mkdir_if_need(params['image_path_rect']) params['car_inst_path_rect'] = params['car_inst_path'] + 'stereo_rect/' uts.mkdir_if_need(params['car_inst_path_rect']) rectify_params = get_stereo_rect_extern(params) params.update(rectify_params) return params
def sequencial_upsampleing(dataset='sun3d', split='train', max_num=None, vis=False): # Read image pair 1, 2, generate depth if dataset == 'sun3d': params = sun3d.set_params() params['demon_model'] = '../output/tf_model_full_5.tar.gz' else: print "dataset {} is not supported".format(dataset) deep_upsampler = DeepUpSampler(params) part, part_id = [int(x) for x in FLAGS.part.split(',')] test_ids = partition(len(params[split + '_scene']), part, part_id) rate = 0.05 process_scene_names = [params[split + '_scene'][x] for x in test_ids] all_time = 0. all_count = 0. for scene_name in process_scene_names: image_list = preprocess_util.list_files(params['flow_path'] + scene_name + '/flow/') image2depth = sun3d.get_image_depth_matching(scene_name) image_num = len(image_list) if max_num is None \ else min(len(image_list), max_num) image_id = range(0, len(image_list), len(image_list) / image_num) upsample_output_path = params['flow_path'] + scene_name + \ '/pair_depth/' + str(rate) + '/' uts.mkdir_if_need(upsample_output_path) print "processing {} with images: {}".format(scene_name, len(image_id)) image_name_list = [image_list[x] for x in image_id] for pair_name in image_name_list: pair_image_name = pair_name.split('/')[-1] outfile = upsample_output_path + pair_image_name[:-4] + '.npy' # if uts.exists(outfile): # print "\t {} exists".format(pair_name) # continue image1, image2, flow_gt, depth_gt = \ sun3d.load_image_pair(scene_name, pair_name, image2depth, False) print pair_name uts.plot_images(OrderedDict([('image', image1), ('depth_gt', depth_gt)]), layout=[4, 2]) continue depth_gt_down = uts_3d.down_sample_depth(depth_gt, method='uniform', percent=rate, K=params['intrinsic']) try: start_time = time.time() print "\t upsampling {}".format(pair_name) depth_up = deep_upsampler.UpSample(depth_gt_down, [image1, image2]) np.save(outfile, depth_up) print "\t time: {}".format(time.time() - start_time) all_time += time.time() - start_time all_count += 1 except: print "{} failed".format(pair_name) if vis: uts.plot_images(OrderedDict([('image', image1), ('depth_gt', depth_gt), ('depth_up', depth_up)]), layout=[4, 2]) print "average run time {}\n".format(all_time / all_count)