
    iD                         S SK r S SKrS SKrS SKJr   " S S\5      r " S S\5      r " S S\5      r	 " S	 S
\5      r
 " S S\5      r " S S\5      rg)    N)defaultdictc                       \ rS rSrSrS rSrg)DictCollator   
data batch
c                    [        [        5      n/ nU H  nUR                  5        Hl  u  pV[        U[        R
                  [        R                  [        R                  45      (       a  XS;  a  UR                  U5        X%   R                  U5        Mn     M     U H  n[        R                  " X%   5      X%'   M     U$ N)r   listitems
isinstancenpndarraypaddleTensornumbersNumberappend	to_tensor)selfbatch	data_dictto_tensor_keyssamplekvs          _/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddleocr/ppocr/data/collate_fn.py__call__DictCollator.__call__   s    %	Fa"**fmmW^^!LMM.&--a0##A&	 '   A!++IL9IL       N__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r    r   r   r   r      s    r   r   c                       \ rS rSrSrS rSrg)ListCollator)   r   c                    [        [        5      n/ nU H~  n[        U5       Hl  u  pV[        U[        R
                  [        R                  [        R                  45      (       a  XS;  a  UR                  U5        X%   R                  U5        Mn     M     U H  n[        R                  " X%   5      X%'   M     [        UR                  5       5      $ r	   )r   r
   	enumerater   r   r   r   r   r   r   r   r   values)r   r   r   to_tensor_idxsr   idxr   s          r   r   ListCollator.__call__.   s    %	F#F+a"**fmmW^^!LMM0&--c2%%a(	 ,  "C#--in=IN "I$$&''r   r    Nr!   r    r   r   r)   r)   )   s    (r   r)   c                       \ rS rSrSrS rSrg)SSLRotateCollate=   z?
bach: [
    [(4*3xH*W), (4,)]
    [(4*3xH*W), (4,)]
    ...
]
c                 f    [        U6  Vs/ s H  n[        R                  " USS9PM     nnU$ s  snf )Nr   )axis)zipr   concatenate)r   r   doutputs       r   r   SSLRotateCollate.__call__F   s0    58%[A["..+[A Bs   .r    Nr!   r    r   r   r2   r2   =   s    r   r2   c                       \ rS rSrSrS rSrg)DyMaskCollatorK   
batch: [
    image [batch_size, channel, maxHinbatch, maxWinbatch]
    image_mask [batch_size, channel, maxHinbatch, maxWinbatch]
    label [batch_size, maxLabelLen]
    label_mask [batch_size, maxLabelLen]
    ...
]
c                    Su  p#n[        U5      US   S   R                  S   pe/ nU H  nUS   R                  S   U-  S:  d  US   R                  S   U-  S:  a  M7  US   R                  S   U:  a  US   R                  S   OUnUS   R                  S   U:  a  US   R                  S   OUn[        US   5      U:  a  [        US   5      OUnUR                  U5        M     [        R                  " [        U5      XcU4SS9[        R                  " [        U5      SX24SS9p[        R                  " [        U5      U4SS9[        R                  " [        U5      U4SS9p[        [        U5      5       H_  nX}   S   R                  u  pnX}   S   X   S S 2S U2S U24'   SX   S S 2S U2S U24'   [        X}   S   5      nX}   S   X   S U& SX   S U& Ma     XX4$ )	Nr   r   r   r      i     float32dtypeint64)lenshaper   r   zerosrange)r   r   	max_width
max_height
max_lengthbschannelproper_itemsitemimagesimage_maskslabelslabel_masksi_hwls                     r   r   DyMaskCollator.__call__V   s   ,3)	z%j%(1+"3"3A"6GDQa 9,z97==#j0:=$(GMM!$4z$AQa z  -1GMM!,<y,HQa(iI),T!W
)BT!W
J%  !hhY?y
88S&:AS  !hh
+7
88S&
37C  s<()A"oa(..GA!#/?1#5FIa!RaRi ()KN1bqb"1"9%LOA&'A(OA.FIbqM!"KN2A * F77r   r    Nr!   r    r   r   r<   r<   K   s     8r   r<   c                       \ rS rSrSrS rSrg)LaTeXOCRCollatory   z
batch: [
    image [batch_size, channel, maxHinbatch, maxWinbatch]
    label [batch_size, maxLabelLen]
    label_mask [batch_size, maxLabelLen]
    ...
]
c                     US   u  p#nX#U4$ )Nr   r    )r   r   rR   rT   attention_masks        r   r   LaTeXOCRCollator.__call__   s    ).q&~--r   r    Nr!   r    r   r   r]   r]   y   s    .r   r]   c                       \ rS rSrSrS rSrg)UniMERNetCollator   r>   c                    Su  p#n[        U5      US   S   R                  S   pe/ nU H  nUS   R                  S   U:  a  US   R                  S   OUnUS   R                  S   U:  a  US   R                  S   OUn[        US   5      U:  a  [        US   5      OUnUR                  U5        M     [        R                  " [        U5      XcU4SS9n	[        R                  " [        U5      U4SS9[        R
                  " [        U5      U4SS9p[        [        U5      5       HT  nX|   S   R                  u  pnX|   S   X   S S 2S U2S U24'   [        X|   S   5      nX|   S   X   S U& X|   S   X   S U& MV     XU4$ )Nr@   r   rA   rB   rC   rD   rF   )rG   rH   r   r   onesrI   rJ   )r   r   rK   rL   rM   rN   rO   rP   rQ   rR   rT   rU   rV   rW   rX   rY   rZ   s                    r   r   UniMERNetCollator.__call__   s   ,3)	z%j%(1+"3"3A"6GD$(GMM!$4z$AQa z  -1GMM!,<y,HQa(iI),T!W
)BT!W
J%  Y?y
 !gg
+7
88S&
37C  s<()A"oa(..GA!#/?1#5FIa!RaRi LOA&'A(OA.FIbqM!-!3KN2A * {**r   r    Nr!   r    r   r   rc   rc      s    +r   rc   )r   r   numpyr   collectionsr   objectr   r)   r2   r<   r]   rc   r    r   r   <module>rk      s\       #6 ((6 ((v +8V +8\.v .%+ %+r   