class_docstr: Class that stores the results of a detection evaluation.
  
  Args:
      samples: the :class:`fiftyone.core.collections.SampleCollection` used
      config: the :class:`DetectionEvaluationConfig` used
      eval_key: the evaluation key
      matches: a list of
          ``(gt_label, pred_label, iou, pred_confidence, gt_id, pred_id)``
          matches. Either label can be ``None`` to indicate an unmatched
          object
      classes (None): the list of possible classes. If not provided, the
          observed ground truth/predicted labels are used
      missing (None): a missing label string. Any unmatched objects are given
          this label for evaluation purposes
      backend (None): a :class:`DetectionEvaluation` backend
class_docstr_tok: ["Class","that","stores","the","results","of","a","detection","evaluation",".","Args",":","samples",":","the",":","class",":","`","fiftyone.core.collections.SampleCollection","`","used","config",":","the",":","class",":","`","DetectionEvaluationConfig","`","used","eval_key",":","the","evaluation","key","matches",":","a","list","of","``","(","gt_label",",","pred_label",",","iou",",","pred_confidence",",","gt_id",",","pred_id",")","``","matches",".","Either","label","can","be","``","None","``","to","indicate","an","unmatched","object","classes","(","None",")",":","the","list","of","possible","classes",".","If","not","provided",",","the","observed","ground","truth\/predicted","labels","are","used","missing","(","None",")",":","a","missing","label","string",".","Any","unmatched","objects","are","given","this","label","for","evaluation","purposes","backend","(","None",")",":","a",":","class",":","`","DetectionEvaluation","`","backend"]
code: def _from_dict(cls, d, samples, config, eval_key, **kwargs):
      ytrue = d["ytrue"]
      ypred = d["ypred"]
      ious = d["ious"]
  
      confs = d.get("confs", None)
      if confs is None:
          confs = itertools.repeat(None)
  
      ytrue_ids = d.get("ytrue_ids", None)
      if ytrue_ids is None:
          ytrue_ids = itertools.repeat(None)
  
      ypred_ids = d.get("ypred_ids", None)
      if ypred_ids is None:
          ypred_ids = itertools.repeat(None)
  
      classes = d.get("classes", None)
      missing = d.get("missing", None)
  
      matches = list(
          zip(ytrue, ypred, ious, confs, ytrue_ids, ypred_ids)
      )
  
      return cls(
          samples,
          config,
          eval_key,
          matches,
          classes=classes,
          missing=missing,
          **kwargs,
      )
  
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 2 for calling the DetectionResults obj's underlying member method code with example usage: obj._from_dict(cls, d, samples, config, eval_key) and returns: cls