o
    *j                     @   s   d dl Z d dlmZ d dlmZmZ d dl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m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" e" Z#ej$e j%ej&dG dd deZ'dS )    N)AnyDict)collatescatter)	Pipelines)VisionMiddlewareModel)
OutputKeys)InputPipeline)	PIPELINES)	LoadImage)Config)	ModelFileTasks)
get_logger)module_namec                       s   e Zd Zde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 )VisionMiddlewarePipelinemodelc                    s^   t  jdd|i| | j | _| j  ttdt tj	g dg ddg| _
dS )z
        use `model` to create a vision middleware pipeline for prediction
        Args:
            model: model id on modelscope hub.
        r   )   r   )g
ףp=
?gv/?gCl?)gZd;O?gy&1?g?)meanZstdN )super__init__r   cudaeval
transformsZComposeZResizeZToTensorZ	Normalize	transform)selfr   kwargs	__class__r   s/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/pipelines/cv/vision_middleware_pipeline.pyr      s   
z!VisionMiddlewarePipeline.__init__inputreturnc                 C   sR   t |}| |}t|gdd}t| j jr't|t| j j	gd }|S )N   )Zsamples_per_gpur   )
r   Zconvert_to_imgr   r   nextr   
parametersZis_cudar   Zdevice)r   r"   Zimgdatar   r   r!   
preprocess/   s   

z#VisionMiddlewarePipeline.preprocessc                 C   s>   t   | j|dd}|W  d    S 1 sw   Y  d S )Nzseg-voc)Z	task_name)torchZno_gradr   )r   r"   resultsr   r   r!   forward;   s   
$z VisionMiddlewarePipeline.forwardinputsc                 C   s   |S )Nr   )r   r,   r   r   r!   postprocessA   s   z$VisionMiddlewarePipeline.postprocess)__name__
__module____qualname__strr   r	   r   r   r(   r+   r-   __classcell__r   r   r   r!   r      s
    "*r   )(mathZos.pathpathZosptypingr   r   numpynpr)   Ztorchvision.transformsr   Zmmcv.parallelr   r   Zmodelscope.metainfor   Z&modelscope.models.cv.vision_middlewarer   Zmodelscope.outputsr   Zmodelscope.pipelines.baser	   r
   Zmodelscope.pipelines.builderr   Zmodelscope.preprocessorsr   Zmodelscope.utils.configr   Zmodelscope.utils.constantr   r   Zmodelscope.utils.loggerr   loggerZregister_moduleZimage_segmentationZvision_middleware_multi_taskr   r   r   r   r!   <module>   s,   