anomalib.deploy.inferencers

Inferencers for Torch and OpenVINO.

Submodules

Package Contents

Classes

Inferencer

Abstract class for the inference.

OpenVINOInferencer

OpenVINO implementation for the inference.

TorchInferencer

PyTorch implementation for the inference.

class anomalib.deploy.inferencers.Inferencer[source]

Bases: abc.ABC

Abstract class for the inference.

This is used by both Torch and OpenVINO inference.

abstract load_model(self, path: Union[str, pathlib.Path])

Load Model.

abstract pre_process(self, image: numpy.ndarray) Union[numpy.ndarray, torch.Tensor]

Pre-process.

abstract forward(self, image: Union[numpy.ndarray, torch.Tensor]) Union[numpy.ndarray, torch.Tensor]

Forward-Pass input to model.

abstract post_process(self, predictions: Union[numpy.ndarray, torch.Tensor], meta_data: Optional[Dict]) Tuple[numpy.ndarray, float]

Post-Process.

predict(self, image: Union[str, numpy.ndarray, pathlib.Path], superimpose: bool = True, meta_data: Optional[dict] = None, overlay_mask: bool = False) Tuple[numpy.ndarray, float]

Perform a prediction for a given input image.

The main workflow is (i) pre-processing, (ii) forward-pass, (iii) post-process.

Parameters
  • image (Union[str, np.ndarray]) – Input image whose output is to be predicted. It could be either a path to image or numpy array itself.

  • superimpose (bool) – If this is set to True, output predictions will be superimposed onto the original image. If false, predict method will return the raw heatmap.

  • overlay_mask (bool) – If this is set to True, output segmentation mask on top of image.

Returns

Output predictions to be visualized.

Return type

np.ndarray

_superimpose_segmentation_mask(self, meta_data: dict, anomaly_map: numpy.ndarray, image: numpy.ndarray)

Superimpose segmentation mask on top of image.

Parameters
  • meta_data (dict) – Metadata of the image which contains the image size.

  • anomaly_map (np.ndarray) – Anomaly map which is used to extract segmentation mask.

  • image (np.ndarray) – Image on which segmentation mask is to be superimposed.

Returns

Image with segmentation mask superimposed.

Return type

np.ndarray

__call__(self, image: numpy.ndarray) Tuple[numpy.ndarray, float]

Call predict on the Image.

Parameters

image (np.ndarray) – Input Image

Returns

Output predictions to be visualized

Return type

np.ndarray

_normalize(self, anomaly_maps: Union[torch.Tensor, numpy.ndarray], pred_scores: Union[torch.Tensor, numpy.float32], meta_data: Union[Dict, omegaconf.DictConfig]) Tuple[Union[numpy.ndarray, torch.Tensor], float]

Applies normalization and resizes the image.

Parameters
  • anomaly_maps (Union[Tensor, np.ndarray]) – Predicted raw anomaly map.

  • pred_scores (Union[Tensor, np.float32]) – Predicted anomaly score

  • meta_data (Dict) – Meta data. Post-processing step sometimes requires additional meta data such as image shape. This variable comprises such info.

Returns

Post processed predictions that are ready to be visualized and

predicted scores.

Return type

Tuple[Union[np.ndarray, Tensor], float]

_load_meta_data(self, path: Optional[Union[str, pathlib.Path]] = None) Union[omegaconf.DictConfig, Dict[str, Union[float, numpy.ndarray, torch.Tensor]]]

Loads the meta data from the given path.

Parameters

path (Optional[Union[str, Path]], optional) – Path to JSON file containing the metadata. If no path is provided, it returns an empty dict. Defaults to None.

Returns

Dictionary containing the metadata.

Return type

Union[DictConfig, Dict]

class anomalib.deploy.inferencers.OpenVINOInferencer(config: Union[omegaconf.DictConfig, omegaconf.ListConfig], path: Union[str, pathlib.Path, Tuple[bytes, bytes]], meta_data_path: Union[str, pathlib.Path] = None)[source]

Bases: anomalib.deploy.inferencers.base.Inferencer

OpenVINO implementation for the inference.

Parameters
  • config (DictConfig) – Configurable parameters that are used during the training stage.

  • path (Union[str, Path]) – Path to the openvino onnx, xml or bin file.

  • meta_data_path (Union[str, Path], optional) – Path to metadata file. Defaults to None.

load_model(self, path: Union[str, pathlib.Path, Tuple[bytes, bytes]])

Load the OpenVINO model.

Parameters

path (Union[str, Path, Tuple[bytes, bytes]]) – Path to the onnx or xml and bin files or tuple of .xml and .bin data as bytes.

Returns

Input and Output blob names

together with the Executable network.

Return type

[Tuple[str, str, ExecutableNetwork]]

pre_process(self, image: numpy.ndarray) numpy.ndarray

Pre process the input image by applying transformations.

Parameters

image (np.ndarray) – Input image.

Returns

pre-processed image.

Return type

np.ndarray

forward(self, image: numpy.ndarray) numpy.ndarray

Forward-Pass input tensor to the model.

Parameters

image (np.ndarray) – Input tensor.

Returns

Output predictions.

Return type

np.ndarray

post_process(self, predictions: numpy.ndarray, meta_data: Optional[Union[Dict, omegaconf.DictConfig]] = None) Tuple[numpy.ndarray, float]

Post process the output predictions.

Parameters
  • predictions (np.ndarray) – Raw output predicted by the model.

  • meta_data (Dict, optional) – Meta data. Post-processing step sometimes requires additional meta data such as image shape. This variable comprises such info. Defaults to None.

Returns

Post processed predictions that are ready to be visualized.

Return type

np.ndarray

class anomalib.deploy.inferencers.TorchInferencer(config: Union[omegaconf.DictConfig, omegaconf.ListConfig], model_source: Union[str, pathlib.Path, anomalib.models.components.AnomalyModule], meta_data_path: Union[str, pathlib.Path] = None)[source]

Bases: anomalib.deploy.inferencers.base.Inferencer

PyTorch implementation for the inference.

Parameters
  • config (DictConfig) – Configurable parameters that are used during the training stage.

  • model_source (Union[str, Path, AnomalyModule]) – Path to the model ckpt file or the Anomaly model.

  • meta_data_path (Union[str, Path], optional) – Path to metadata file. If none, it tries to load the params from the model state_dict. Defaults to None.

_load_meta_data(self, path: Optional[Union[str, pathlib.Path]] = None) Union[Dict, omegaconf.DictConfig]

Load metadata from file or from model state dict.

Parameters

path (Optional[Union[str, Path]], optional) – Path to metadata file. If none, it tries to load the params from the model state_dict. Defaults to None.

Returns

Dictionary containing the meta_data.

Return type

Dict

load_model(self, path: Union[str, pathlib.Path]) anomalib.models.components.AnomalyModule

Load the PyTorch model.

Parameters

path (Union[str, Path]) – Path to model ckpt file.

Returns

PyTorch Lightning model.

Return type

(AnomalyModule)

pre_process(self, image: numpy.ndarray) torch.Tensor

Pre process the input image by applying transformations.

Parameters

image (np.ndarray) – Input image

Returns

pre-processed image.

Return type

Tensor

forward(self, image: torch.Tensor) torch.Tensor

Forward-Pass input tensor to the model.

Parameters

image (Tensor) – Input tensor.

Returns

Output predictions.

Return type

Tensor

post_process(self, predictions: torch.Tensor, meta_data: Optional[Union[Dict, omegaconf.DictConfig]] = None) Tuple[numpy.ndarray, float]

Post process the output predictions.

Parameters
  • predictions (Tensor) – Raw output predicted by the model.

  • meta_data (Dict, optional) – Meta data. Post-processing step sometimes requires additional meta data such as image shape. This variable comprises such info. Defaults to None.

Returns

Post processed predictions that are ready to be visualized.

Return type

np.ndarray