class_docstr: Base class for detection evaluation methods.
  
  Args:
      config: a :class:`DetectionEvaluationConfig`
class_docstr_tok: ["Base","class","for","detection","evaluation","methods",".","Args",":","config",":","a",":","class",":","`","DetectionEvaluationConfig","`"]
docstr: Evaluates the ground truth and predictions in the given document.
  
  Args:
      doc: a :class:`fiftyone.core.document.Document`
      eval_key (None): the evaluation key for this evaluation
  
  Returns:
      a list of matched ``(gt_label, pred_label, iou, pred_confidence)``
      tuples
docstr_tok: ["Evaluates","the","ground","truth","and","predictions","in","the","given","document",".","Args",":","doc",":","a",":","class",":","`","fiftyone.core.document.Document","`","eval_key","(","None",")",":","the","evaluation","key","for","this","evaluation","Returns",":","a","list","of","matched","``","(","gt_label",",","pred_label",",","iou",",","pred_confidence",")","``","tuples"]
code: def evaluate(self, doc, eval_key=None):
      """Evaluates the ground truth and predictions in the given document.
  
      Args:
          doc: a :class:`fiftyone.core.document.Document`
          eval_key (None): the evaluation key for this evaluation
  
      Returns:
          a list of matched ``(gt_label, pred_label, iou, pred_confidence)``
          tuples
      """
      raise NotImplementedError("subclass must implement evaluate()")
  
imports: from copy import deepcopy
  import inspect
  import itertools
  import logging
  import numpy
  import eta.core.utils
  import fiftyone
  import fiftyone.core.evaluation
  import fiftyone.core.fields
  import fiftyone.core.labels
  import fiftyone.core.utils
  import fiftyone.core.validation
  from .base import BaseEvaluationResults
label_desc: Use image node_id 3 for calling the DetectionEvaluation obj's underlying member method code with example usage: obj.evaluate(doc, eval_key) without return types