
    9i                     <   S SK r S SKJr  S SKJrJr  S SKrS SK	r	S SK
Jr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJr  S SKJrJ r   S SK!J"r"  \"" 5       r#\RH                  " \ RJ                  \RL                  S9 " S S\5      5       r'g)    N)AnyDict)collatescatter)	Pipelines)VisionMiddlewareModel)
OutputKeys)InputPipeline)	PIPELINES)	LoadImage)Config)	ModelFileTasks)
get_logger)module_namec                      ^  \ rS rSrS\4U 4S jjrS\S\\\4   4S jr	S\\\4   S\\\4   4S jr
S\\\4   S\\\4   4S	 jrS
rU =r$ )VisionMiddlewarePipeline   modelc           	      T  > [         TU ]  " SSU0UD6  U R                  R                  5       U l        U R                  R	                  5         [
        R                  " [
        R                  " S5      [
        R                  " 5       [
        R                  " / SQ/ SQS9/5      U l
        g)zp
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?)meanstdN )super__init__r   cudaeval
transformsComposeResizeToTensor	Normalize	transform)selfr   kwargs	__class__s      r/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/pipelines/cv/vision_middleware_pipeline.pyr   !VisionMiddlewarePipeline.__init__   s     	/u//ZZ__&


#++j)!  *0EG-
     inputreturnc                 D   [         R                  " U5      nU R                  U5      n[        U/SS9n[	        U R
                  R                  5       5      R                  (       a;  [        U[	        U R
                  R                  5       5      R                  /5      S   nU$ )N   )samples_per_gpur   )
r   convert_to_imgr%   r   nextr   
parametersis_cudar   device)r&   r,   imgdatas       r)   
preprocess#VisionMiddlewarePipeline.preprocess/   sz    &&u-~~c"vq1

%%'(004$tzz'<'<'>"?"F"F!GHKDr+   c                     [         R                  " 5          U R                  USS9nUsS S S 5        $ ! , (       d  f       g = f)Nzseg-voc)	task_name)torchno_gradr   )r&   r,   resultss      r)   forward VisionMiddlewarePipeline.forward;   s*    ]]_jj)j<G __s	   2
A inputsc                     U$ )Nr   )r&   rA   s     r)   postprocess$VisionMiddlewarePipeline.postprocessA   s    r+   )r   r%   )__name__
__module____qualname____firstlineno__strr   r
   r   r   r8   r?   rC   __static_attributes____classcell__)r(   s   @r)   r   r      su    
c "
 
$sCx. 
T#s(^ S#X $sCx. T#s(^  r+   r   )(mathos.pathpathosptypingr   r   numpynpr<   torchvision.transformsr    mmcv.parallelr   r   modelscope.metainfor   &modelscope.models.cv.vision_middlewarer   modelscope.outputsr	   modelscope.pipelines.baser
   r   modelscope.pipelines.builderr   modelscope.preprocessorsr   modelscope.utils.configr   modelscope.utils.constantr   r   modelscope.utils.loggerr   loggerregister_moduleimage_segmentationvision_middleware_multi_taskr   r   r+   r)   <module>rb      sv         + * ) H ) 5 2 . * 6 .	 	668&x &8&r+   