
    9i                     L   S SK JrJrJrJr  S SKrS SKrS SKJ	r	J
r
  S SKJr  S SKJrJrJr  S SK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\R>                  " \R@                  \	R@                  S9\R>                  " \R@                  \	RB                  S9\R>                  " \R@                  \	RD                  S9\R>                  " \R@                  \	RF                  S9\R>                  " \R@                  \	RH                  S9\R>                  " \R@                  \	RJ                  S9\R>                  " \R@                  \	RL                  S9\R>                  " \R@                  \	RN                  S9 " S S\5      5       5       5       5       5       5       5       5       r(g)    )AnyDictOptionalUnionN)	PipelinesPreprocessors)
OutputKeys)InputModelPipeline)	PIPELINES)batch_process)Preprocessor)	LoadImage)FieldsTasks)
get_logger)module_namec            	          ^  \ rS rSr    SS\S\\   S\S\4U 4S jjjrU 4S jrS\	S	\
\\4   4U 4S
 jjrS\
\\4   S	\
\\4   4S jrS\
\\4   S	\
\\4   4S jrSrU =r$ )"GeneralImageClassificationPipeline   modelpreprocessorconfig_filedevicec                   > [         TU ]  UUUUUS9  SU l        UGc  [        U R                  S5      (       d   S5       eU R                  R
                  R                  S:X  aQ  [        R                  " SU R                  R                  [        R                  [        R                  S.UD6U l        GO[        U R                  R!                  5       5      R"                  (       a3  [        U R                  R!                  5       5      R$                  /U l        [        U R                  S5      (       d   S5       e[        R                  " U R                  R                  40 UD6U l        U R                  R
                  R                  S:X  a(  S	S
KJn  U" U R                  R                  40 UD6U l        [*        R-                  S5        g)a  Use `model` and `preprocessor` to create an image classification pipeline for prediction
Args:
    model: A str format model id or model local dir to build the model instance from.
    preprocessor: A preprocessor instance to preprocess the data, if None,
    the pipeline will try to build the preprocessor according to the configuration.json file.
    kwargs: The args needed by the `Pipeline` class.
)r   r   r   r   auto_collateN	model_dirzeModel used in ImageClassificationPipeline should has a `model_dir` attribute to build a preprocessor.OfaForAllTasks)model_name_or_pathtypefieldzlModel used in GeneralImageClassificationPipeline should has a `model_dir` attribute to build a preprocessor.%ImageClassificationBypassPreprocessorr   )#ImageClassificationMmcvPreprocessorzload model done )super__init__target_gpushasattrr   	__class____name__r   from_pretrainedr   r   ofa_tasks_preprocessorr   multi_modalr   next
parametersis_cudar   modelscope.preprocessorsr$   loggerinfo)	selfr   r   r   r   r   kwargsr$   r*   s	           u/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/pipelines/cv/image_classification_pipeline.pyr'   +GeneralImageClassificationPipeline.__init__-   s    	%#% 	 	'  4::{33 h 6h h3zz##,,0@@$0$@$@ %'+zz';';&== ,,% 	%! 

--/088(,TZZ-B-B-D(E(L(L'MD$tzz;77 x :x x7$0$@$@JJ((%4,2%4!$$..77;bb\(K

,,)806)8D%%&    c                    > U R                   R                  R                  S:X  a  [        U R                   U5      $ [        TU ]  U5      $ )Nr   )r   r*   r+   r   r&   _batch)r5   datar*   s     r7   r;   )GeneralImageClassificationPipeline._batchX   s<    ::((,<< T227>$''r9   inputreturnc                 B  > U R                   R                  R                  S:X  a  [        TU ]  " U40 UD6$ [
        R                  " U5      nUS S 2S S 2S S S24   n[        TU ]  " U40 UD6nSSKJnJ	n  U" U/SS9nU R                  b  U" X@R                  5      S   nU$ )Nr   r   )collatescatter   )samples_per_gpu)r   r*   r+   r&   
preprocessr   convert_to_ndarraymmcv.parallelrB   rC   r(   )r5   r>   preprocess_paramsimgr<   rB   rC   r*   s          r7   rF   -GeneralImageClassificationPipeline.preprocess^   s    ::((,<<7%eA/@AA..u5CaDbDj/C7%c?->?D6D615D+t%5%56q9Kr9   c                 v    U R                   R                  R                  S:w  a  SUS'   U R                  U5      $ )Nr   Freturn_loss)r   r*   r+   )r5   r>   forward_paramss      r7   forward*GeneralImageClassificationPipeline.forwardl   s4    ::((,<<#(E- zz%  r9   inputsc                    U R                   R                  R                  S:w  a  Un[        R                  " USS9S   S S S2   S S n[        R
                  " USS9S   S S S2   S S nU Vs/ s H  ofPM     snU Vs/ s H  opR                   R                  U   PM     snS.n[        R                  US   [        R                  US	   0n	U	$ U$ s  snf s  snf )
Nr   rD   )axisr   rA      )
pred_score
pred_classrU   rV   )
r   r*   r+   npsortargsortCLASSESr	   SCORESLABELS)
r5   rQ   post_paramsscorespred_scorespred_labelsscorelabelresultoutputss
             r7   postprocess.GeneralImageClassificationPipeline.postprocessr   s     ::((,<<F''&q1!4TrT:2A>K**V!4Q7"=bqAK 3>>+u+>8CDu##E*DF !!6,#7!!6,#7G NM ?Ds   -C>"C)r   r(   )NNgpuT)r+   
__module____qualname____firstlineno__strr   r   r'   r;   r
   r   r   rF   rO   re   __static_attributes____classcell__)r*   s   @r7   r   r      s    6 9=$($")')''5)' ")' 	)' )'V( tCH~ !T#s(^ !%)#s(^!$sCx. &*38n r9   r   ))typingr   r   r   r   numpyrW   torchmodelscope.metainfor   r   modelscope.outputsr	   modelscope.pipelines.baser
   r   r   modelscope.pipelines.builderr   modelscope.pipelines.utilr   r2   r   modelscope.preprocessors.imager   modelscope.utils.constantr   r   modelscope.utils.loggerr   r3   register_moduleimage_classificationgeneral_image_classificationdaily_image_classification(nextvit_small_daily_image_classification*convnext_base_image_classification_garbagecommon_image_classificationeasyrobust_classification bnext_small_image_classificationr   r%   r9   r7   <module>r      s   - -   8 ) < < 2 3 1 4 3 .	 	I,J,JL
	668 	446 	BBD 	DDF 	557 	335 	::<\ \<57FD68L.\r9   