o
    *j6
                     @   s   d dl mZmZmZmZ d dlZd dlZd dlm	Z	 d dl
m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 ZdgZejeje	jdG dd deZdS )    )AnyDictOptionalUnionN)	Pipelines)BadImageDetecting)
OutputKeys)InputPipeline)	PIPELINES)	LoadImage)Tasks)
get_loggerBadImageDetecingPipeline)module_namec                       s   e Zd ZdZdeeef f fddZdede	ee
f fddZde	ee
f de	ee
f fd	d
Zde	ee
f de	ee
f fddZ  ZS )r   aB   Image Restoration Pipeline .

    Take bad_image_detecting as an example
    ```python
    >>> from modelscope.pipelines import pipeline
    >>> image_pipeline = pipeline(Tasks.bad_image_detecting, model=model_id)
    >>> image_pipeline("https://modelscope.oss-cn-beijing.aliyuncs.com/test/images/dogs.jpg")

    ```
    modelc                    s\   t  jdd|i| | j  g d| _tj r!td| _	ntd| _	t
d dS )z
        use `model` and `preprocessor` to create a cv image denoise pipeline for prediction
        Args:
            model: model id on modelscope hub.
        r   )u   正常u   花屏u   绿屏cudacpuz#load bad image detecting model doneN )super__init__r   evallabelstorchr   Zis_availableZdeviceZ_deviceloggerinfo)selfr   kwargs	__class__r   u/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/pipelines/cv/bad_image_detecting_pipeline.pyr   #   s   


z!BadImageDetecingPipeline.__init__inputreturnc                 C   s   t |}| |}|S )N)r   Zconvert_to_ndarrayZpreprocessor)r   r!   Zimgresultr   r   r    
preprocess3   s   

z#BadImageDetecingPipeline.preprocessc                 C   s>   t   | |}W d    n1 sw   Y  d|d iS )Noutput)r   Zno_gradr   )r   r!   r%   r   r   r    forward9   s   
z BadImageDetecingPipeline.forwardc                    s   |d }t j|dd  }tj|ddd d d d }tj|ddd d d d }dd |D  fd	d|D d
}tj|d tj	|d i}|S )Nr%      )dim)Zaxisr   c                 S   s   g | ]}|qS r   r   ).0scorer   r   r    
<listcomp>H   s    z8BadImageDetecingPipeline.postprocess.<locals>.<listcomp>c                    s   g | ]} j | qS r   )r   )r*   labelr   r   r    r,   I   s    )
pred_score
pred_classr/   r0   )
r   Zsoftmaxr   numpynpsortZargsortr   ZSCORESZLABELS)r   r!   predr+   Zpred_scoresZpred_labelsr#   Zoutputsr   r.   r    postprocess@   s   

z$BadImageDetecingPipeline.postprocess)__name__
__module____qualname____doc__r   r   strr   r	   r   r   r$   r&   r5   __classcell__r   r   r   r    r      s    "*)typingr   r   r   r   r1   r2   r   Zmodelscope.metainfor   Z(modelscope.models.cv.bad_image_detectingr   Zmodelscope.outputsr   Zmodelscope.pipelines.baser	   r
   Zmodelscope.pipelines.builderr   Zmodelscope.preprocessorsr   Zmodelscope.utils.constantr   Zmodelscope.utils.loggerr   r   __all__Zregister_moduleZbad_image_detectingr   r   r   r   r    <module>   s"   