
    i                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
SS jrS rS rSS jrS rSS jrS rS	 rSS
 jrS r " S S5      rg)    Nc           	      @   [        U R                  5       5       GH   u  p4[        U[        5      (       a>  UR	                  SR                  US-  [        U5      5      5        [        XAUS-   5        MY  [        U[        5      (       an  [        U5      S:  a_  [        US   [        5      (       aG  UR	                  SR                  US-  [        U5      5      5        U H  n[        XQUS-   5        M     M  UR	                  SR                  US-  X45      5        GM     g)zT
Recursively visualize a dict and
indenting acrrording by the relationship of keys.
z{}{} :        r   z	{}{} : {}N)
sorteditems
isinstancedictinfoformatstr
print_dictlistlen)dlogger	delimiterkvvalues         ]/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/ppocr/utils/utility.pyr   r      s    
 qwwy!aKK	((S#a&ABq)a-04  SVq[Z!d5K5KKK	((S#a&AB5)a-8  KK**9s?AAB "    c                 D    / SQnU S:X  a	  USS/-   nU$ U S:X  a  US/-   nU$ )N)use_gpumax_text_lengthimage_shaper   character_type	loss_type
train_evaltrain_batch_size_per_cardtest_batch_size_per_cardtest )modecheck_paramss     r   get_check_global_paramsr&   +   sM    L |#'&'
 
  
#'A&BBr   c                     1 Skn[        U Vs/ s H!  o R                  5       R                  U5      PM#     sn5      $ s  snf )N>	   bmpgifjpgpdfpngrgbtifjpegtiff)anylowerendswith)pathimg_endes      r   _check_image_filer7   >   s3    OG':'Q

%%a(':;;:s   (=c                    / nU(       a>  [         R                  R                  U5      (       d  [        SR	                  U5      5      eU(       a  [        US5       nUR                  5       nS S S 5        W HU  nUR                  5       R                  S5      S   n[         R                  R                  X5      nUR                  U5        MW     GO4U b$  [         R                  R                  U 5      (       d  [        SR	                  U 5      5      e1 Skn[         R                  R                  U 5      (       a"  [        U 5      (       a  UR                  U 5        O[         R                  R                  U 5      (       a  [         R                  " U 5       Hk  n[         R                  R                  X5      n	[         R                  R                  U	5      (       d  MH  [        U	5      (       d  MZ  UR                  U	5        Mm     [        U5      S:X  a  [        SR	                  U 5      5      e[!        U5      nU$ ! , (       d  f       GN= f)Nznot found infer list {}r	r   znot found any img file in {}>	   r(   r)   r*   r+   r,   r-   r.   r/   r0   )osr4   exists	Exceptionr   open	readlinesstripsplitjoinappendisfiler7   isdirlistdirr   r   )
img_file
infer_list
imgs_listsflinesline
image_pathr5   single_file	file_paths
             r   get_image_file_listrP   C   s   J"''..44188DEE*c"aKKME #D++D1!4Jh;Jj) 
 277>>(#;#;:AA(KLLS77>>(##(9((C(Ch'WW]]8$$!zz(3GGLL?	77>>),,1B91M1M%%i0  4
 :!6==hGHH
#J- #"s   H;;
I
c                 f   [        U R                  5      S:X  a  U R                  S   S:X  a  [        R                  " U [        R                  5      n[        R
                  " USS[        R                  [        R                  -   5      u  p![        R                  " U[        R                  5      n U $ )N      r      )	r   shapecv2cvtColorCOLOR_BGR2GRAY	thresholdTHRESH_BINARYTHRESH_OTSUCOLOR_GRAY2BGR)imggray_s      r   binarize_imgr`   a   sw    
399~syy|q0||C!3!34--ac.?.?#//.QRll4!3!34Jr   c                    [        U R                  5      S:X  a  U R                  S   S:X  a  [        R                  " U 5      u  p#pEUS-  nUS   SU-
  -  XF-  -   R	                  [
        R                  5      nUS   SU-
  -  X6-  -   R	                  [
        R                  5      nUS   SU-
  -  X&-  -   R	                  [
        R                  5      n[        R                  " X#U45      n U $ )NrR   rS   r   rT   r   r   )r   rU   rV   rA   astypenpuint8merge)r]   alpha_colorBGRAalphas          r   alpha_to_colorrl   j   s    
399~syy|q0YYs^
aC^q5y)AI5==bhhG^q5y)AI5==bhhG^q5y)AI5==bhhGiiq	"Jr   c                    [         R                  R                  U 5      SS  R                  5       S:X  a  [        R
                  " U 5      nUR                  5       u  p#U(       d(  [        R                  " S5      nUR                  S5        g[        UR                  5      S:X  d  UR                  S   S:X  a%  [        R                  " U[        R                  5      nUS S 2S S 2S S S24   nUS	S
4$ [         R                  R                  U 5      SS  R                  5       S:X  Ga6  SSKJn  U" S5      nSSKJn  / n	UR%                  U 5       n
['        SU
R(                  5       H  nX   nUR+                  SS5      nUR-                  US
S9nUR.                  S:  d  UR0                  S:  a   UR-                  UR+                  SS5      S
S9nUR3                  SUR.                  UR0                  /UR4                  5      n[        R                  " [6        R8                  " U5      [        R:                  5      nU	R=                  U5        M     U	S
S	4sS S S 5        $ g! , (       d  f       g= f)Nr)   ppocrz/Cannot read {}. This gif image maybe corrupted.)NFrS   r   TFr+   r   )
try_importfitz)Image)matrixrk   i  RGB)NFF)r;   r4   basenamer2   rV   VideoCapturereadlogging	getLoggerr   r   rU   rW   COLOR_GRAY2RGBpaddle.utilsrq   PILrs   r>   range
page_countMatrix
get_pixmapwidthheight	frombytessamplesrc   arrayCOLOR_RGB2BGRrC   )img_pathr)   retframer   imgvaluerq   rr   rs   imgsr+   pgpagematpmr]   s                   r   check_and_readr   w   s   	ww!"#&,,.%7x(XXZ
&&w/FKKIJu{{q EKKOq$8LL(:(:;EAtt$u$$			(	#BC	(	.	.	0E	9+&!YYx CAs~~.wkk!Q'__Cu_= 88d?bii$&6Aq0AOBooebhh		-BBJJOll288C=#2C2CDC  / $ !   !  s   DI
I+c                 \   [        U SSS9 nUR                  5       nS S S 5        W Vs/ s H  o3R                  5       PM     nnS/nU H*  nUR                  5       S;   a  M  UR	                  U5        M,     S/nUSS   H+  nUR	                  SU-   5        UR	                  SU-   5        M-     [        U5       VVs0 s H  u  pgUR                  5       U_M     nnn[        U5       VVs0 s H  u  pgXgR                  5       _M     n	nnX4$ ! , (       d  f       N= fs  snf s  snnf s  snnf )	Nr9   zutf-8)encodingO)OTHEROTHERSIGNOREr   zB-zI-)r>   r?   r@   upperrC   	enumerate)
label_map_pathfinrK   rL   	old_lineslabelsidxlabellabel2id_mapid2label_maps
             r   load_vqa_bio_label_mapsr      s   	ncG	4 
5*/0%$%I0EE::<88T	 
 UFab	dTk"dTk"  :C69JK9J:3EKKM3&9JLK9B69JK9J:3C&9JLK%% 
5	40 LKs   DD<D"*D(
Dc                     [         R                  " U 5        [        R                   R                  U 5        [        R                  " U 5        g N)randomseedrc   paddle)r   s    r   set_seedr      s*    
KKIINN4
KKr   c                    [         R                  R                  U 5      nUcj  [        SU  S35        [        SU  SU S35        [        R
                  n [        R                  " USSSU/[        R                  S	9  [        S
U  S35        g [        U  S35        g ! [        R                   a  n[        SU  S35      eS nAff = f)NzWarning! The z module is NOT installedzTry install zK module automatically. You can also try to install manually by pip install .z-mpipinstall)stdoutzThe z module is now installedzInstall z  failed, please install manuallyz has been installed.)	importlibutil	find_specprintsys
executable
subprocess
check_callDEVNULLCalledProcessErrorr=   )module_nameinstall_namespecpythonexcs        r   check_installr      s    >>##K0D|k]*BCD;-'rs  sA  AB  C	
 	V!!ui>!)) D%=>? 	123 ,, 	Vh{m3STUU	Vs   7B C0B??Cc                   *    \ rS rSrS rS rSS jrSrg)AverageMeter   c                 $    U R                  5         g r   )resetselfs    r   __init__AverageMeter.__init__   s    

r   c                 <    SU l         SU l        SU l        SU l        g)r   r   N)valavgsumcountr   s    r   r   AverageMeter.reset   s    
r   c                     Xl         U =R                  X-  -  sl        U =R                  U-  sl        U R                  U R                  -  U l        g)updateN)r   r   r   r   )r   r   ns      r   r   AverageMeter.update   s8    CG

a
88djj(r   )r   r   r   r   N)r   )__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r#   r   r   r   r      s    )r   r   )r   r   ))rT   rT   rT   )i   )ry   r;   rV   r   numpyrc   r   importlib.utilr   r   r   r   r&   r7   rP   r`   rl   r   r   r   r   r   r#   r   r   <module>r      s`     	 
     
 C"&<
<
!H&&4() )r   