Exemplo n.º 1
0
def write_features(raw_dir, city_list, city_id, tile_id, model):
    raw_rgb = misc_utils.load_file(
        os.path.join(raw_dir, 'USA_{}_{}.tif'.format(city_list[city_id],
                                                     tile_id)))
    tile_dim = raw_rgb.shape

    # get tower truth
    gt_list = []
    csv_file_name = os.path.join(
        raw_dir, 'USA_{}_{}.csv'.format(city_list[city_id], tile_id))
    for label, bbox in read_polygon_csv_data(csv_file_name):
        y, x = get_center_point(*bbox)
        gt_list.append([y, x])

    # get features
    feature = []
    for start, stop, online_points in read_line_csv_data(
            csv_file_name, gt_list):
        centers = add_point_if_not_nearby(start, stop,
                                          [gt_list[a] for a in online_points])

        for c in centers:
            c = [int(a) for a in c]
            region = [
                c[0] - patch_size[0] // 2, c[1] - patch_size[1] // 2,
                *patch_size
            ]
            region = get_region_bounds(region, tile_dim)
            img_patch = raw_rgb[region[0]:region[0] + region[2],
                                region[1]:region[1] + region[3], :]
            feature.append(model.get_feature(img_patch))
    return np.array(feature)
Exemplo n.º 2
0
    for city_id in range(4):
        dist = []
        for tile_id in range(3, tile_range[city_id]):
            csv_file_name = os.path.join(
                raw_dir, 'USA_{}_{}.csv'.format(city_list[city_id], tile_id))
            raw_rgb = ersa_utils.load_file(
                os.path.join(
                    raw_dir, 'USA_{}_{}.tif'.format(city_list[city_id],
                                                    tile_id)))

            # get tower truth
            gt_list = []
            csv_file_name = os.path.join(
                raw_dir, 'USA_{}_{}.csv'.format(city_list[city_id], tile_id))
            for label, bbox in read_polygon_csv_data(csv_file_name):
                y, x = get_center_point(*bbox)
                gt_list.append([y, x])

            # visualize results
            for start, stop, online_points in read_line_csv_data(
                    csv_file_name, gt_list):
                centers = add_point_if_not_nearby(
                    start, stop, [gt_list[a] for a in online_points])

                for i in range(len(centers) - 1):
                    dist.append(
                        np.linalg.norm(
                            np.array(centers[i]) - np.array(centers[i + 1])))
        plt.subplot(2, 2, city_id + 1)
        plt.hist(dist, bins=100)
        plt.xlabel('Distance')