
    i              	       X   S SK Jr  S SK Jr  S SK Jr  S SKrS SKJs  Jr	  S SK
r
S SKr\
R                  R                  \
R                  R                  \5      5      r\R                  R#                  \5        \R                  R%                  S \
R                  R                  \
R                  R'                  \S5      5      5        S\
R(                  S'   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  S SKJr  S SK r S r!S r"S r#S r$\%S:X  a  \RL                  " 5       u  r'r(r)r*\$" 5         gg)    )absolute_import)division)print_functionNz..auto_growthFLAGS_allocator_strategy)create_operators	transform)build_model)
load_modelc                     0 n[        U S5       nUR                  5       n[        U5       H  u  pEUR                  S5      X'   M     S S S 5        U$ ! , (       d  f       U$ = f)Nr
)open	readlines	enumeratestrip)filepathretflinesidxlines         Y/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/tools/infer_kie.pyread_class_listr   )   s[    
C	h	"5)ICzz$'CH * 
 J	 
	 Js   8A
A c           
      >   U S   R                  5       nU S   nUR                  S S u  pg[        R                  " XgS-  S4[        R                  S9S-  n[
        R                  " US5      [
        R                  " US5      pU
R                  5       R                  5       nU	R                  5       R                  5       n[        U5       GH8  u  pU[        U5      :  a    GO%US   US	   /US   US	   /US   US   /US   US   //n[        R                  " U/[        R                  5      n[        R                  " UUR!                  S
5      /SSS	S9  [#        [%        U Vs/ s H  nUS   PM
     sn5      5      n[#        [%        U Vs/ s H  nUS	   PM
     sn5      5      nX   nUU;   a  UU   nSR'                  X   5      nUS-   U-   S-   n[        R(                  " UUUS-  U4[        R*                  SSS	5        GM;     [        R                  " XgS-  S4[        R                  S9S-  nUUS S 2S U24'   UUS S 2US 24'   [,        R.                  R1                  [2        S   S   5      S-   n[,        R.                  R5                  U5      (       d  [,        R6                  " U5        [,        R.                  R9                  U[;        U5      S-   5      n[        R<                  " UU5        [>        RA                  SR'                  U5      5        g s  snf s  snf )N            )dtype   r      )r"   r#   r   T)r!   r!   r   )color	thickness{:.2f}()g      ?)r!   r   r   Globalsave_res_pathz/kie_results/z.pngzThe Kie Image saved in {})!copyshapenponesuint8paddlemaxargmaxnumpytolistr   lenarrayint32cv2	polylinesreshapeintminformatputTextFONT_HERSHEY_SIMPLEXospathdirnameconfigexistsmakedirsjoinstrimwriteloggerinfo)batchnode
idx_to_clscountimgboxeshwpred_img	max_valuemax_idxnode_pred_labelnode_pred_scoreiboxnew_boxPtspointx_miny_min
pred_label
pred_scoretextvis_imgsave_kie_path	save_paths                             r   draw_kie_resultre   2   s   
(--/C!HE99Ra=DAwwq5!}BHH5;HD"-v}}T2/Fwmmo,,.Ooo'..0OE"O$$VSVVSVVSVVSV	
 hhy"((+#++j)*DQR	
 Cw7weqw789Cw7weqw789$'
##J/J___%78
C*,s2QY$$	
+ #< ggqa%m2884s:GGArrENGAqrENGGOOF8$4_$EFXM77>>-((
M"]CJ,?@IKK	7#
KK+229=>3 87s   #LLc                    SSK nUS   nUR                  U5      n[        R                  " US5      [        R                  " US5      pvUR                  5       R                  5       nUR                  5       R                  5       n	/ n
[        U5       H:  u  pSR                  X   5      nUX[   S   UX[   S   S.nU
R                  U5        M<     U
R                  S	 S
9  U R                  UR                  U
SS9S-   /5        g)z
Write infer result to output file, sorted by the predict label of each line.
The format keeps the same as the input with additional score attribute.
r   Nlabelr"   r&   transcriptionpoints)rg   rh   scoreri   c                     U S   $ )Nrg    )xs    r   <lambda>"write_kie_result.<locals>.<lambda>z   s    1W:    )keyF)ensure_asciir   )jsonloadsr0   r1   r2   r3   r4   r   r=   appendsort
writelinesdumps)foutrL   datars   rg   annotationsrT   rU   rV   rW   resrX   r`   pred_ress                 r   write_kie_resultr~   d   s    
 ME**U#KD"-v}}T2/Fwmmo,,.Ooo'..0O
Co.___%78
(^O<!nX.	
 	

8 / HH%H&OOTZZ%Z84?@Arp   c                  0   [         S   n [        [         S   5      n[        [         U5        / n[         S   S   S    H  nUR                  U5        M     [         S   S   S   n[	        X 5      n[         S   S   n[         S   S   n[        U5      n[        R                  " [        R                  R                  U5      S	S
9  UR                  5         Sn	/ n
[        US5       n[        [         S   S   S5       nUR                  5       n[        U5       GH  u  pUS:X  a  [        R                  " 5       nUR                  S5      nUR!                  S5      R#                  S5      nUS-   US   -   US   nnUUS.n[        US   S5       nUR%                  5       nUUS'   S S S 5        [        R                  " 5       n['        UU5      nS/[)        U5      -  n[+        [)        U5      5       H2  n[,        R.                  " [0        R2                  " UU   SS95      UU'   M4     [        R                  " 5       nU" U5      u  nn[4        R6                  " US5      nU
R                  [        R                  " 5       U-
  5        [9        UUX5        [;        UUU5        GM     S S S 5        UR=                  5         S S S 5        [>        RA                  S5        [>        RA                  SRC                  [0        RD                  " U
5      [)        U
5      5      5        [)        XS  5      [0        RD                  " XS  5      -  n[>        RA                  SRC                  U5      5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr)   ArchitectureEvaldataset
transformsdata_dirr*   
class_pathT)exist_okr   rR   	infer_imgrb
   zutf-8r   	/r#   )img_pathrg   r   image)axisr"   zsuccess!z#It took {} s for predict {} images.zThe ips is {} images/s)#rC   r
   r   ru   r   r   r@   rE   rA   rB   evalr   r   r   timedecoder   splitreadr	   r5   ranger0   	to_tensorr-   expand_dimsFsoftmaxre   r~   closerI   rJ   r=   sum)global_configmodelr   opr   opsr*   r   rM   warmup_timescount_try   r   r   index	data_linewarmup_tsubstrr   rg   rz   rO   strK   
batch_predrX   rL   edgeipss                                r   mainr   ~   s   8$M ~./Evu JVnY'5" 6 f~i(4H
:
5C8$_5M!,/J ,JKK.>	JJLLG	mS	!T&";/6!KKME$-e$4 B;#yy{H%,,W5	".44T:"*S.6!9"<fQi%$,u=$z*D1Q&&(C$'DM 2 YY[!$,S3u:-
s5z*A$*$4$4R^^E!HST5U$VJqM +YY[":.
dyyr*tyy{R/0tZ? tT2) %5 7. 	

1 
"2 KK

KK-44RVVG_c'lS gm$
%w}/E(F
FC
KK(//45) 21 76 
"	!s>   $N;BM6M$	#C?M6"N$
M3.M66
N	 N
N__main__)+
__future__r   r   r   r3   r-   paddle.nn.functionalnn
functionalr   r@   sysrA   rB   abspath__file____dir__ru   insertrF   environr8   r0   
ppocr.datar   r	   ppocr.modeling.architecturesr
   ppocr.utils.save_loadr   tools.programprogramr   r   re   r~   r   __name__
preprocessrC   devicerI   
vdl_writerrl   rp   r   <module>r      s    '  %      	 

''//"''//(3
4   277??277<<#>? @)6

% & 
  2 4 ,  /?dB476t z)0););)=&FFFJF rp   