예제 #1
0
def get_img(inp_res = 512):
    """
    Load validation images
    """
    if os.path.exists(valid_filepath) is False:
        from utils.build_valid import main
        main()

    dic = pickle.load(open(valid_filepath, 'rb'))
    paths, anns, idxes, info = [dic[i] for i in ['path', 'anns', 'idxes', 'info']]

    total = len(paths)
    tr = tqdm.tqdm( range(0, total), total = total )
    for i in tr:
        img = cv2.imread(paths[i])[:,:,::-1]
        yield anns[i], img
예제 #2
0
def get_img(inp_res=512):
    """
    Load validation images
    """
    # load valid file -> validation.pkl or create one from valid_id txt file
    if os.path.exists(valid_filepath) is False:
        from utils.build_valid import main
        main()
    # load pkl file and extract each images' paths, anns, idxes and info
    dic = pickle.load(open(valid_filepath, 'rb'))
    paths, anns, idxes, info = [
        dic[i] for i in ['path', 'anns', 'idxes', 'info']
    ]

    total = len(paths)
    tr = tqdm.tqdm(range(0, total), total=total)
    # this is to generate a dictionary with each image and annotation
    for i in tr:
        img = cv2.imread(paths[i])[:, :, ::-1]
        yield anns[i], img
예제 #3
0
    mode = config['opt'].mode

    def runner(imgs):
        return func(0, config, 'inference', imgs=torch.Tensor(np.float32(imgs)))['preds']

    def do(img):
        ans, scores = multiperson(img, runner, mode)
        if len(ans) > 0:
            ans = ans[:,:,:3]

        pred = genDtByPred(ans)

        for i, score in zip( pred, scores ):
            i['score'] = float(score)
        return pred

    gts = []
    preds = []

    idx = 0
    for anns, img in get_img(inp_res=-1):
        idx += 1
        gts.append(anns)
        preds.append(do(img))

    prefix = os.path.join('exp', config['opt'].exp)
    coco_eval(prefix, preds, gts)

if __name__ == '__main__':
    main()