Folders

Run inference on entire image folders with predict_dir, streaming results efficiently from flat or nested directories.

Estimated read time: 2 minutes

You can run inference over a whole directory of images using model.predict_dir(...).

Signature

degirum.model.Model.predict_dir(
    path, *, recursive=False,
    extensions=['.jpg', '.jpeg', '.png', '.bmp']
)
  • What it does: runs the full inference lifecycle for all files in a folder that match the given extensions, yielding one InferenceResults per image

  • Returns: an iterator (Iterator[InferenceResults]), so you can use it directly in a for loop

  • Limitations: supports only single-input models

Common setup (used in all cases)

from pathlib import Path
from degirum_tools import ModelSpec

# Configure & load once
model_spec = ModelSpec(
    model_name="yolov8n_coco--640x640_quant_hailort_multidevice_1",
    zoo_url="degirum/hailo",
    inference_host_address="@local",  # or "@cloud" / server URL
    model_properties={"device_type": ["HAILORT/HAILO8", "HAILORT/HAILO8L"]},
)
model = model_spec.load_model()

Most results include result.image_overlay (NumPy BGR), which you can save for quick visualization.

Basic folder (non-recursive, default extensions)

Use when you have a flat folder of standard image formats.

in_dir = Path("images")  # folder with .jpg/.jpeg/.png/.bmp

for result in model.predict_dir(str(in_dir)):
    # result contains detections & convenience fields like image_overlay
    print(result)  # optional: inspect structured output

Nested folders (recursive walk)

Use when working with datasets split across subdirectories (e.g., class-based folders).

in_dir = "datasets/val"  # root directory with subfolders

for result in model.predict_dir(in_dir, recursive=True):
    # handle/save each result as it arrives
    pass
  • Iterator-friendly: predict_dir streams results; you don’t load everything into memory.

  • Filtering: Use extensions= (a string or list) to limit which files are processed.

  • Reproducibility: Keep input folders immutable and write outputs to a separate directory.

  • Colorspace: Overlay images are in BGR (OpenCV-ready). Convert to RGB on save/view if needed.

Minimal example

for result in model.predict_dir("./some_path"):
    print(result)

Last updated

Was this helpful?