+
    œ°³jÏ"  ã                   óÆ   € R t ^ RIt^ RIHt ^RIHt ^RIHt ^RI	H
t
Ht ^RIHtHtHtHtHt ^RIHt ^RIHtHt R	tR
t ! R R]RR7      t] ! R R]4      4       tR.tR# )zImage processor class for Vilt.N)Ú
functional)ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_STANDARD_MEANÚIMAGENET_STANDARD_STDÚPILImageResamplingÚSizeDictÚget_max_height_width)ÚImagesKwargs)Ú
TensorTypeÚauto_docstringi5  i   c                   ó0   a € ] tR t^)t o RtV 3R ltRtV tR# )ÚViltImageProcessorKwargszÉ
size_divisor (`int`, *optional*, defaults to `self.size_divisor`):
    The size by which to make sure both the height and width can be divided. Only has an effect if `do_resize`
    is set to `True`.
c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )é   Úsize_divisor)Úint)ÚformatÚ__classdict__s   "€Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/vilt/image_processing_vilt.pyÚ__annotate__Ú%ViltImageProcessorKwargs.__annotate__)   s   ø‡ ‚ ñ Ñò ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r   s   @r   r   r   )   s   ø‡ € ñ÷ ƒ r   r   F)Útotalc                   ó¶   a a€ ] tR t^3t o]t]P                  t]	t
]tRR/tRtRtRt^ tRtRtRR.tRV3R lV 3R llltV3R	 lR
 ltRV3R lR lltRtVtV ;t# )ÚViltImageProcessorÚshortest_edgei€  TFÚpixel_valuesÚ
pixel_maskc          
      ó@   <€ V ^8„  d   QhRRRS[ RRRS[R,          RR/# )	r   Úimagesútorch.TensorÚsizeÚresampleú7PILImageResampling | tvF.InterpolationMode | int | Noner   NÚreturn)r
   r   )r   r   s   "€r   r   ÚViltImageProcessor.__annotate__B   sI   ø€ ÷ 2iñ 2iàð2iñ ð2ið Lð	2iñ
 ˜D•jð2ið 
ñ2ir   c                ó$  <€ VP                   p\        \        \        ,          V,          4      pVP                  R,          pVP                  R,          pWx8  d   Tp	W…V,          ,          p
MWuV,          ,          p	Tp
\        Wš4      V8”  d#   V\        Wš4      ,          pW›,          p	W«,          p
\        V	R,           4      p	\        V
R,           4      p
Ve   W”,          V,          p	W¤,          V,          p
\        SV `  V\        WšR7      VR7      # )a¿  
Resize an image or batch of images to specified size.

Args:
    images (`torch.Tensor`): Image or batch of images to resize.
    size (`SizeDict`): Size dictionary with shortest_edge key.
    resample (`PILImageResampling | tvF.InterpolationMode | int`, *optional*): Interpolation method to use.
    size_divisor (`int`, *optional*): Value to ensure height/width are divisible by.

Returns:
    `torch.Tensor`: Resized image or batch of images.
g      à?)ÚheightÚwidth)r.   éþÿÿÿéÿÿÿÿ)	r'   r   ÚMAX_LONGER_EDGEÚMAX_SHORTER_EDGEÚshapeÚmaxÚsuperÚresizer
   )Úselfr+   r-   r.   r   ÚshorterÚlongerÚheightsÚwidthsÚnew_heightsÚ
new_widthsÚscaleÚ	__class__s   &&&&&       €r   r<   ÚViltImageProcessor.resizeB   sø   ø€ ð* ×$Ñ$ˆÜ”_Ô'7Õ7¸'ÕAÓBˆà—,‘,˜rÕ"ˆØ—‘˜bÕ!ˆð ÔØ!ˆKØ¨WÕ#4Õ5‰Jà!¨vÕ%5Õ6ˆKØ ˆJô ˆ{Ó'¨&Ô0ØœS Ó9Õ9ˆEØ%Õ-ˆKØ#Õ+ˆJä˜+¨Õ+Ó,ˆÜ˜ cÕ)Ó*ˆ
ð Ò#Ø%Õ5¸ÕDˆKØ#Õ3°lÕBˆJô ‰w‰~˜f¤h°kÔ&TÐ_gˆ~ÓhÐhr   c                ól   <€ V ^8„  d   QhRS[ R,          RS[S[,          R,          RS[R,          RS[/# )r   r+   r,   Úreturn_tensorsNÚdisable_groupingr0   )ÚlistÚstrr   ÚboolÚtuple)r   r   s   "€r   r   r1   v   sF   ø€ ÷ :*ñ :*á�^Õ$ð:*ñ ™jÕ(¨4Õ/ð:*ñ  �+ð	:*ñ
 
ñ:*r   c                óø  € \        V4      p\        WR7      w  rV/ p/ pVP                  4        EF¯  w  ršVR8X  dD   \        V
4      ^ 8”  d4   V
P                  p\
        P                  ! V\
        P                  VR7      pV
P                  RR pV^ ,          V^ ,          8g  ;'       g    V^,          V^,          8g  pV'       d¾   V^ ,          V^ ,          ,
          pV^,          V^,          ,
          p^ ^ VV.p\        P                  ! V
V^ R7      pXP                  4       pVRV^ ,          1RV^,          13,          P                  ^4       VP                  ^ 4      P                  V
P                  ^ ,          ^^4      pMUT
p\
        P                  ! V
P                  ^ ,          V^ ,          V^,          3\
        P                  V
P                  R7      pVWy&   VW‰&   EK²  	  \!        Wv4      p\!        W†4      pVV3# )a(  
Pad a batch of images to the same size based on the maximum dimensions.

Args:
    images (`list[torch.Tensor]`): List of images to pad.
    return_tensors (`str` or `TensorType`, *optional*): The type of tensors to return.

Returns:
    `tuple`: Tuple containing padded images and pixel masks.
©rI   Úpt)ÚdtypeÚdeviceN)Úfillr5   )r   r   ÚitemsÚlenrR   ÚtorchÚzerosÚint64r9   ÚtvFÚpadÚcloneÚfill_Ú	unsqueezeÚrepeatÚonesr   )r=   r+   rH   rI   Úmax_sizeÚgrouped_imagesÚgrouped_images_indexÚprocessed_imagesÚprocessed_masksr9   Ústacked_imagesrR   Úmask_templateÚoriginal_sizeÚneeds_paddingÚpadding_bottomÚpadding_rightÚpaddingÚpadded_imagesr)   Úpixel_maskss   &&&&                 r   Ú
_pad_batchÚViltImageProcessor._pad_batchv   sÚ  € ô" (¨Ó/ˆô 0EÀVÔ/oÑ,ˆØÐØˆà%3×%9Ñ%9×%;Ñ!ˆEà Ô%¬#¨nÓ*=ÀÔ*AØ'×.Ñ.�Ü %§¢¨H¼E¿K¹KÐPVÔ W�à*×0Ñ0°°Ð5ˆMØ)¨!Õ,°¸µÑ;×^Ð^¸}ÈQÕ?OÐS[Ð\]ÕS^Ñ?^ˆMçØ!)¨!¥¨}¸QÕ/?Õ!?�Ø (¨¥¨m¸AÕ.>Õ >�Ø˜a °Ð?�ä #§¢¨¸ÀaÔ H�Ø*×0Ñ0Ó2�
ØÐ-˜]¨1Õ-Ð-Ð/A°¸qÕ1AÐ/AÐAÕB×HÑHÈÔKØ(×2Ñ2°1Ó5×<Ñ<¸^×=QÑ=QÐRSÕ=TÐVWÐYZÓ[‘à .�Ü#ŸjšjØ#×)Ñ)¨!Õ,¨h°q­k¸8ÀA½;ÐGÜŸ+™+Ø)×0Ñ0ô�ð '4ÐÑ#Ø%0ˆOÔ"ñ9 &<ô> 'Ð'7ÓNˆÜ$ _ÓKˆà˜kÐ)Ð)r   c                ó  <€ V ^8„  d   QhRS[ R,          RS[RS[RRRS[RS[R	S[R
S[S[ S[,          ,          R,          RS[S[ S[,          ,          R,          RS[R,          RS[R,          RS[S[,          R,          RS[R,          RS[/# )r   r+   r,   Ú	do_resizer-   r.   r/   Ú
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdo_padrI   rH   r   r0   )rJ   rL   r
   ÚfloatrK   r   r   r   )r   r   s   "€r   r   r1   ²   sß   ø€ ÷ 5Cñ 5Cá�^Õ$ð5Cñ ð5Cñ ð	5Cð
 Lð5Cñ ð5Cñ ð5Cñ ð5Cñ ™D¡�KÕ'¨$Õ.ð5Cñ ™4¡�;Õ&¨Õ-ð5Cñ �t•ð5Cñ  �+ð5Cñ ™jÕ(¨4Õ/ð5Cñ ˜D•jð5Cñ  
ñ!5Cr   c           	     óü  € \        WR 7      w  pp/ pVP                  4        F&  w  ppV'       d   V P                  VW4V4      pVVV&   K(  	  \        VV4      p\        VVR 7      w  pp/ pVP                  4        F  w  ppV P	                  VWVWxV	4      pVVV&   K!  	  \        VV4      p/ pV
'       d   V P                  VWËR 7      w  ppRVRV/pM!VR8X  d   \        P                  ! V4      pRV/p\        VVR7      # )rO   r(   r)   rP   )ÚdataÚtensor_type)	r   rT   r<   r   Úrescale_and_normalizern   rV   Ústackr   )r=   r+   rq   r-   r.   rr   rs   rt   ru   rv   rw   rI   rH   r   Úkwargsra   rb   Úresized_images_groupedr9   re   Úresized_imagesÚprocessed_images_groupedrc   rz   r(   r)   s   &&&&&&&&&&&&&&,           r   Ú_preprocessÚViltImageProcessor._preprocess²   s8  € ô$ 0EÀVÔ/oÑ,ˆÐ,Ø!#Ðà%3×%9Ñ%9Ö%;Ñ!ˆE�>ßØ!%§¡¨^¸TÈ\Ó!Z�Ø,:Ð" 5Ó)ñ &<ô (Ð(>Ð@TÓUˆô 0EÀ^ÐfvÔ/wÑ,ˆÐ,Ø#%Ð à%3×%9Ñ%9Ö%;Ñ!ˆE�>à!×7Ñ7Ø 
¸LÐV_óˆNð /=Ð$ UÓ+ñ &<ô *Ð*BÐDXÓYÐð ˆßØ'+§¡Ø  .ð (7ó (Ñ$ˆL˜*ð # L°,À
ÐK‰Dð  Ô%Ü#(§;¢;Ð/?Ó#@Ð Ø"Ð$4Ð5ˆDä °>ÔBÐBr   r   )NN)N)r   r   r   r   r   Úvalid_kwargsr	   ÚBICUBICr.   r   ru   r   rv   r-   rq   rr   rt   r   rw   Údefault_to_squareÚmodel_input_namesr<   rn   r‚   r"   r#   Ú__classcell__)rE   r   s   @@r   r&   r&   3   s}   ù‡ € à+€LØ!×)Ñ)€HØ'€JØ%€IØ˜SÐ!€DØ€IØ€JØ€LØ€LØ€FØÐØ'¨Ð6Ð÷2iõ 2i÷h:*ð :*÷x5C÷ 5Cò 5Cr   r&   )r    rV   Útorchvision.transforms.v2r   rY   Úimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr   r   r	   r
   r   Úprocessing_utilsr   Úutilsr   r   r7   r8   r   r&   Ú__all__r   r   r   Ú<module>r‘      su   ðñ &ã Ý 7å ;Ý 2ß E÷õ õ -÷ð €ØÐ ô˜|°5õ ð ôsCÐ+ó sCó ðsCðl  Ð
 ‚r   