示例#1
0
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
示例#2
0
    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
示例#4
0
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)
示例#5
0
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)