ó
    ñZjõA  ã                   ó,  • S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	J
r
  S SKrS SKrS SKJr  SSKJr  SSKJrJr  SSKJrJr  SS	KJrJr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)  SSK*J+r+J,r,J-r-J.r.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5  \" \65      Ro                  5       Rp                  r9\9S-  r: " S S5      r; " S S\<5      r=S\'S\>4S jr?S r@S#S\\\A      4S jjrBS\AS\
\1\A4   4S  jrCS#S\\\A      4S! jjrD\ES":X  a  \D" 5         gg)$é    N)ÚPath)ÚAnyÚDictÚListÚOptionalÚTupleÚUnion)Ú
DictConfigé   )ÚCalRecBoxes)ÚTextClassifierÚTextClsOutput)ÚTextDetectorÚTextDetOutput)ÚTextRecInputÚTextRecognizerÚTextRecOutput)Úcheck_installÚcheck_required_filesÚgenerate_cfg)Údownload_models)Ú	LoadImage)Úlogger)ÚRapidOCROutput)ÚParseParams)Úapply_vertical_paddingÚget_rotate_crop_imageÚmap_boxes_to_originalÚmap_img_to_originalÚresize_image_within_bounds)ÚLangRec)Úfilter_by_indices)ÚVisReszconfig.yamlc                   ó˜  • \ rS rSr S)S\\   S\\\\4      4S jjrS\\   S\\\\4      S\	4S jr
S\	4S	 jr        S*S
\\\R                  \\4   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\   S\\\\\4   4S jjrS\R                  S\\\4   4S jrS\R                  S\S\S\S\\R                     S\\\4   S\\\\\4   4S jrS\\R                     S\R                  S\S\4S jrS rS\R                  S\\R                  \\\4   4   4S  jrS\R                  S\\\4   S\\\R                     \4   4S! jrS\R                  S"\R                  S\\R                     4S# jr S\\R                     S\\\R                     \4   4S$ jr!S\\R                     S\4S% jr"S&\S\4S' jr#S(r$g)+ÚRapidOCRé&   NÚconfig_pathÚparamsc                 ó¸   • U R                  X5      n[        R                  " UR                  R                  R                  5       5        U R                  U5        g ©N)Ú_load_configr   ÚsetLevelÚGlobalÚ	log_levelÚupperÚ_initialize©Úselfr'   r(   Úcfgs       ÚJ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/rapidocr/main.pyÚ__init__ÚRapidOCR.__init__'   sA   € ð ×Ñ Ó4ˆä�Š˜Ÿ
™
×,Ñ,×2Ñ2Ó4Ô5à×Ñ˜Õó    Úreturnc                 óB  • Ub5  [        U5      R                  5       (       a  [        R                  " U5      nO[        R                  " [        5      nU(       a  [        R
                  " X25      nUR                  R                  c  [        S-  UR                  l        U$ )NÚmodels)	r   Úexistsr   ÚloadÚDEFAULT_CFG_PATHÚupdate_batchr-   Úmodel_root_dirÚroot_dirr1   s       r4   r+   ÚRapidOCR._load_config0   sw   € ð Ñ"¤t¨KÓ'8×'?Ñ'?×'AÑ'AÜ×"Ò" ;Ó/‰Cä×"Ò"Ô#3Ó4ˆCæÜ×*Ò*¨3Ó7ˆCà�:‰:×$Ñ$Ñ,Ü(0°8Ñ(;ˆC�J‰JÔ%Øˆ
r7   r3   c                 ó”  • UR                   R                  U l        UR                   R                  U l        UR                   R                  U l        UR                   R                  U l        UR
                  UR                  R                  R                     UR                  l	        UR                   R                  UR                  l
        [        UR                  5      U l        UR                   R                  U l        UR
                  UR                  R                  R                     UR                  l	        UR                   R                  UR                  l
        [        UR                  5      U l        UR                   R"                  U l        UR
                  UR$                  R                  R                     UR$                  l	        UR                   R&                  UR$                  l        UR                   R                  UR$                  l
        [)        UR$                  5      U l        [-        5       U l        UR                   R0                  U l        UR                   R2                  U l        [5        5       U l        UR                   R8                  U l        UR                   R:                  U l        Xl        g r*   )r-   Ú
text_scoreÚ
min_heightÚwidth_height_ratioÚuse_detÚEngineConfigÚDetÚengine_typeÚvalueÚ
engine_cfgr?   r   Útext_detÚuse_clsÚClsr   Útext_clsÚuse_recÚRecÚ	font_pathr   Útext_recr   Úload_imgÚmax_side_lenÚmin_side_lenr   Úcal_rec_boxesÚreturn_word_boxÚreturn_single_char_boxr3   )r2   r3   s     r4   r0   ÚRapidOCR._initialize?   sÆ  € ØŸ*™*×/Ñ/ˆŒØŸ*™*×/Ñ/ˆŒØ"%§*¡*×"?Ñ"?ˆÔà—z‘z×)Ñ)ˆŒØ ×-Ñ-¨c¯g©g×.AÑ.A×.GÑ.GÑHˆ�‰ÔØ!$§¡×!:Ñ!:ˆ�‰ÔÜ$ S§W¡WÓ-ˆŒà—z‘z×)Ñ)ˆŒØ ×-Ñ-¨c¯g©g×.AÑ.A×.GÑ.GÑHˆ�‰ÔØ!$§¡×!:Ñ!:ˆ�‰ÔÜ& s§w¡wÓ/ˆŒà—z‘z×)Ñ)ˆŒØ ×-Ñ-¨c¯g©g×.AÑ.A×.GÑ.GÑHˆ�‰ÔØŸJ™J×0Ñ0ˆ�‰ÔØ!$§¡×!:Ñ!:ˆ�‰ÔÜ& s§w¡wÓ/ˆŒä!›ˆŒØŸJ™J×3Ñ3ˆÔØŸJ™J×3Ñ3ˆÔä(›]ˆÔà"Ÿz™z×9Ñ9ˆÔØ&)§j¡j×&GÑ&GˆÔ#à�r7   Úimg_contentrF   rM   rP   rX   rY   rC   Ú
box_threshÚunclip_ratioc
                 óÈ   • U R                  UUUUUUUU	S9  U R                  U5      n
U R                  U
5      u  p¼U R                  X¼5      u  pÞnnU R	                  X­XïUU5      $ )N©rF   rM   rP   rX   rY   rC   r\   r]   )Úupdate_paramsrT   Úpreprocess_imgÚrun_ocr_stepsÚbuild_final_output)r2   r[   rF   rM   rP   rX   rY   rC   r\   r]   Úori_imgÚimgÚ	op_recordÚdet_resÚcls_resÚrec_resÚcropped_img_lists                    r4   Ú__call__ÚRapidOCR.__call___   s†   € ð 	×ÑØØØØ+Ø#9Ø!Ø!Ø%ð 	ñ 		
ð —-‘- Ó,ˆØ×,Ñ,¨WÓ5‰ˆØ6:×6HÑ6HÈÓ6XÑ3ˆ˜'Ð#3Ø×&Ñ&Ø˜gÐ0@À)ó
ð 	
r7   re   rf   c                 ó¼  • [        5       [        5       [        5       pTnU R                  (       a   U R	                  X5      u  pcOU/nU R                  (       a   U R                  U5      u  p„OUnU R                  (       a   U R                  U5      nX4XV4$ ! [
         a>  n[        R                  " U5        [        5       [        5       [        5       / 4s S nA$ S nAff = f! [
         a6  n[        R                  " U5        U[        5       [        5       / 4s S nA$ S nAff = f! [
         a-  n[        R                  " U5        X4[        5       / 4s S nA$ S nAff = fr*   )r   r   r   rF   Údetect_and_cropÚRapidOCRErrorr   ÚwarningrM   Úcls_and_rotaterP   Úrecognize_txt)	r2   re   rf   rg   rh   ri   rj   ÚeÚcls_img_lists	            r4   rb   ÚRapidOCR.run_ocr_steps}   s&  € Ü$1£O´]³_ÄmÃo˜'ˆà�<�<ðMØ,0×,@Ñ,@ÀÓ,PÑ)Ð  'ð
 !$˜uÐà�<�<ðEØ(,×(;Ñ(;Ð<LÓ(MÑ%�˜gð
 ,ˆLà�<�<ð=Ø×,Ñ,¨\Ó:�ð
  Ð:Ð:øô- !ó MÜ—’˜qÔ!Ü$“¬«¼»È"ÐLÕLûðMûô !ó EÜ—’˜qÔ!Ø¤£´³À"ÐDÕDûðEûô !ó =Ü—’˜qÔ!Ø¬«¸"Ð<Õ<ûð=úsY   °B ÁC! ÂD$ Â
CÂ 3CÃCÃCÃ!
D!Ã++DÄD!ÄD!Ä$
EÄ."EÅEÅErd   rg   rh   ri   rj   c                 ón  • UR                   S S u  pxUR                  b8  [        UR                  XgU5      Ul        US   S   n	US   S   n
[        XYU
5      nUR                  Gb  UR                  bú  UR
                  bí  [        UR                  5       VVs/ s H  u  p¼UR                  5       (       d  M  UPM      nnn[        UR                  U5      Ul        [        UR
                  U5      Ul        [        UR                  U5      Ul	        [        UR                  U5      Ul        [        UR                  U5      Ul
        [        UR
                  U5      Ul        [        X]5      nUR                  c  UR                  c  UR                  b  U$ UR                  c  UR                  c
  [        5       $ UR                  c  UR                  b  U$ UR                  b  UR                  c  U$ U R                  (       aH  UR                  b;  [        UR                  5      (       a!  U R                  XRR                  U5      Ul
        [        UUR                  UR                  UR
                  UR                  UR                   UR                   UR                   /[#        U R$                  R&                  R(                  U R$                  R*                  R,                  U R$                  R&                  R.                  S9S9nU R1                  U5      n[3        U5      S:”  a  U$ [        5       $ s  snnf )Né   Ú
preprocessÚratio_hÚratio_w)rC   Ú	lang_typerR   )re   ÚboxesÚtxtsÚscoresÚword_resultsÚelapse_listÚviserr   )Úshaper|   r   r   r}   r~   Ú	enumerateÚstripr"   Úimgsr   rh   r   rX   ÚallÚcalc_word_boxesÚelapser#   r3   r-   rC   rQ   r{   rR   Úfilter_by_text_scoreÚlen)r2   rd   rg   rh   ri   rj   rf   Úori_hÚori_wry   rz   ÚiÚvÚ	valid_idsÚocr_ress                  r4   rc   ÚRapidOCR.build_final_output›   s’  € ð —}‘} R aÐ(‰ˆà�=‰=Ñ$Ü1Ø—‘˜y°óˆGŒMð   Ñ-¨iÑ8ˆGØ Ñ-¨iÑ8ˆGÜ2Ð3CÈgÓVÐð �L‰LÒ$Ø—‘Ñ)Ø—‘Ñ*ä'0°·±Ô'>ÔLÒ'>™t˜qÀ!Ç'Á'Ç)ŸÑ'>ˆIÑLä-¨g¯m©m¸YÓGˆGŒMÜ.¨w¯~©~¸yÓIˆGŒNä,¨W¯\©\¸9ÓEˆGŒLÜ,¨W¯\©\¸9ÓEˆGŒLÜ#4°W×5IÑ5IÈ9Ó#UˆGÔ Ü.¨w¯~©~¸yÓIˆGŒNä0Ð1AÓMÐð �M‰MÑ!Ø—‘Ñ$Ø—‘Ñ+àˆNð �=‰=Ñ  W§\¡\Ñ%9Ü!Ó#Ð#ð �=‰=Ñ  W§\¡\Ñ%=ØˆNð �=‰=Ñ$¨¯©Ñ)=ØˆNð × × Ø—‘Ñ)Ü�G×(Ñ(×)Ñ)à#'×#7Ñ#7Ø §-¡-°ó$ˆGÔ ô !ØØ—-‘-Ø—‘Ø—>‘>Ø ×-Ñ-Ø Ÿ™¨¯©¸¿¹ÐHÜØŸ8™8Ÿ?™?×5Ñ5ØŸ(™(Ÿ,™,×0Ñ0ØŸ(™(Ÿ/™/×3Ñ3ññ
ˆð ×+Ñ+¨GÓ4ˆÜ˜g›,¨Ó*ˆwÐ@´Ó0@Ð@ùóq Ms   ÂL1Â6L1Údt_boxesc           	      ó  • U R                  XX0R                  5      n/ nUR                   HE  nU VVVs/ s H  u  pgoˆc  M
  XgU4PM     n	nnnU	(       d  M+  UR                  [	        U	5      5        MG     [	        U5      $ s  snnnf r*   )rW   rY   r   ÚappendÚtuple)
r2   re   r’   ri   Úorigin_wordsÚ	word_lineÚtxtÚscoreÚbboxÚorigin_words_items
             r4   r‡   ÚRapidOCR.calc_word_boxesï   s�   € ð ×$Ñ$Ø˜7×$?Ñ$?ó
ˆð ˆØ ×-Ô-ˆIá;Dõ!Ú;DÑ'7 s°4Ó"�˜TÓ"¹9ð ò !÷ !Ð Ø×#Ñ#¤EÐ*;Ó$<Ö=ñ .ô �\Ó"Ð"ùô!s   ´	A?
ÁA?
c           	      óò   • SSSSSSSSS	.nUR                  5        HX  u  p4Uc  M
  UR                  U5      nU(       d  [        S
U 35      eU nUS S  H  n[        Xg5      nM     [	        XeS   U5        MZ     g )N)rF   )rM   )rP   ©rX   )rY   )rC   )rL   Úpostprocess_opr\   )rL   rŸ   r]   r_   zUnknown parameter: éÿÿÿÿ)ÚitemsÚgetÚ
ValueErrorÚgetattrÚsetattr)r2   ÚkwargsÚ	param_mapÚkeyrJ   ÚpathÚobjÚattrs           r4   r`   ÚRapidOCR.update_paramsÿ   s�   € à#Ø#Ø#Ø3Ø&AØ)ØFØJñ	
ˆ	ð !Ÿ,™,ž.‰JˆCØ‰}Ùà—=‘= Ó%ˆDÞÜ Ð#6°s°eÐ!<Ó=Ð=àˆCØ˜S˜b›	�Ü˜cÓ(’ñ "ô �C˜b™ 5Ö)ò )r7   c                 ó`   • 0 n[        XR                  U R                  5      u  p4nXES.US'   X24$ )N)ry   rz   rx   )r    rV   rU   )r2   rd   rf   re   ry   rz   s         r4   ra   ÚRapidOCR.preprocess_img  s>   € Øˆ	Ü :Ø×&Ñ&¨×(9Ñ(9ó!
Ñˆ�gð /6Ñ"Jˆ	�,ÑØˆ~Ðr7   c                 óÖ   • [        XU R                  U R                  5      u  pU R                  U5      nUR                  c  [        S5      eU R                  XR                  5      nXC4$ )Nz"The text detection result is empty)r   rE   rD   rL   r|   ro   Úcrop_text_regions)r2   re   rf   rg   Úimg_crop_lists        r4   rn   ÚRapidOCR.detect_and_crop!  sd   € ô 0Ø˜D×3Ñ3°T·_±_ó
‰ˆð —-‘- Ó$ˆà�=‰=Ñ ÜÐ DÓEÐEà×.Ñ.¨s·M±MÓBˆØÐ%Ð%r7   Ú	det_boxesc                 ó~   • / nU H4  n[        U[        R                  " U5      5      nUR                  U5        M6     U$ r*   )r   ÚcopyÚdeepcopyr”   )r2   re   r³   r±   ÚboxÚimg_crops         r4   r°   ÚRapidOCR.crop_text_regions/  s>   € ð ˆÛˆCÜ,¨S´$·-²-ÀÓ2DÓEˆHØ× Ñ  Ö*ñ ð Ðr7   c                 óp   • U R                  U5      nUR                  c  [        S5      eUR                  U4$ )NzThe text classifier is empty)rO   Úimg_listro   )r2   re   rh   s      r4   rq   ÚRapidOCR.cls_and_rotate8  s;   € ð —-‘- Ó$ˆØ×ÑÑ#ÜÐ >Ó?Ð?Ø×Ñ Ð(Ð(r7   c                 ó~   • [        XR                  S9nU R                  U5      nUR                  c  [	        S5      eU$ )N)re   rX   z"The text recognize result is empty)r   rX   rS   r}   ro   )r2   re   Ú	rec_inputri   s       r4   rr   ÚRapidOCR.recognize_txt@  s;   € Ü  S×:NÑ:NÑOˆ	à—-‘- 	Ó*ˆØ�<‰<ÑÜÐ DÓEÐEàˆr7   r�   c                 ó  • / / / / 4u  p#pE[        [        UR                  UR                  UR                  5      5       H  u  nu  pxn	X�R
                  :  a  M  UR                  U   (       a  UR                  UR                  U   5        UR                  U5        UR                  U5        UR                  U	5        M�     [        R                  " U5      Ul        [        U5      Ul        [        U5      Ul        [        U5      Ul        U$ r*   )rƒ   Úzipr|   r}   r~   rC   r   r”   ÚnpÚarrayr•   )
r2   r�   Úfilter_boxesÚfilter_txtsÚfilter_scoresÚfilter_wordsr�   r·   r˜   r™   s
             r4   r‰   ÚRapidOCR.filter_by_text_scoreI  sá   € ØACÀRÈÈRÀÑ>ˆ =Ü$-Ü�—‘˜wŸ|™|¨W¯^©^Ó<ö%
Ñ ˆAÑ �˜%ð —‘Ó&Ùà×#Ñ# A×&Ø×#Ñ# G×$8Ñ$8¸Ñ$;Ô<à×Ñ Ô$Ø×Ñ˜sÔ#Ø× Ñ  Ö'ñ%
ô Ÿš Ó.ˆŒÜ˜[Ó)ˆŒÜ˜}Ó-ˆŒÜ$ \Ó2ˆÔØˆr7   )rW   r3   rT   rU   rD   rV   rY   rX   rO   rL   rS   rC   rM   rF   rP   rE   )NN)NNNNNNNN)%Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ústrr   r   r5   r
   r+   r0   r	   rÂ   ÚndarrayÚbytesr   ÚboolÚfloatr   r   r   r   rk   rb   r   rc   r‡   r`   r   ra   rn   r°   rq   rr   r‰   Ú__static_attributes__© r7   r4   r%   r%   &   sò  † àTXñØ# C™=ðØ9AÀ$ÀsÈCÀxÁ.Ñ9QõðØ# C™=ðØ2:¸4ÀÀSÀ¹>Ñ2Jðà	ôð˜zô ðF #'Ø"&Ø"&Ø*.Ø15Ø&*Ø&*Ø(,ñ
à˜3 §
¡
¨E°4Ð7Ñ8ð
ð ˜$‘ð
ð ˜$‘ð	
ð
 ˜$‘ð
ð " $™ð
ð !)¨¡ð
ð ˜U‘Oð
ð ˜U‘Oð
ð ˜u‘oð
ð 
ˆ}˜m¨]¸NÐJÑ	Kõ
ð<; §¡ð ;¸¸SÀ#¸X¹ô ;ð<RAà—‘ðRAð ðRAð ð	RAð
 ðRAð ˜rŸz™zÑ*ðRAð ˜˜S˜‘>ðRAð 
ˆ}˜m¨]¸NÐJÑ	KôRAðh#Ø˜Ÿ
™
Ñ#ð#Ø/1¯z©zð#ØDQð#à	ô#ò *ð4 b§j¡jð °U¸2¿:¹:ÀtÈCÐQTÈHÁ~Ð;UÑ5Vô ð&Ø—:‘:ð&Ø*.¨s°C¨x©.ð&à	ˆt�B—J‘JÑ Ð.Ñ	/ô&ðØ—:‘:ðØ*,¯*©*ðà	ˆb�j‰jÑ	ôð)Ø˜Ÿ
™
Ñ#ð)à	ˆt�B—J‘JÑ Ð.Ñ	/ô)ð  b§j¡jÑ!1ð °mô ð¨Nð ¸~÷ r7   r%   c                   ó   • \ rS rSrSrg)ro   i_  rÓ   N)rÉ   rÊ   rË   rÌ   rÒ   rÓ   r7   r4   ro   ro   _  s   † Úr7   ro   Úresultr8   c                 ó.   ^ • [        U 4S jS 5       5      $ )Nc              3   óB   >#   • U  H  n[        TUS 5      S Lv •  M     g 7fr*   )r¤   )Ú.0r«   rÕ   s     €r4   Ú	<genexpr>Ú!has_vis_result.<locals>.<genexpr>d  s#   øé € ð Ú<W°DŒ�˜˜dÓ#¨4Õ/Ò<Wùs   ƒ)r|   r}   r~   )r†   )rÕ   s   `r4   Úhas_vis_resultrÛ   c  s   ø€ Üô Ù<Wóó ð r7   c                 ó€  • U (       d  / $ / nU  H¬  nU(       d  M  [        U5      S:X  aG  [        US   [        5      (       a/  [        US   [        [        [
        R                  45      (       d  Mb  U HD  n[        U[        5      (       d  M  [        U5      S:X  d  M+  US   c  M3  UR                  U5        MF     M®     U$ )Né   r   rw   )rŠ   Ú
isinstancerÍ   Úlistr•   rÂ   rÎ   r”   )r   Ú	flattenedr—   Ú	word_items       r4   Úflatten_word_resultsrâ   i  s    € ÞØˆ	à€IÛ!ˆ	ÞÙô �	‹N˜aÓÜ˜9 Q™<¬×-Ñ-Ü˜y¨™|¬d´E¼2¿:¹:Ð-F×GÑGáã"ˆIä˜9¤e×,Ó,Ü˜	“N aÕ'Ø˜a‘LÓ,à× Ñ  Ö+ó #ñ "ð$ Ðr7   Úarg_listc                 ó´  • [         R                  " 5       nUR                  SS[        S S9  UR                  S[        SS9  UR                  S[        SS9  UR                  SS	S
SS9  UR                  S[
        SS9  UR                  S[        S S9  UR                  SSS
SS9  UR                  SSS9nUR                  SSS9nUR                  S[
        S S9  UR                  [        S9  UR                  SSS9nUR                  [        S9  UR                  SSS9nUR                  S[        S S9  UR                  [        S9  UR                  U 5      nU$ )Nz-imgz
--img_path)ÚtypeÚdefaultz--text_scoreg      à?z--lang_typeÚchz-visz	--vis_resÚ
store_trueF)Úactionræ   z--vis_save_dirÚ.z--font_pathz-wordz--return_word_boxÚcommandzSub-command help)ÚdestÚhelpÚconfigzGenerate config file)rí   z--save_cfg_file)ÚfuncÚcheckz#Check if it is installed correctly r   zDownload modelsz--config)ÚargparseÚArgumentParserÚadd_argumentrÍ   rÑ   r   Úadd_subparsersÚ
add_parserÚset_defaultsr   r   r   Ú
parse_args)rã   ÚparserÚ	subparserÚ
parser_cfgÚparser_checkÚparser_downloadÚargss          r4   r÷   r÷   ƒ  sŽ  € Ü×$Ò$Ó&€FØ
×Ñ˜ ´3ÀÐÑEØ
×Ñ˜¬U¸CÐÑ@Ø
×ÑØÜØð ñ ð
 ×Ñ˜ °LÈ%ÐÑPØ
×ÑÐ(¬t¸SÐÑAØ
×Ñ˜¬C¸ÐÑ>Ø
×ÑØÐ$¨\À5ð ñ ð ×%Ñ%¨9Ð;MÐ%ÐN€IØ×%Ñ% hÐ5KÐ%ÐL€JØ×ÑÐ-´DÀ$ÐÑGØ×Ñ¤ÐÑ.à×'Ñ'ØÐ;ð (ð €Lð ×Ñ¤=ÐÑ1à×*Ñ*Ð+<ÐCTÐ*ÐU€OØ× Ñ  ´#¸tÐ ÑDØ× Ñ ¤oÐ Ñ6à×Ñ˜XÓ&€DØ€Kr7   r{   c                 ó>   •  [        U 5      $ ! [         a    U s $ f = fr*   )r!   r£   )r{   s    r4   Únormalize_cli_lang_typerÿ   ¥  s'   € ðÜ�yÓ!Ð!øÜó ØÒðús   ‚
 �›c                 ó’  • [        U 5      nUR                  S:X  a  [        U5        g UR                  S:X  a  [        UR                  5        g UR                  S:X  a
  [        5         [        UR                  5      nUR                  UR                  US.n[        US9nUR                  S:X  a  [        USS9  g UR                  c  [        S5      eUR                  (       a  U" UR                  UR                  S	9nOU" UR                  5      n[        U5        UR                  (       Ga™  [!        U5      (       d  ["        R$                  " S
5        g ['        UR                  UR(                  US9nUR*                  nUR                  (       a¯  [-        UR.                  5      nU(       d  ["        R$                  " S5        g [1        [3        U6 5      u  pšnU" UR                  X¹U
5      nU[5        UR                  5      R6                   S3-  n[8        R:                  " [=        U5      U5        [        SU 35        g U[5        UR                  5      R6                   S3-  nU" UR                  UR>                  UR@                  URB                  5      n[8        R:                  " [=        U5      U5        [        SU 35        g g )Nrî   r   rð   )zGlobal.text_scorezGlobal.return_word_boxzRec.lang_type)r(   F)Úcheck_fileszPlease input the image pathrž   zNo OCR result to visualize.)rC   rR   r{   zNo word result to visualize.z_vis_single.pngz#The vis single result has saved in z_vis.pngzThe vis result has saved in )"r÷   rë   r   r   rî   r   rÿ   r{   rC   rX   r%   r   Úimg_pathr£   ÚprintÚvis_resrÛ   r   rp   r#   rR   Úvis_save_dirrâ   r   rß   rÁ   r   ÚstemÚcv2ÚimwriterÍ   r|   r}   r~   )rã   rý   r{   r(   Ú
ocr_enginerÕ   ÚvisÚcur_dirÚwords_resultsÚwordsÚwords_scoresÚwords_boxesÚvis_imgÚ	save_paths                 r4   Úmainr  ¬  s4  € Ü�hÓ€Dà‡|�|�xÓÜ�TÔØà‡|�|Ð(Ó(Ü˜Ÿ™Ô$Øà‡|�|�wÓÜÔä'¨¯©Ó7€Ià!Ÿ_™_Ø"&×"6Ñ"6Ø"ñ€Fô
  Ñ(€Jà‡|�|�wÓÜ�j¨eÒ4Øà‡}�}ÑÜÐ6Ó7Ð7à××Ù˜DŸM™M¸4×;OÑ;OÑP‰á˜DŸM™MÓ*ˆä	ˆ&„Mà‡|‡|€|Ü˜f×%Ñ%Ü�NŠNÐ8Ô9ØäØ—‘Ø—n‘nØñ
ˆð
 ×#Ñ#ˆà××Ü0°×1DÑ1DÓEˆMÞ Ü—’Ð=Ô>Øä/3´C¸Ð4GÓ/HÑ,ˆE Ù˜$Ÿ-™-¨¸\ÓJˆGØ¤T¨$¯-©-Ó%8×%=Ñ%=Ð$>¸oÐ"NÑNˆIÜ�KŠKœ˜I›¨Ô0ÜÐ7¸	°{ÐCÔDØà¤ d§m¡mÓ!4×!9Ñ!9Ð :¸(ÐCÑCˆ	Ù�d—m‘m V§\¡\°6·;±;ÀÇÁÓNˆÜ�Š”C˜	“N GÔ,ÜÐ,¨Y¨KÐ8Õ9ð9 r7   Ú__main__r*   )Frñ   rµ   Úpathlibr   Útypingr   r   r   r   r   r	   r  ÚnumpyrÂ   Ú	omegaconfr
   rW   r   Úch_ppocr_clsr   r   Úch_ppocr_detr   r   Úch_ppocr_recr   r   r   Úclir   r   r   Úutils.download_modelsr   Úutils.load_imager   Ú	utils.logr   Úutils.outputr   Úutils.parse_parametersr   Úutils.process_imgr   r   r   r   r    Úutils.typingsr!   Úutils.utilsr"   Úutils.vis_resr#   Ú__file__ÚresolveÚparentr@   r=   r%   Ú	Exceptionro   rÐ   rÛ   râ   rÍ   r÷   rÿ   r  rÉ   rÓ   r7   r4   Ú<module>r)     s
  ðó Û Ý ß :× :ã 
Û Ý  å &ß 7ß 5ß EÑ Eß BÑ BÝ 2Ý 'Ý Ý (Ý /÷õ õ #Ý *Ý !á�‹>×!Ñ!Ó#×*Ñ*€Ø˜mÑ+Ð ÷vñ vôr		�Iô 	ð˜>ð ¨dô òñ4˜ $ s¡)Ñ,õ ðD sð ¨u°W¸c°\Ñ/Bô ñ@:�8˜D ™IÑ&õ @:ðF ˆzÓÙ…Fð r7   