
    {-j!                         d dl mZmZmZmZmZ d dlZddlm	Z	 ddl
mZmZ ddlmZ ddlmZ d	d
lmZ d	dlmZ ej         G d de                      Z e	d           G d de                      ZdS )    )AnyDictListOptionalUnionN   )pipeline_requires_extra   )	HPIConfigPaddlePredictorOption)	UadResult)	benchmark   )(AutoParallelImageSimpleInferencePipeline)BasePipelinec                       e Zd ZdZddddddddedee         dee         deeeef                  d	ee         d
e	dee
eeef         ef                  ddf fdZde
eee         ej        eej                 f         defdZ xZS )_AnomalyDetectionPipelinez'Image AnomalyDetectionPipeline PipelineNFdeviceengineengine_config	pp_optionuse_hpip
hpi_configconfigr   r   r   r   r   r   returnc          
           t                      j        d||||||d| |d         d         }	|                     |	          | _        dS )a  Initializes the image anomaly detection pipeline.

        Args:
            config (Dict): Configuration dictionary containing various settings.
            device (Optional[str], optional): The device to use for prediction. Defaults to `None`.
            engine (Optional[str], optional): Inference engine. Defaults to `None`.
            engine_config (Optional[Dict[str, Any]], optional): Engine-specific config. Defaults to `None`.
            pp_option (Optional[PaddlePredictorOption], optional): Paddle predictor options.
                Defaults to `None`.
            use_hpip (bool, optional): Whether to use HPIP. Defaults to `False`.
            hpi_config (Optional[Union[Dict[str, Any], HPIConfig]], optional):
                HPIP configuration. Defaults to `None`.
        r   
SubModulesAnomalyDetectionN )super__init__create_modelanomaly_detetion_model)selfr   r   r   r   r   r   r   kwargsanomaly_detetion_model_config	__class__s             v/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/inference/pipelines/anomaly_detection/pipeline.pyr"   z"_AnomalyDetectionPipeline.__init__   sv    2 	 	
'!	
 	
 	
 	
 	
 )/|(<=O(P%&*&7&78U&V&V###    inputc              +   @   K   |                      |          E d{V  dS )ad  Predicts anomaly detection results for the given input.

        Args:
            input (Union[str, list[str], np.ndarray, list[np.ndarray]]): The input image(s) or path(s) to the images.
            **kwargs: Additional keyword arguments that can be passed to the function.

        Returns:
            UadResult: The predicted anomaly results.
        N)r$   )r%   r+   r&   s      r)   predictz!_AnomalyDetectionPipeline.predictE   s4       ..u55555555555r*   )__name__
__module____qualname____doc__r   r   strr   r   boolr   r   r"   r   npndarrayr   r-   __classcell__)r(   s   @r)   r   r      s1       11 !% $2659AE$W $W $W$W 	$W
 $W  S#X/$W 12$W $W U4S>9#<=>$W 
$W $W $W $W $W $WL63S	2:tBJ7GGH6	6 6 6 6 6 6 6 6r*   r   cvc                   .    e Zd ZdZed             Zd ZdS )AnomalyDetectionPipelineanomaly_detectionc                     t           S )N)r   )r%   s    r)   _pipeline_clsz&AnomalyDetectionPipeline._pipeline_clsX   s    ((r*   c                 F    |d         d                              dd          S )Nr   r   
batch_size   )get)r%   r   s     r)   _get_batch_sizez(AnomalyDetectionPipeline._get_batch_size\   s#    l#$67;;L!LLLr*   N)r.   r/   r0   entitiespropertyr<   rA   r    r*   r)   r9   r9   T   sF        "H) ) X)M M M M Mr*   r9   )typingr   r   r   r   r   numpyr4   
utils.depsr	   modelsr   r   models.anomaly_detection.resultr   utils.benchmarkr   	_parallelr   baser   time_methodsr   r9   r    r*   r)   <module>rM      sA   4 3 3 3 3 3 3 3 3 3 3 3 3 3     2 2 2 2 2 2 6 6 6 6 6 6 6 6 8 8 8 8 8 8 ( ( ( ( ( ( @ @ @ @ @ @       56 56 56 56 56 56 56 56p M M M M MG M M M M Mr*   