MCPcopy
hub / github.com/hustvl/Vim / summarize

Method summarize

det/detectron2/evaluation/coco_evaluation.py:640–719  ·  view source on GitHub ↗

Compute and display summary metrics for evaluation results given a custom value for max_dets_per_image

(self)

Source from the content-addressed store, hash-verified

638 """
639
640 def summarize(self):
641 """
642 Compute and display summary metrics for evaluation results given
643 a custom value for max_dets_per_image
644 """
645
646 def _summarize(ap=1, iouThr=None, areaRng="all", maxDets=100):
647 p = self.params
648 iStr = " {:<18} {} @[ IoU={:<9} | area={:>6s} | maxDets={:>3d} ] = {:0.3f}"
649 titleStr = "Average Precision" if ap == 1 else "Average Recall"
650 typeStr = "(AP)" if ap == 1 else "(AR)"
651 iouStr = (
652 "{:0.2f}:{:0.2f}".format(p.iouThrs[0], p.iouThrs[-1])
653 if iouThr is None
654 else "{:0.2f}".format(iouThr)
655 )
656
657 aind = [i for i, aRng in enumerate(p.areaRngLbl) if aRng == areaRng]
658 mind = [i for i, mDet in enumerate(p.maxDets) if mDet == maxDets]
659 if ap == 1:
660 # dimension of precision: [TxRxKxAxM]
661 s = self.eval["precision"]
662 # IoU
663 if iouThr is not None:
664 t = np.where(iouThr == p.iouThrs)[0]
665 s = s[t]
666 s = s[:, :, :, aind, mind]
667 else:
668 # dimension of recall: [TxKxAxM]
669 s = self.eval["recall"]
670 if iouThr is not None:
671 t = np.where(iouThr == p.iouThrs)[0]
672 s = s[t]
673 s = s[:, :, aind, mind]
674 if len(s[s > -1]) == 0:
675 mean_s = -1
676 else:
677 mean_s = np.mean(s[s > -1])
678 print(iStr.format(titleStr, typeStr, iouStr, areaRng, maxDets, mean_s))
679 return mean_s
680
681 def _summarizeDets():
682 stats = np.zeros((12,))
683 # Evaluate AP using the custom limit on maximum detections per image
684 stats[0] = _summarize(1, maxDets=self.params.maxDets[2])
685 stats[1] = _summarize(1, iouThr=0.5, maxDets=self.params.maxDets[2])
686 stats[2] = _summarize(1, iouThr=0.75, maxDets=self.params.maxDets[2])
687 stats[3] = _summarize(1, areaRng="small", maxDets=self.params.maxDets[2])
688 stats[4] = _summarize(1, areaRng="medium", maxDets=self.params.maxDets[2])
689 stats[5] = _summarize(1, areaRng="large", maxDets=self.params.maxDets[2])
690 stats[6] = _summarize(0, maxDets=self.params.maxDets[0])
691 stats[7] = _summarize(0, maxDets=self.params.maxDets[1])
692 stats[8] = _summarize(0, maxDets=self.params.maxDets[2])
693 stats[9] = _summarize(0, areaRng="small", maxDets=self.params.maxDets[2])
694 stats[10] = _summarize(0, areaRng="medium", maxDets=self.params.maxDets[2])
695 stats[11] = _summarize(0, areaRng="large", maxDets=self.params.maxDets[2])
696 return stats
697

Callers 4

__str__Method · 0.95
test_fast_evalMethod · 0.45

Calls

no outgoing calls

Tested by 1

test_fast_evalMethod · 0.36