Tensorboard graph recall

'DetectionBoxes_Precision/mAP': mean average precision over classes averaged over IOU thresholds ranging from .5 to .95 with .05 increments.

'DetectionBoxes_Precision/[email protected]': mean average precision at 50% IOU

'DetectionBoxes_Precision/[email protected]': mean average precision at 75% IOU

'DetectionBoxes_Precision/mAP (small)': mean average precision for small objects (area < 32^2 pixels).

'DetectionBoxes_Precision/mAP (medium)': mean average precision for medium sized objects (32^2 pixels < area < 96^2 pixels).

'DetectionBoxes_Precision/mAP (large)': mean average precision for large objects (96^2 pixels < area < 10000^2 pixels).

'DetectionBoxes_Recall/AR@1': average recall with 1 detection.

'DetectionBoxes_Recall/AR@10': average recall with 10 detections.

'DetectionBoxes_Recall/AR@100': average recall with 100 detections.

'DetectionBoxes_Recall/AR@100 (small)': average recall for small objects with 100.

'DetectionBoxes_Recall/AR@100 (medium)': average recall for medium objects with 100.

'DetectionBoxes_Recall/AR@100 (large)': average recall for large objects with 100 detections.


As @kmh pointed out, a brief (but not great) explanation can be found here. The actual mathematical definition can be found in the code here.

mAP = Mean Average Precision mAR = Mean Average Recall

When they say mean average, unless specified otherwise, they mean that they are computing these metrics across all examples (i.e. images), classes, and IOU thresholds (which are in range .50:.05:.95, i.e. [0.5, 0.55, ..., 0.90, 0.95]).

So, about these 12 metrics:

Precision (mAP)

  • DetectionBoxes_Precision/mAP: as explained above, it means that you compute the precision over all images, classes, and IOU thresholds and then take the average.

  • DetectionBoxes_Precision/[email protected]: here, it specifies the IOU, so in this case it doesn't go over all IOU thresholds, only the specified one. This metric is the average precision using only IOU=0.5 (but still going over all images and classes). The idea of this metric is to give you a rough sense of precision if you are not super strict about the position of your bounding boxes (you only require at least IOU=0.5 to count as positive).

  • DetectionBoxes_Precision/[email protected]: Same as above, but using IOU=0.75 instead of IOU=0.5. The idea of this metric is to give you a rough sense of precision if you are somewhat strict about the position of your bounding boxes (you require at least IOU=0.75 to count as positive).

  • DetectionBoxes_Precision/mAP (small, medium, large) these are essentially the same as mAP above, but sliced by the size of the bounding boxes. The small one is only computing mAP for bounding boxes that are small (area < 32*32 pixels). Medium is for bounding boxes with 32*32 < area < 96*96. Large is for area > 96*96 (in reality the implementation for large is 96*96 < area < 1e5*1e5). These metrics allow you to get a sense if your model is performing better/worse in specific sizes of bounding boxes.

Recall (mAR)

  • DetectionBoxes_Recall/AR@(1, 10, 100): These are mean average recalls sliced by the the number of detections in the image. AR@1 means that it will compute the mean average recall across all images with at most 1 detection (i.e. 0 or 1), across all classes, and across all IOU thresholds. For AR@10, it would do the same, but across all images with at most 10 detections (i.e. 0 <= n <= 10). AR@100 is for at most 100 detections.

  • DetectionBoxes_Recall/AR@100 (small, medium, large): These are mean average recalls sliced by the size of the detected bounding box. Notice the AR@100 in the metric. This means that it only takes images with at most 100 detections (in general, this means most or all images). Sizes are the same as in mAP above (i.e. small: [0, 32*32], medium: [32*32, 96*96], large: [96*96, 1e5*1e5])