class_docstr: Reads data suitable for object detection.
  
  The object detection task needs the following information:
      - images.
      - ground truth, rectangular bounding boxes with associated labels.
  
  For implementing a subclass of object detection, one needs to implement
  the following methods:
      - __init__
      - get_total
      - get_classes
      - iterate
  
  Optionally:
      - pretty_name
  
  Additionally, must use the `_per_class_counter` variable to honor the max
  number of examples per class in an efficient way.
class_docstr_tok: ["Reads","data","suitable","for","object","detection",".","The","object","detection","task","needs","the","following","information",":","-","images",".","-","ground","truth",",","rectangular","bounding","boxes","with","associated","labels",".","For","implementing","a","subclass","of","object","detection",",","one","needs","to","implement","the","following","methods",":","-","__init__","-","get_total","-","get_classes","-","iterate","Optionally",":","-","pretty_name","Additionally",",","must","use","the","`","_per_class_counter","`","variable","to","honor","the","max","number","of","examples","per","class","in","an","efficient","way","."]
docstr: Iterate over object detection records read from the dataset source.
  
  Returns:
      iterator of records of type `dict` with the following keys:
          width (int): Image width.
          height (int): Image height.
          depth (int): Number of channels in the image.
          filename (str): Filename (or image id)
          image_raw (bytes): Read image as bytes
          gt_boxes (list of dicts):
              label (int): Label index over the possible classes.
              xmin (int): x value for top-left point.
              ymin (int): y value for top-left point.
              xmax (int): x value for bottom-right point.
              ymax (int): y value for bottom-right point.
docstr_tok: ["Iterate","over","object","detection","records","read","from","the","dataset","source",".","Returns",":","iterator","of","records","of","type","`","dict","`","with","the","following","keys",":","width","(","int",")",":","Image","width",".","height","(","int",")",":","Image","height",".","depth","(","int",")",":","Number","of","channels","in","the","image",".","filename","(","str",")",":","Filename","(","or","image","id",")","image_raw","(","bytes",")",":","Read","image","as","bytes","gt_boxes","(","list","of","dicts",")",":","label","(","int",")",":","Label","index","over","the","possible","classes",".","xmin","(","int",")",":","x","value","for","top-left","point",".","ymin","(","int",")",":","y","value","for","top-left","point",".","xmax","(","int",")",":","x","value","for","bottom-right","point",".","ymax","(","int",")",":","y","value","for","bottom-right","point","."]
code: def iterate(self):
      """
      Iterate over object detection records read from the dataset source.
  
      Returns:
          iterator of records of type `dict` with the following keys:
              width (int): Image width.
              height (int): Image height.
              depth (int): Number of channels in the image.
              filename (str): Filename (or image id)
              image_raw (bytes): Read image as bytes
              gt_boxes (list of dicts):
                  label (int): Label index over the possible classes.
                  xmin (int): x value for top-left point.
                  ymin (int): y value for top-left point.
                  xmax (int): x value for bottom-right point.
                  ymax (int): y value for bottom-right point.
      """
  
imports: import abc
  import six
  import tensorflow
  from collections import Counter
  from luminoth.tools.dataset.readers import BaseReader
label_desc: Use image node_id 14 for calling the ObjectDetectionReader obj's underlying member method code with example usage: obj.iterate() without return types