code: def evaluate_boxes(
      json_dataset,
      all_boxes,
      output_dir,
      use_salt=True,
      cleanup=True,
      use_matlab=False,
  ):
      salt = "_{}".format(str(uuid.uuid4())) if use_salt else ""
      filenames = _write_voc_results_files(
          json_dataset, all_boxes, salt
      )
      _do_python_eval(json_dataset, salt, output_dir)
      if use_matlab:
          _do_matlab_eval(json_dataset, salt, output_dir)
      if cleanup:
          for filename in filenames:
              shutil.copy(filename, output_dir)
              os.remove(filename)
      return None
  
file_path: dense-pose/detectron/datasets/voc_dataset_evaluator.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import logging
  import numpy
  import os
  import shutil
  import uuid
  from detectron.core.config import cfg
  from detectron.datasets.dataset_catalog import get_devkit_dir
  from detectron.datasets.voc_eval import voc_eval
  from detectron.utils.io import save_object
label_desc: Use image node_id 1 for calling a global function with example usage: evaluate_boxes(json_dataset, all_boxes, output_dir, use_salt, cleanup, use_matlab) and returns: None