def getMixtureRoidb(imdbs, size, pc):
    numImdbs = len(imdbs)
    mixedRoidb = [None for _ in range(8)]
    annoCounts = [None for _ in range(8)]
    for imdb in imdbs:
        # HACKY af
        # todo: provide a more structural solution
        print(imdb.name)
        if imdb.name in ['sun', 'inria', 'cam2'] and size == 1000:
            print("HERE getting 2k instead of 1k")
            sizedRoidb, annoCount = imdb.get_roidb_at_size(2000)
        else:
            sizedRoidb, annoCount = imdb.get_roidb_at_size(size)
        print("type(sizedRoidb): {}".format(type(sizedRoidb)))
        mixedRoidb[imdb.config['setID']] = sizedRoidb
        annoCounts[imdb.config['setID']] = annoCount
        print_each_size(sizedRoidb)
    return mixedRoidb, annoCounts
Example #2
0
def createMixtureDataset(setID, size):

    imdbs = setID_to_imdbs(setID)

    # remove ONLY FOR DEBUG
    if DEBUG:
        if len(imdbs) == 0: return []
    else:
        assert len(imdbs) == setID.count('1')

    imdbSize = size / len(imdbs)

    mixedRoidb = [None for _ in range(8)]
    annoCounts = [None for _ in range(8)]
    for imdb in imdbs:
        print(imdb.name, imdb.classes)
        imdb = loadedImdbs[imdb.name]
        sizedRoidb, annoCount = imdb.get_roidb_at_size(size)
        print_each_size(sizedRoidb)
        mixedRoidb[imdb.config['setID']] = sizedRoidb
        annoCounts[imdb.config['setID']] = annoCount
    return mixedRoidb, annoCounts
        print("\t\t{}".format(v))

    print("computing bbox info...")
    areas, widths, heights = get_bbox_info(roidb,numAnnos)

    print("ave area: {} | std. area: {}".format(np.mean(areas),np.std(areas,dtype=np.float64)))
    print("ave width: {} | std. width: {}".format(np.mean(widths),np.std(widths,dtype=np.float64)))
    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)

    print("-="*50)
    print("mixed datasets roidbsize")
    for size in [50,100,500,1000]:
       sizedRoidb,actualSize = imdb.get_roidb_at_size(size)
       print("size: {}".format(size))
       print_each_size(sizedRoidb)
    print("-="*50)


    # issue: we are getting zeros area for 5343 of bboxes for pascal_voc_2007

    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=' ')

    pyroidb = RoidbDataset(roidb,[0,1,2,3,4,5,6,7],