docstr: Load image and bounding boxes info from XML file in the PASCAL VOC
  format.
docstr_tok: ["Load","image","and","bounding","boxes","info","from","XML","file","in","the","PASCAL","VOC","format","."]
code: def _load_pascal_annotation(self, index):
      """
      Load image and bounding boxes info from XML file in the PASCAL VOC
      format.
      """
      filename = os.path.join(
          self._data_path, "Annotations", index + ".xml"
      )
  
      # print ('Loading: {}'.format(filename))
      def get_data_from_tag(node, tag):
          return node.getElementsByTagName(tag)[0].childNodes[0].data
  
      with open(filename) as f:
          data = minidom.parseString(f.read())
  
      objs = data.getElementsByTagName("object")
      num_objs = len(objs)
  
      boxes = np.zeros((num_objs, 4), dtype=np.uint16)
      gt_classes = np.zeros((num_objs), dtype=np.int32)
      overlaps = np.zeros(
          (num_objs, self.num_classes), dtype=np.float32
      )
  
      # Load object bounding boxes into a data frame.
      for ix, obj in enumerate(objs):
          # Make pixel indexes 0-based
          x1 = float(get_data_from_tag(obj, "xmin")) - 1
          y1 = float(get_data_from_tag(obj, "ymin")) - 1
          x2 = float(get_data_from_tag(obj, "xmax")) - 1
          y2 = float(get_data_from_tag(obj, "ymax")) - 1
          cls = self._class_to_ind[
              str(get_data_from_tag(obj, "name")).lower().strip()
          ]
          boxes[ix, :] = [x1, y1, x2, y2]
          gt_classes[ix] = cls
          overlaps[ix, cls] = 1.0
  
      overlaps = scipy.sparse.csr_matrix(overlaps)
  
      return {
          "boxes": boxes,
          "gt_classes": gt_classes,
          "gt_overlaps": overlaps,
          "flipped": False,
      }
  
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 12 for calling the pascal_voc obj's underlying member method code with example usage: obj._load_pascal_annotation(index) and returns: dict, node