assertTypeError('result_files must be a str or dict')
assertresult_file.endswith('.json')
coco_dets=coco.loadRes(result_file)
# it will load all images if cat_ids is []
# img_ids = getImgIds(coco, catIds=cat_ids)
iflen(cat_ids)<80:
img_ids=getImgIds(coco,catIds=cat_ids)
else:
img_ids=coco.getImgIds()
iou_type='bbox'ifres_type=='proposal'elseres_type
cocoEval=COCOeval(coco,coco_dets,iou_type)
ifcat_ids:
# cat_ids is not None means it is set
cocoEval.params.catIds=cat_ids
cocoEval.params.imgIds=img_ids
ifres_type=='proposal':
cocoEval.params.useCats=0
cocoEval.params.maxDets=list(max_dets)
cocoEval.evaluate()
cocoEval.accumulate()
cocoEval.summarize()
ifclasswise:
# Compute per-category AP
# from https://github.com/facebookresearch/detectron2/blob/03064eb5bafe4a3e5750cc7a16672daf5afe8435/detectron2/evaluation/coco_evaluation.py#L259-L283 # noqa
precisions=cocoEval.eval['precision']
catIds=cat_idsifcat_idselsecoco.getCatIds()
# precision has dims (iou, recall, cls, area range, max dets)