anomalib.deploy.inferencers¶
Inferencers for Torch and OpenVINO.
Submodules¶
Package Contents¶
Classes¶
Abstract class for the inference. |
|
OpenVINO implementation for the inference. |
|
PyTorch implementation for the inference. |
- class anomalib.deploy.inferencers.Inferencer[source]¶
Bases:
abc.ABCAbstract 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.InferencerOpenVINO 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.InferencerPyTorch 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
- 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