code: def evaluate_detections(
      self,
      all_boxes,
      output_dir,
      boUsePythonImpl=True,
      use_07_metric=False,
  ):
      self._write_voc_results_file(all_boxes, output_dir)
      if not boUsePythonImpl:
          self._do_matlab_eval(comp_id, output_dir)
      else:
          self._do_python_eval(output_dir, use_07_metric)
  
imports: from __future__ import print_function
  import os, pdb
  import xml.dom.minidom
  import numpy
  import scipy.sparse
  import scipy.io
  import pickle
  import subprocess
  from .imdb import imdb
  from .voc_eval import voc_eval
label_desc: Use image node_id 14 for calling the pascal_voc obj's underlying member method code with example usage: obj.evaluate_detections(all_boxes, output_dir, boUsePythonImpl, use_07_metric) without return types