class_docstr: Importer for KITTI detection datasets stored on disk.
  
  See :ref:`this page <KITTIDetectionDataset-import>` for format details.
  
  Args:
      dataset_dir (None): the dataset directory. If omitted, ``data_path``
          and/or ``labels_path`` must be provided
      data_path (None): an optional parameter that enables explicit control
          over the location of the media. Can be any of the following:
  
          -   a folder name like ``"data"`` or ``"data/"`` specifying a
              subfolder of ``dataset_dir`` where the media files reside
          -   an absolute directory path where the media files reside. In
              this case, the ``dataset_dir`` has no effect on the location of
              the data
          -   a filename like ``"data.json"`` specifying the filename of the
              JSON data manifest file in ``dataset_dir``
          -   an absolute filepath specifying the location of the JSON data
              manifest. In this case, ``dataset_dir`` has no effect on the
              location of the data
          -   a dict mapping filenames to absolute filepaths
  
          If None, this parameter will default to whichever of ``data/`` or
          ``data.json`` exists in the dataset directory
      labels_path (None): an optional parameter that enables explicit control
          over the location of the labels. Can be any of the following:
  
          -   a folder name like ``"labels"`` or ``"labels/"`` specifying the
              location of the labels in ``dataset_dir``
          -   an absolute folder path to the labels. In this case,
              ``dataset_dir`` has no effect on the location of the labels
  
          If None, the parameter will default to ``labels/``
      include_all_data (False): whether to generate samples for all images in
          the data directory (True) rather than only creating samples for
          images with label entries (False)
      extra_attrs (True): whether to load extra annotation attributes onto
          the imported labels. Supported values are:
  
          -   ``True``: load all extra attributes found
          -   ``False``: do not load extra attributes
          -   a name or list of names of specific attributes to load
      shuffle (False): whether to randomly shuffle the order in which the
          samples are imported
      seed (None): a random seed to use when shuffling
      max_samples (None): a maximum number of samples to import. By default,
          all samples are imported
code: def __next__(self):
      uuid = next(self._iter_uuids)
  
      try:
          image_path = self._image_paths_map[uuid]
      except KeyError:
          raise ValueError("No image found for sample '%s'" % uuid)
  
      image_metadata = fom.ImageMetadata.build_for(image_path)
  
      labels_path = self._labels_paths_map.get(uuid, None)
      if labels_path:
          # Labeled image
          frame_size = (image_metadata.width, image_metadata.height)
          detections = load_kitti_detection_annotations(
              labels_path, frame_size, extra_attrs=self.extra_attrs
          )
      else:
          # Unlabeled image
          detections = None
  
      return image_path, image_metadata, detections
  
imports: import csv
  import logging
  import struct
  import os
  import numpy
  import eta.core.utils
  import eta.core.web
  import fiftyone
  import fiftyone.core.labels
  import fiftyone.core.metadata
  import fiftyone.core.storage
  import fiftyone.core.utils
  import fiftyone.utils.data
label_desc: Use image node_id 4 for calling the KITTIDetectionDatasetImporter obj's underlying member method code with example usage: obj.__next__() and returns: image_path,  image_metadata,  detections