{"record":{"id":"2477fba5f9aab7e1","repo":"open-mmlab/mmdetection","slug":"unrecognized-mode-only-area-and-11points-are","errorCode":null,"errorMessage":"Unrecognized mode, only \"area\" and \"11points\" are supported","messagePattern":"Unrecognized mode, only \"area\" and \"11points\" are supported","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mmdet/evaluation/functional/mean_ap.py","lineNumber":53,"sourceCode":"        zeros = np.zeros((num_scales, 1), dtype=recalls.dtype)\n        ones = np.ones((num_scales, 1), dtype=recalls.dtype)\n        mrec = np.hstack((zeros, recalls, ones))\n        mpre = np.hstack((zeros, precisions, zeros))\n        for i in range(mpre.shape[1] - 1, 0, -1):\n            mpre[:, i - 1] = np.maximum(mpre[:, i - 1], mpre[:, i])\n        for i in range(num_scales):\n            ind = np.where(mrec[i, 1:] != mrec[i, :-1])[0]\n            ap[i] = np.sum(\n                (mrec[i, ind + 1] - mrec[i, ind]) * mpre[i, ind + 1])\n    elif mode == '11points':\n        for i in range(num_scales):\n            for thr in np.arange(0, 1 + 1e-3, 0.1):\n                precs = precisions[i, recalls[i, :] >= thr]\n                prec = precs.max() if precs.size > 0 else 0\n                ap[i] += prec\n        ap /= 11\n    else:\n        raise ValueError(\n            'Unrecognized mode, only \"area\" and \"11points\" are supported')\n    if no_scale:\n        ap = ap[0]\n    return ap\n\n\ndef tpfp_imagenet(det_bboxes,\n                  gt_bboxes,\n                  gt_bboxes_ignore=None,\n                  default_iou_thr=0.5,\n                  area_ranges=None,\n                  use_legacy_coordinate=False,\n                  **kwargs):\n    \"\"\"Check if detected bboxes are true positive or false positive.\n\n    Args:\n        det_bbox (ndarray): Detected bboxes of this image, of shape (m, 5).\n        gt_bboxes (ndarray): GT bboxes of this image, of shape (n, 4).","sourceCodeStart":35,"sourceCodeEnd":71,"githubUrl":"https://github.com/open-mmlab/mmdetection/blob/cfd5d3a985b0249de009b67d04f37263e11cdf3d/mmdet/evaluation/functional/mean_ap.py#L35-L71","documentation":"average_precision supports only two computation modes: 'area' (COCO-style interpolation) and '11points' (VOC-style 11-point interpolation). Any other mode string raises ValueError.","triggerScenarios":"Calling eval_map/average_precision with mode='11point', mode='max', or a typo like 'Arae'.","commonSituations":"Porting VOC configs where the flag is written '11point' (single point) instead of '11points'; custom eval scripts passing arbitrary mode strings.","solutions":["Use exactly 'area' or '11points'","Check config files for misspelled eval mode keys (e.g. '11point' -> '11points')"],"exampleFix":"# before\neval_map(det, gt, mode='11point')\n# after\neval_map(det, gt, mode='11points')","handlingStrategy":"validation","validationCode":"assert mode in ('area', '11points'), f'bad mode: {mode}'","typeGuard":"def is_valid_ap_mode(m: str) -> bool:\n    return m in ('area', '11points')","tryCatchPattern":null,"preventionTips":["Spell VOC mode as '11points' (plural)","Validate mode strings from configs before eval"],"tags":["mean-ap","mmdetection","invalid-argument"],"backgroundTag":"invalid-argument-value","analyzedSha":"cfd5d3a985b0249de009b67d04f37263e11cdf3d","analyzedAt":"2026-08-27T20:54:20.183Z","schemaVersion":2},"datasetVersion":"2026-08-28T00:17:15.603Z"}