code: def _load_objects(csv_paths, csv_positions, prefix):
      """Returns objects listed within given CSV files."""
      logging.info(
          "Loading CSVs %s from positions %s with prefix %s",
          csv_paths,
          csv_positions,
          prefix,
      )
      objects = collections.defaultdict(list)
      for i, labels_path in enumerate(csv_paths):
          with epath.Path(labels_path).open(mode="rb") as csv_f:
              if csv_positions[i] > 0:
                  csv_f.seek(csv_positions[i])
              else:
                  csv_f.readline()  # Drop headers
              for line in csv_f:
                  (
                      image_id,
                      source,
                      label,
                      confidence,
                  ) = _read_csv_line(line)
                  if prefix and image_id[0] != prefix:
                      break
                  csv_positions[i] = csv_f.tell()
                  image_id = int(image_id, 16)
                  current_obj = _Object(
                      label, int(float(confidence) * 10), source
                  )
                  objects[image_id].append(current_obj)
      return dict(objects)
  
imports: from __future__ import annotations
  import collections
  import csv
  import functools
  import io
  import os
  from typing import List
  from absl import logging
  from etils import epath
  import numpy
  import tensorflow_datasets.public_api
label_desc: Use image node_id 3 for calling a global function with example usage: _load_objects(csv_paths, csv_positions, prefix) and returns: dict