예제 #1
0
def annotationDensityPlot(pyroidb):
    """
    From a pyroidb object, create a concentration plot of
    the annotations.
    """
    clsToSet = loadDatasetIndexDict()
    matr = np.zeros((8,500,500)).astype(np.float64)
    cls_count = np.zeros((8)).astype(np.int)

    for box,cls in pyroidb:
        box = box.copy() * 500
        xmin = int(box[0])
        ymin = int(box[1])
        xmax = int(box[2])
        ymax = int(box[3])
        matr[cls, ymin:ymax, xmin:xmax] += 1
        cls_count[cls] += 1
    for idx,cls in enumerate(cls_count):
        if cls == 0: continue
        print("{}: {}".format(clsToSet[idx],cls))
        print(np.sum(matr[idx,...]))
        print(np.max(matr[idx,...]))
        matr[idx,...] /= np.sum(matr[idx,...])
        print(np.sum(matr[idx,...]))
        print(np.max(matr[idx,...]))
    return matr
예제 #2
0
def annotationDensityPlot(pyroidb):
    """
    From a pyroidb object, create a concentration plot of
    the annotations.
    """
    clsToSet = loadDatasetIndexDict()
    matr = np.zeros((9, 500, 500)).astype(np.float64)
    cls_count = np.zeros((9)).astype(np.int)
    for box, cls in pyroidb:
        xmin = int(box[0])
        ymin = int(box[1])
        xmax = int(box[2])
        ymax = int(box[3])
        matr[cls - 1, (xmin - 1):xmax, (ymin - 1):ymax] += 1
        cls_count[cls - 1] += 1
    print(cls_count)
    print(sum(cls_count))
    for idx, cls in enumerate(cls_count):
        if cls == 0: continue
        print("{}: {}".format(clsToSet[idx], cls))
        matr[idx, ...] /= cls
    return matr
예제 #3
0
    print("ave height: {} | std. height: {}".format(
        np.mean(heights), np.std(heights, dtype=np.float64)))
    prefix_path = cfg.IMDB_REPORT_OUTPUT_PATH
    if osp.exists(prefix_path) is False:
        os.makedirs(prefix_path)

    path = osp.join(prefix_path, "areas.dat")
    np.savetxt(path, areas, fmt='%.18e', delimiter=' ')
    path = osp.join(prefix_path, "widths.dat")
    np.savetxt(path, widths, fmt='%.18e', delimiter=' ')
    path = osp.join(prefix_path, "heights.dat")
    np.savetxt(path, heights, fmt='%.18e', delimiter=' ')

    print("-=-=-=-=-=-")

    clsToSet = loadDatasetIndexDict()

    print("as pytorch friendly ")

    pyroidb = RoidbDataset(roidb, [1, 2, 3, 4, 5, 6, 7, 8],
                           loader=cv2.imread,
                           transform=cropImageToAnnoRegion)

    if args.save:
        print("save 30 cropped annos in output folder.")
        saveDir = "./output/mixedDataReport/"
        if not osp.exists(saveDir):
            print("making directory: {}".format(saveDir))
            os.makedirs(saveDir)

        for i in range(30):