docs: def eval_detection_voc(pred_boxlists, gt_boxlists, iou_thresh=0.5, use_07_metric=False):
      """Evaluate on voc dataset.
      Args:
          pred_boxlists(list[BoxList]): pred boxlist, has labels and scores fields.
          gt_boxlists(list[BoxList]): ground truth boxlist, has labels field.
          iou_thresh: iou thresh
          use_07_metric: boolean
      Returns:
          dict represents the results
      """
      assert len(gt_boxlists) == len(
          pred_boxlists
      ), "Length of gt and pred lists need to be same."
      prec, rec = calc_detection_voc_prec_rec(
          pred_boxlists=pred_boxlists, gt_boxlists=gt_boxlists, iou_thresh=iou_thresh
      )
      ap = calc_detection_voc_ap(prec, rec, use_07_metric=use_07_metric)
      return {"ap": ap, "map": np.nanmean(ap)}