assert os.path.isfile(pred_f), pred_f + ' not a valid file' annType = 'bbox' prefix = 'person_keypoints' if annType == 'keypoints' else 'instances' print('Running demo for *%s* results.' % (annType)) dataDir = 'data/coco' dataType = 'val2017' annFile = '%s/annotations/%s_%s.json' % (dataDir, prefix, dataType) print("loading gt {}".format(annFile)) cocoGt = COCO(annFile) print("loading predicted {}".format(pred_f)) cocoDt = cocoGt.loadRes(pred_f) imgIds = sorted(cocoDt.getImgIds()) cocoEval = COCOeval(cocoGt, cocoDt, annType) cocoEval.params.imgIds = imgIds gts = cocoEval.cocoGt.loadAnns( cocoEval.cocoGt.getAnnIds(imgIds=imgIds, catIds=cocoEval.params.catIds)) dts = cocoEval.cocoDt.loadAnns( cocoEval.cocoDt.getAnnIds(imgIds=imgIds, catIds=cocoEval.params.catIds)) cocoEval.evaluate_bboxreg(metric=metric) # evaluate_bboxreg modifies some parameters in `cocoEval`. # Do not run anything else (e.g. `cocoEval.evaluate()`) after this method call. # Initialize a new COCOeval instance if you want to evaluate AP