| # Copyright © 2020 Arm Ltd and Contributors. All rights reserved. |
| # SPDX-License-Identifier: MIT |
| |
| """Contains helper functions that can be used across the example apps.""" |
| |
| import os |
| import errno |
| from pathlib import Path |
| |
| import numpy as np |
| |
| |
| def dict_labels(labels_file_path: str, include_rgb=False) -> dict: |
| """Creates a dictionary of labels from the input labels file. |
| |
| Args: |
| labels_file: Path to file containing labels to map model outputs. |
| include_rgb: Adds randomly generated RGB values to the values of the |
| dictionary. Used for plotting bounding boxes of different colours. |
| |
| Returns: |
| Dictionary with classification indices for keys and labels for values. |
| |
| Raises: |
| FileNotFoundError: |
| Provided `labels_file_path` does not exist. |
| """ |
| labels_file = Path(labels_file_path) |
| if not labels_file.is_file(): |
| raise FileNotFoundError( |
| errno.ENOENT, os.strerror(errno.ENOENT), labels_file_path |
| ) |
| |
| labels = {} |
| with open(labels_file, "r") as f: |
| for idx, line in enumerate(f, 0): |
| if include_rgb: |
| labels[idx] = line.strip("\n"), tuple(np.random.random(size=3) * 255) |
| else: |
| labels[idx] = line.strip("\n") |
| return labels |