
    i              	       H   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rS SKrS SKJs  Jr  S SKJrJr  S SKJr  S SKJr  S SKJrJr  S S	KJr  S S
KJ r   \" 5       r!S r" " S S\#5      r$S r%\&S:X  a  \%" \ " 5       5        gg)    Nz../..auto_growthFLAGS_allocator_strategy)create_operators	transform)build_post_process)
get_logger)get_image_file_listcheck_and_read)draw_rectangle)
parse_argsc                    SSU R                   00nSSU R                   U R                   /00nSU R                  S;  a  / SQO/ SQU R                  S;  a  / S	QO/ SQS
SS.0nSS 0nSSSS/00nU R                  S;  a  XX$U/nU$ XX4U/nU$ )NResizeTableImagemax_lenPaddingTableImagesizeNormalizeImageTableMaster)gZd;O?gy&1?g?)      ?r   r   )g
ףp=
?gv/?gCl?z1./255.hwc)stdmeanscaleorder
ToCHWImageKeepKeys	keep_keysimageshape)table_max_lentable_algorithm)args	resize_oppad_opnormalize_op	to_chw_opkeep_keys_oppre_process_lists          m/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/ppstructure/table/predict_structure.pybuild_pre_process_listr*   '   s    t))
I
 "FT-?-?ASAS,T#UVF ''> &$ ''> &$
L  t$Iw.@ ABL?2%VU  &|U    c                        \ rS rSrS rS rSrg)TableStructurerG   c                    Xl         UR                  U l        [        U5      nUR                  S;  a  SUR                  UR
                  S.nOSUR                  SUR
                  S.n[        U5      U l        [        U5      U l	        [        R                  " US[        5      u  U l        U l        U l        U l        UR"                  (       a{  SS Kn[&        R(                  " 5       n[        R*                  " 5       nUR-                  SUR.                  S	S
S U R                   US UR0                  (       a  UOS / SQS[        S9U l        g g )Nr   TableLabelDecode)namecharacter_dict_pathmerge_no_span_structureTableMasterLabelDecodepad)r1   r2   	box_shaper3   tabler      dynamic)preprocess_timeinference_timepostprocess_time)
model_namemodel_precision
batch_size
data_shape	save_pathinference_configpidsprocess_namegpu_ids	time_keyswarmuplogger)r"   use_onnxr*   r!   table_char_dict_pathr3   r   preprocess_opr   postprocess_oputilitycreate_predictorrH   	predictorinput_tensoroutput_tensorsconfig	benchmarkauto_logosgetpidget_infer_gpuid
AutoLogger	precisionuse_gpuautolog)selfr"   r(   postprocess_paramsrT   pidgpu_ids          r)   __init__TableStructurer.__init__H   s,   	1$76*'+'@'@+/+G+G" 1'+'@'@"+/+G+G	" ..>?01CD $$T7F;	
NK >>))+C,,.F#.." $$!%!"&,,DS / DL r+   c                 >   [         R                   " 5       nU R                  R                  (       a$  U R                  R                  R                  5         UR                  5       nSU0n[        X@R                  5      nUS   nUc  g[        R                  " USS9nUR                  5       nU R                  R                  (       a$  U R                  R                  R                  5         U R                  (       aA  0 nXU R                  R                  '   U R                  R!                  U R"                  U5      nOU R                  R%                  U5        U R                  R!                  5         / nU R"                   H$  nUR'                  5       nUR)                  U5        M&     U R                  R                  (       a$  U R                  R                  R                  5         0 n	US   U	S'   US   U	S'   [        R                  " US   SS9n
U R+                  X/5      nUS	   S   nUS
   S   nUS   n/ SQU-   / SQ-   n[         R                   " 5       U-
  nU R                  R                  (       a#  U R                  R                  R-                  SS9  X4U4$ )Nr   r   )Nr   )axisr8   structure_probs	loc_predsstructure_batch_listbbox_batch_list)z<html>z<body>z<table>)z</table>z</body>z</html>T)stamp)timer"   rS   r[   timesstartcopyr   rK   npexpand_dimsri   rI   rP   r1   rO   runrQ   copy_from_cpucopy_to_cpuappendrL   end)r\   img	starttimeori_imdata
input_dictoutputsoutput_tensoroutputpreds
shape_listpost_resultstructure_str_list	bbox_listelapses                  r)   __call__TableStructurer.__call__w   s+   IIK	99LL$$&~1121g;nnSq)hhj99LL$$&==J14t((--.nn(()<)<jIG++C0NN G!%!4!4&224v& "5 yy""""((*#*1: $QZk^^DH15
))%>()?@C 1215	/2+ !01 	
 y(99LL""".".66r+   )	r"   r[   rR   rP   rQ   rL   rO   rK   rI   N)__name__
__module____qualname____firstlineno__r`   r   __static_attributes__ r+   r)   r-   r-   G   s    -^/7r+   r-   c                    [        U R                  5      n[        U 5      nSnSn[        R                  " U R
                  SS9  [        [        R                  R                  U R
                  S5      SSS9 nU GH  n[        U5      u  pxn	U(       d  [        R                  " U5      nUc&  [        R                  SR                  U5      5        MX  U" U5      u  pU
u  p[        R                   " UR#                  5       5      n[        R                  S	R                  X5      5        UR%                  S
R                  X5      5        ['        U5      S:  a  ['        US   5      S:X  a  [)        Xm5      nO[*        R,                  " X}5      n[        R                  R                  U R
                  [        R                  R/                  U5      5      n[        R0                  " X5        [        R                  SR                  U5      5        US:  a  XK-  nUS-  n[        R                  SR                  Xk5      5        GM     S S S 5        U R2                  (       a  UR4                  R7                  5         g g ! , (       d  f       N;= f)Nr   T)exist_okz	infer.txtwzutf-8)modeencodingzerror in loading image:{}zresult: {}, {}zresult: {}, {}
   zsave vis result to {}r8   zPredict time of {}: {})r	   	image_dirr-   rU   makedirsr|   openpathjoinr
   cv2imreadrH   infoformatjsondumpstolistwritelenr   rM   
draw_boxesbasenameimwriterS   r[   report)r"   image_file_listtable_structurercount
total_timef_w
image_fileru   flag_structure_resr   r   r   bbox_list_strimg_save_paths                   r)   mainr      s   )$..9O&t,EJKKd+	
T[[+.S7
	)J)*5LCqjj,{7>>zJK$4S$9!M,9) JJy'7'7'9:MKK(//0BRSII(//0BRS9~!c)A,&71&<$Z;((8GGLLbgg6F6Fz6RSMKK+KK/66}EFqy$
QJEKK077
KL/ *
6 ~~  '') 7
 
s   7GI99
J__main__)'rU   sysr   dirnameabspath__file____dir__rs   insertr   environr   numpyrn   rj   r   tools.infer.utilityinferrM   
ppocr.datar   r   ppocr.postprocessr   ppocr.utils.loggingr   ppocr.utils.utilityr	   r
   ppocr.utils.visualr   ppstructure.utilityr   rH   r*   objectr-   r   r   r   r+   r)   <module>r      s    
 

''//"''//(3
4   277??277<<#AB C)6

% & 
    % % 2 0 * C - *	@_7f _7D"*J z r+   