code: def __init__(self, data, class_map, label_field, iscrowd):
      template_record = ObjectDetectionRecord()
      template_record.add_component(IsCrowdsRecordComponent())
      super().__init__(template_record=template_record)
  
      data = data
      label_field = label_field
      iscrowd = iscrowd
  
      self.data = []
      self.class_map = class_map
  
      for fp, w, h, sample_labs, sample_boxes, sample_iscrowd in zip(
          data.values("filepath"),
          data.values("metadata.width"),
          data.values("metadata.height"),
          data.values(label_field + ".detections.label"),
          data.values(label_field + ".detections.bounding_box"),
          data.values(label_field + ".detections." + iscrowd),
      ):
          for lab, box, iscrowd in zip(
              sample_labs, sample_boxes, sample_iscrowd
          ):
              self.data.append((fp, w, h, lab, box, iscrowd))
  
imports: from typing import Any, Dict, Hashable, List, Optional, Sequence
  from flash.core.data.io.classification_input import ClassificationInputMixin
  from flash.core.data.io.input import DataKeys
  from flash.core.data.utilities.classification import TargetFormatter
  from flash.core.data.utilities.paths import PATH_TYPE, filter_valid_files
  from flash.core.data.utilities.samples import to_samples
  from flash.core.integrations.fiftyone.utils import FiftyOneLabelUtilities
  from flash.core.integrations.icevision.data import IceVisionInput
  from flash.core.utilities.imports import _FIFTYONE_AVAILABLE, _ICEVISION_AVAILABLE, lazy_import, requires
  from flash.image.data import IMG_EXTENSIONS, NP_EXTENSIONS, ImageFilesInput, ImageInput, ImageNumpyInput, ImageTensorInput
label_desc: Use image node_id 1 to create a new FiftyOneParser object from inherited base classes: Parser with example: obj = FiftyOneParser(data, class_map, label_field, iscrowd)