code: def _parse_person_annos(person_annos_dir, split):
      paths_patt = os.path.join(person_annos_dir, split, "*", "*.json")
      anno_paths = etau.get_glob_matches(paths_patt)
      if not anno_paths:
          return {}
  
      logger.info("Parsing person annotations for split '%s'...", split)
      detections_map = {}
      with fou.ProgressBar() as pb:
          for anno_path in pb(anno_paths):
              uuid = os.path.splitext(os.path.basename(anno_path))[0][
                  : -len("_gtBboxCityPersons")
              ]
              detections_map[uuid] = _parse_bbox_file(anno_path)
  
      return detections_map
  
imports: import logging
  import os
  import eta.core.serial
  import eta.core.utils
  import fiftyone.core.dataset
  import fiftyone.core.fields
  import fiftyone.core.labels
  import fiftyone.core.media
  import fiftyone.core.sample
  import fiftyone.core.utils
  import fiftyone.utils.data
  import fiftyone.types
label_desc: Use image node_id 14 for calling a global function with example usage: _parse_person_annos(person_annos_dir, split) and returns: detections_map, dict