import numpy as np from mmdet.core.evaluation.recall import eval_recalls det_bboxes = np.array([ [0, 0, 10, 10], [10, 10, 20, 20], [32, 32, 38, 42], ]) gt_bboxes = np.array([[0, 0, 10, 20], [0, 10, 10, 19], [10, 10, 20, 20]]) gt_ignore = np.array([[5, 5, 10, 20], [6, 10, 10, 19]]) def test_eval_recalls(): gts = [gt_bboxes, gt_bboxes, gt_bboxes] proposals = [det_bboxes, det_bboxes, det_bboxes] recall = eval_recalls( gts, proposals, proposal_nums=2, use_legacy_coordinate=True) assert recall.shape == (1, 1) assert 0.66 < recall[0][0] < 0.667 recall = eval_recalls( gts, proposals, proposal_nums=2, use_legacy_coordinate=False) assert recall.shape == (1, 1) assert 0.66 < recall[0][0] < 0.667 recall = eval_recalls( gts, proposals, proposal_nums=2, use_legacy_coordinate=True) assert recall.shape == (1, 1) assert 0.66 < recall[0][0] < 0.667 recall = eval_recalls( gts, proposals, iou_thrs=[0.1, 0.9], proposal_nums=2, use_legacy_coordinate=False) assert recall.shape == (1, 2) assert recall[0][1] <= recall[0][0] recall = eval_recalls( gts, proposals, iou_thrs=[0.1, 0.9], proposal_nums=2, use_legacy_coordinate=True) assert recall.shape == (1, 2) assert recall[0][1] <= recall[0][0]