
    Mi                     |    S SK JrJr  S SKrS SKrS	S\\   S\4S jjr S
S\R                  S\\\\4      4S jjr	g)    )ListTupleNpredicted_tokensmax_repeatsc                     [        U 5      U:  a  gX* S  n[        [        U5      5      nUS:  a  gX#* S  X#* S-  U*  :H  $ )NF      )lenset)r   r   last_nunique_tokenss       o/var/www/eduai.edurigo.com/storigo/production/storigo_env/lib/python3.13/site-packages/surya/foundation/util.pydetect_repeat_tokenr      sZ    
{* lm,FF$Mq./"f^a-?=.&QQQ    pred	img_sizesc                    [         R                  " [        R                  " U[        R                  S95      R                  U R                  5      nUS S 2S4   U-  S S 2S S 4   nUS S 2S4   U-  S S 2S S 4   nU S S 2S S 2S4   nU S S 2S S 2S4   nU S S 2S S 2S4   n	U S S 2S S 2S4   n
XyS-  -
  nXS-  -
  nXyS-  -   nXS-  -   n[         R                  " U S S 2S S 2S4   U-
  S-  5      n[         R                  " U S S 2S S 2S4   U-
  S-  5      nSU[         R                  " U5      U:  '   SU[         R                  " U5      U:  '   [         R                  " X-
  UU-
  X-
  UU-   X-   UU-   X-   UU-
  /SS9nU R                  u  nnnUR                  UUSS5      nUS S 2S S 2S S 2S4==   U-  ss'   US S 2S S 2S S 2S4==   U-  ss'   U$ )	N)dtype   r   r	         r   )dim)torch
from_numpynparrayfloat32todevicefloorabsstackshapeview)r   r   bbox_scalerskew_scalerskew_minw_scaleh_scalecxcywidthheightx1y1x2y2skew_xskew_ypolygons_flat
batch_sizeseq_len_polygonss                         r   prediction_to_polygon_batchr9      s      )2::!FGJJI A,atm<GA,atm<G	aAgB	aAgBAqME!Q']F	aiB	qjB	aiB	qjB[[$q!Qw-+5:;F[[$q!Qw-+5:;F+,F599Vx'(+,F599Vx'(KKKKKKKKKK		
 M "ZZJ!!*gq!<HQ1aZG#Q1aZG#Or   )(   )gMbP?)
typingr   r   numpyr   r   intr   Tensorr9    r   r   <module>r@      sS      
R$s) 
R# 
R" 1
,,1E#s(O$1r   