code: def eval_detection_voc(
      pred_bboxes,
      pred_labels,
      pred_scores,
      gt_bboxes,
      gt_labels,
      gt_difficults=None,
      iou_thresh=0.5,
      use_07_metric=False,
  ):
      """Calculate average precisions based on evaluation code of PASCAL VOC.
  
      This function evaluates predicted bounding boxes obtained from a dataset
      which has :math:`N` images by using average precision for each class.
      The code is based on the evaluation code used in PASCAL VOC Challenge.
  
      Args:
          pred_bboxes (iterable of numpy.ndarray): See the table below.
          pred_labels (iterable of numpy.ndarray): See the table below.
          pred_scores (iterable of numpy.ndarray): See the table below.
          gt_bboxes (iterable of numpy.ndarray): See the table below.
          gt_labels (iterable of numpy.ndarray): See the table below.
          gt_difficults (iterable of numpy.ndarray): See the table below.
              By default, this is :obj:`None`. In that case, this function
              considers all bounding boxes to be not difficult.
          iou_thresh (float): A prediction is correct if its Intersection over
              Union with the ground truth is above this value.
          use_07_metric (bool): Whether to use PASCAL VOC 2007 evaluation metric
              for calculating average precision. The default value is
              :obj:`False`.
  
      .. csv-table::
          :header: name, shape, dtype, format
  
          :obj:`pred_bboxes`, ":math:`[(R, 4)]`", :obj:`float32`, \
          ":math:`(y_{min}, x_{min}, y_{max}, x_{max})`"
          :obj:`pred_labels`, ":math:`[(R,)]`", :obj:`int32`, \
          ":math:`[0, \#fg\_class - 1]`"
          :obj:`pred_scores`, ":math:`[(R,)]`", :obj:`float32`, \
          --
          :obj:`gt_bboxes`, ":math:`[(R, 4)]`", :obj:`float32`, \
          ":math:`(y_{min}, x_{min}, y_{max}, x_{max})`"
          :obj:`gt_labels`, ":math:`[(R,)]`", :obj:`int32`, \
          ":math:`[0, \#fg\_class - 1]`"
          :obj:`gt_difficults`, ":math:`[(R,)]`", :obj:`bool`, --
  
      Returns:
          dict:
  
          The keys, value-types and the description of the values are listed
          below.
  
          * **ap** (*numpy.ndarray*): An array of average precisions. \
              The :math:`l`-th value corresponds to the average precision \
              for class :math:`l`. If class :math:`l` does not exist in \
              either :obj:`pred_labels` or :obj:`gt_labels`, the corresponding \
              value is set to :obj:`numpy.nan`.
          * **map** (*float*): The average of Average Precisions over classes.
  
      """
  
      prec, rec = calc_detection_voc_prec_rec(
          pred_bboxes,
          pred_labels,
          pred_scores,
          gt_bboxes,
          gt_labels,
          gt_difficults,
          iou_thresh=iou_thresh,
      )
  
      ap = calc_detection_voc_ap(prec, rec, use_07_metric=use_07_metric)
  
      return {"ap": ap, "map": np.nanmean(ap)}
  
file_path: chainercv/chainercv/evaluations/eval_detection_voc.py
imports: from __future__ import division
  from collections import defaultdict
  import itertools
  import numpy
  import six
  from chainercv.utils.bbox.bbox_iou import bbox_iou
label_desc: Use image node_id 1 for calling a global function with example usage: eval_detection_voc(pred_bboxes, pred_labels, pred_scores, gt_bboxes, gt_labels, gt_difficults, iou_thresh, use_07_metric) and returns: dict