Ë
    \;jÿ  ã                   ó¤   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
dd„Zd„ Zd„ Zdd„Zd„ Zdd„Zd„ Zd	„ Zdd
„Zd„ Z G d„ d«      Zy)é    Nc           	      ó  — t        | j                  «       «      D ]î  \  }}t        |t        «      r>|j	                  dj                  |dz  t        |«      «      «       t        |||dz   «       ŒTt        |t        «      rft        |«      dk\  rXt        |d   t        «      rE|j	                  dj                  |dz  t        |«      «      «       |D ]  }t        |||dz   «       Œ ŒÊ|j	                  dj                  |dz  ||«      «       Œð y)z`
    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         úfG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\paddleocr/ppocr/utils/utility.pyr   r      sÕ   € ô
 �q—w‘w“yÖ!‰ˆˆ1Ü�aœÔØ�K‰K˜	×(Ñ(¨°S©¼#¸a»&ÓAÔBÜ�q˜& )¨a¡-Õ0Ü˜œ4Ô ¤S¨£V¨q¢[´ZÀÀ!ÁÄdÔ5KØ�K‰K˜	×(Ñ(¨°S©¼#¸a»&ÓAÔBÛ�Ü˜5 &¨)°a©-Õ8ñ ð �K‰K˜×*Ñ*¨9°s©?¸A¸qÓAÕBñ "ó    c                 ó@   — g d¢}| dk(  r	|ddgz   }|S | dk(  r|dgz   }|S )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                 ó€   — h d£}t        |D �cg c]!  }| j                  «       j                  |«      ‘Œ# c}«      S c c}w )N>	   ÚbmpÚgifÚjpgÚpdfÚpngÚrgbÚtifÚjpegÚtiff)ÚanyÚlowerÚendswith)ÚpathÚimg_endÚes      r   Ú_check_image_filer7   >   s5   € ÚO€GÜ±'Ó:±'¨Q�—
‘
“×%Ñ% aÕ(°'Ñ:Ó;Ð;ùÒ:s   Ž&;c                 óŠ  — g }| �t         j                  j                  | «      st        dj	                  | «      «      ‚t         j                  j                  | «      rt        | «      r|j                  | «       n–t         j                  j                  | «      rwt        j                  | «      D ]_  }t         j                  j                  | |«      }t         j                  j                  |«      sŒCt        |«      sŒO|j                  |«       Œa t        |«      dk(  rt        dj	                  | «      «      ‚t        |«      }|S )Nznot found any img file in {}r   )Úosr4   ÚexistsÚ	Exceptionr   Úisfiler7   ÚappendÚisdirÚlistdirÚjoinr   r   )Úimg_fileÚ
infer_listÚ
imgs_listsÚsingle_fileÚ	file_paths        r   Úget_image_file_listrF   C   së   € Ø€JØÐœrŸw™wŸ~™~¨hÔ7ÜÐ6×=Ñ=¸hÓGÓHÐHä	‡w�w‡~�~�hÔÔ$5°hÔ$?Ø×Ñ˜(Õ#Ü	�‰�‰�xÔ	 ÜŸ:™: hÖ/ˆKÜŸ™Ÿ™ X¨{Ó;ˆIÜ�w‰w�~‰~˜iÕ(Ô->¸yÕ-IØ×!Ñ! )Õ,ð 0ô
 ˆ:ƒ˜!ÒÜÐ6×=Ñ=¸hÓGÓHÐHÜ˜
Ó#€JØÐr   c                 ó^  — t        | j                  «      dk(  r”| j                  d   dk(  r‚t        j                  | t        j                  «      }t        j
                  |ddt        j                  t        j                  z   «      \  }}t        j                  |t        j                  «      } | S )Né   é   r   éÿ   )	r   ÚshapeÚcv2ÚcvtColorÚCOLOR_BGR2GRAYÚ	thresholdÚTHRESH_BINARYÚTHRESH_OTSUÚCOLOR_GRAY2BGR)ÚimgÚgrayÚ_s      r   Úbinarize_imgrV   V   sy   € Ü
ˆ3�9‰9ƒ~˜Ò˜sŸy™y¨™|¨qÒ0Ü�|‰|˜C¤×!3Ñ!3Ó4ˆä—-‘-  a¨¬c×.?Ñ.?Ä#Ç/Á/Ñ.QÓR‰ˆˆ4Ü�l‰l˜4¤×!3Ñ!3Ó4ˆØ€Jr   c                 óÜ  — t        | j                  «      dk(  rÓ| j                  d   dk(  rÁt        j                  | «      \  }}}}|dz  }|d   d|z
  z  ||z  z   j	                  t
        j                  «      }|d   d|z
  z  ||z  z   j	                  t
        j                  «      }|d   d|z
  z  ||z  z   j	                  t
        j                  «      }t        j                  |||f«      } | S )NrH   rI   r   rJ   r   r   )r   rK   rL   ÚsplitÚastypeÚnpÚuint8Úmerge)rS   Úalpha_colorÚBÚGÚRÚAÚalphas          r   Úalpha_to_colorrc   _   sÖ   € Ü
ˆ3�9‰9ƒ~˜Ò˜sŸy™y¨™|¨qÒ0Ü—Y‘Y˜s“^‰
ˆˆ1ˆa�Ø�C‘ˆà˜‰^˜q 5™yÑ)¨A°©IÑ5×=Ñ=¼b¿h¹hÓGˆØ˜‰^˜q 5™yÑ)¨A°©IÑ5×=Ñ=¼b¿h¹hÓGˆØ˜‰^˜q 5™yÑ)¨A°©IÑ5×=Ñ=¼b¿h¹hÓGˆä�i‰i˜˜A˜q˜	Ó"ˆØ€Jr   c                 ó¾  — t         j                  j                  | «      dd  j                  «       dk(  r³t	        j
                  | «      }|j                  «       \  }}|s't        j                  d«      }|j                  d«       yt        |j                  «      dk(  s|j                  d   dk(  r$t	        j                  |t        j                  «      }|d d …d d …d d d…f   }|d	d
fS t         j                  j                  | «      dd  j                  «       dk(  �r7ddlm}  |d«      }ddlm} g }	|j%                  | «      5 }
t'        d|
j(                  «      D ]è  }|
|   }|j+                  dd«      }|j-                  |d
¬«      }|j.                  dkD  s|j0                  dkD  r#|j-                  |j+                  dd«      d
¬«      }|j3                  d|j.                  |j0                  g|j4                  «      }t	        j                  t7        j8                  |«      t        j:                  «      }|	j=                  |«       Œê |	d
d	fcd d d «       S y# 1 sw Y   yxY w)Néýÿÿÿr)   Úppocrz/Cannot read {}. This gif image maybe corrupted.)NFrI   éÿÿÿÿr   TFr+   r   )Ú
try_importÚfitz)ÚImage)Úmatrixrb   iÐ  ÚRGB)NFF)r9   r4   Úbasenamer2   rL   ÚVideoCaptureÚreadÚloggingÚ	getLoggerr   r   rK   rM   ÚCOLOR_GRAY2RGBÚpaddle.utilsrh   ÚPILrj   ÚopenÚrangeÚ
page_countÚMatrixÚ
get_pixmapÚwidthÚheightÚ	frombytesÚsamplesrZ   ÚarrayÚCOLOR_RGB2BGRr=   )Úimg_pathr)   ÚretÚframer   Úimgvaluerh   ri   rj   Úimgsr+   ÚpgÚpageÚmatÚpmrS   s                   r   Úcheck_and_readr‰   l   sò  € Ü	‡w�w×Ñ˜Ó! " #Ð&×,Ñ,Ó.°%Ò7Ü×Ñ˜xÓ(ˆØ—X‘X“Z‰
ˆˆUÙÜ×&Ñ& wÓ/ˆFØ�K‰KÐIÔJØÜˆu�{‰{Ó˜qÒ  E§K¡K°¡O°qÒ$8Ü—L‘L ¬×(:Ñ(:Ó;ˆEØššA™t ˜t˜Ñ$ˆØ˜˜uÐ$Ð$Ü	�‰×	Ñ	˜(Ó	# B CÐ	(×	.Ñ	.Ó	0°EÓ	9Ý+á˜&Ó!ˆÝàˆØ�Y‰Y�xÔ  CÜ˜A˜sŸ~™~Ö.�Ø˜2‘w�Ø—k‘k ! QÓ'�Ø—_‘_¨C°u�_Ó=�ð —8‘8˜d’? b§i¡i°$Ò&6ØŸ™°·±¸A¸qÓ0AÈ˜ÓO�Bà—o‘o e¨b¯h©h¸¿	¹	Ð-BÀBÇJÁJÓO�Ü—l‘l¤2§8¡8¨C£=´#×2CÑ2CÓD�Ø—‘˜CÕ ð /ð ˜ Ð$÷ !Ñ ð ÷ !ð ús   ÅDIÉIc                 óB  — t        | dd¬«      5 }|j                  «       }d d d «       D �cg c]  }|j                  «       ‘Œ }}dg}|D ]&  }|j                  «       dv rŒ|j	                  |«       Œ( dg}|dd  D ]*  }|j	                  d|z   «       |j	                  d|z   «       Œ, t        |«      D ��ci c]  \  }}|j                  «       |“Œ }}}t        |«      D ��ci c]  \  }}||j                  «       “Œ }	}}||	fS # 1 sw Y   ŒåxY wc c}w c c}}w c c}}w )	NÚrzutf-8)ÚencodingÚO)ÚOTHERÚOTHERSÚIGNOREr   zB-zI-)ru   Ú	readlinesÚstripÚupperr=   Ú	enumerate)
Úlabel_map_pathÚfinÚlinesÚlineÚ	old_linesÚlabelsÚidxÚlabelÚlabel2id_mapÚid2label_maps
             r   Úload_vqa_bio_label_mapsrŸ   �   s  € Ü	ˆn˜c¨GÕ	4¸Ø—‘“ˆ÷ 
5á*/Ó0©% $�—‘•¨%€IÐ0ØˆE€EÛˆà�:‰:‹<Ð8Ñ8ØØ�‰�TÕð	 ð
 ˆU€FØ�a�b“	ˆØ�‰�d˜T‘kÔ"Ø�‰�d˜T‘kÕ"ð ô :CÀ6Ô9JÔKÑ9J©:¨3°�E—K‘K“M 3Ñ&Ð9J€LÑKÜ9BÀ6Ô9JÔKÑ9J©:¨3°�C˜Ÿ™›Ñ&Ð9J€LÑKØ˜Ð%Ð%÷ 
5Ð	4üâ0ùó LùÛKs   �D¬DÂ6DÃ"DÄDc                 ó–   — t        j                  | «       t        j                   j                  | «       t        j                  | «       y ©N)ÚrandomÚseedrZ   Úpaddle)r£   s    r   Úset_seedr¥   £   s*   € Ü
‡K�K�ÔÜ‡I�I‡N�N�4ÔÜ
‡K�K�Õr   c                 óŽ  — t         j                  j                  | «      }|€lt        d| › d�«       t        d| › d|› d�«       t        j
                  }	 t        j                  |ddd|gt        j                  ¬	«       t        d
| › d�«       y t        | › d�«       y # t        j                  $ r}t        d| › d�«      ‚d }~ww xY w)NzWarnning! 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Ó0€DØ€|Ü�˜{˜mÐ+CÐDÔEÜØ˜;˜-Ð'rÐsð  sAð  ABð  Cô	
ô —‘ˆð	VÜ×!Ñ!Ø˜˜u i°Ð>Ü!×)Ñ)õô �D˜˜Ð%=Ð>Õ?ô 	��Ð1Ð2Õ3øô ×,Ñ,ò 	VÜ˜h { mÐ3SÐTÓUÐUûð	Vús   Á9B ÂCÂ0B?Â?Cc                   ó    — e Zd Zd„ Zd„ Zdd„Zy)ÚAverageMeterc                 ó$   — | j                  «        y r¡   )Úreset©Úselfs    r   Ú__init__zAverageMeter.__init__¾   s   € Ø�
‰
�r   c                 ó<   — d| _         d| _        d| _        d| _        y)r¾   r   N)ÚvalÚavgÚsumÚcountr¿   s    r   r¾   zAverageMeter.resetÁ   s   € àˆŒØˆŒØˆŒØˆ�
r   c                 ó¨   — || _         | xj                  ||z  z  c_        | xj                  |z  c_        | j                  | j                  z  | _        y)ÚupdateN)rÃ   rÅ   rÆ   rÄ   )rÀ   rÃ   Úns      r   rÈ   zAverageMeter.updateÈ   s<   € àˆŒØ�Š�C˜!‘GÑ�Ø�
Š
�a‰�
Ø—8‘8˜dŸj™jÑ(ˆ�r   N)r   )Ú__name__Ú
__module__Ú__qualname__rÁ   r¾   rÈ   r#   r   r   r¼   r¼   ½   s   „ òòô)r   r¼   )r   r¡   ))rJ   rJ   rJ   )i   )rp   r9   rL   r¢   ÚnumpyrZ   r¤   Úimportlib.utilr«   r¯   r±   r   r&   r7   rF   rV   rc   r‰   rŸ   r¥   rº   r¼   r#   r   r   Ú<module>rÏ      s`   ðó Û 	Û 
Û Û Û Û Û 
Û óCò"ò&<ó
ò&ó
ò!òH&ó&ò4÷()ò )r   