Exemplo n.º 1
0
def eval(num_imgs):

    # annotation_path = '/home/yjr/DataSet/COCO/2017/test_annotations/image_info_test2017.json'
    annotation_path = '/home/yjr/DataSet/COCO/2017/test_annotations/image_info_test-dev2017.json'
    # annotation_path = '/home/yjr/DataSet/COCO/2017/annotations/instances_train2017.json'
    print("load coco .... it will cost about 17s..")
    coco = COCO(annotation_path)

    imgId_list = coco.getImgIds()

    if num_imgs != np.inf:
        imgId_list = imgId_list[:num_imgs]

    faster_rcnn = build_whole_network_batch.DetectionNetwork(
        base_network_name=cfgs.NET_NAME, is_training=False)
    save_dir = os.path.join(cfgs.EVALUATE_DIR, cfgs.VERSION)
    eval_with_plac(det_net=faster_rcnn,
                   coco=coco,
                   imgId_list=imgId_list,
                   out_json_root=save_dir,
                   draw_imgs=True)
    print("each img over**************")

    final_detections = []
    with open(os.path.join(save_dir, 'coco2017test_results.json'), 'w') as wf:
        for imgid in imgId_list:
            f = open(os.path.join(save_dir, 'each_img', str(imgid) + '.json'))
            tmp_list = json.load(f)
            # print (type(tmp_list))
            final_detections.extend(tmp_list)
            del tmp_list
            f.close()
        json.dump(final_detections, wf)
Exemplo n.º 2
0
def cocoval(detected_json, eval_json):
    eval_gt = COCO(eval_json)

    eval_dt = eval_gt.loadRes(detected_json)
    cocoEval = COCOeval(eval_gt, eval_dt, iouType='bbox')

    # cocoEval.params.imgIds = eval_gt.getImgIds()
    cocoEval.evaluate()
    cocoEval.accumulate()
    cocoEval.summarize()