Ë
    ÜÓ^j   ã                   óª   — d Z ddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZmZmZmZmZmZ dd	lmZmZ dd
lmZmZ e G d„ de«      «       ZdgZy)z#Image processor class for VideoMAE.é    N)Ú
functionalé   )ÚTorchvisionBackend)ÚBatchFeature)Úgroup_images_by_shapeÚreorder_images)ÚIMAGENET_STANDARD_MEANÚIMAGENET_STANDARD_STDÚ
ImageInputÚPILImageResamplingÚSizeDictÚmake_nested_list_of_images)ÚImagesKwargsÚUnpack)Ú
TensorTypeÚauto_docstringc                   ó0  ‡ — e Zd Zej                  ZeZeZ	ddiZ
dZdddœZdZdZdZdZdee   fˆ fd„Zdded	ed
efd„Zededee   d
efˆ fd„«       Zdeed      dededddedededededeee   z  dz  deee   z  dz  dedz  deez  dz  d
efd„Z ˆ xZ!S )ÚVideoMAEImageProcessorÚshortest_edgeéà   F)ÚheightÚwidthTÚkwargsc                 ó$   •— t        ‰| �  di |¤Ž y )N© )ÚsuperÚ__init__)Úselfr   Ú	__class__s     €ú�/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/transformers/models/videomae/image_processing_videomae.pyr   zVideoMAEImageProcessor.__init__/   s   ø€ Ü‰ÑÑ"˜6Ó"ó    ÚimagesÚexpected_ndimsÚreturnc                 ó   — t        ||¬«      S )N)r#   )r   )r   r"   r#   s      r    Ú_prepare_images_structurez0VideoMAEImageProcessor._prepare_images_structure2   s   € Ü)¨&ÀÔPÐPr!   Úvideosc                 ó$   •— t        ‰| �  |fi |¤ŽS )a€  
        videos (`ImageInput`):
            Video or batch of videos to preprocess. Expects a single video (list of frames) or a batch of videos
            (list of list of frames). Each frame can be a PIL image, numpy array, or torch tensor with pixel values
            ranging from 0 to 255. If passing in frames with pixel values between 0 and 1, set `do_rescale=False`.
        )r   Ú
preprocess)r   r'   r   r   s      €r    r)   z!VideoMAEImageProcessor.preprocess5   s   ø€ ô ‰wÑ! &Ñ3¨FÑ3Ð3r!   ztorch.TensorÚ	do_resizeÚsizeÚresamplez7PILImageResampling | tvF.InterpolationMode | int | NoneÚdo_center_cropÚ	crop_sizeÚ
do_rescaleÚrescale_factorÚdo_normalizeÚ
image_meanNÚ	image_stdÚdisable_groupingÚreturn_tensorsc           	      óä  — t        |d|¬«      \  }}i }|j                  «       D ]  \  }}|r| j                  |||«      }|||<   Œ! t        ||d¬«      }t        |d|¬«      \  }}i }|j                  «       D ]4  \  }}|r| j	                  ||«      }| j                  ||||	|
|«      }|||<   Œ6 t        ||d¬«      }|D �cg c]  }t        j                  |«      ‘Œ }}t        d|i|¬«      S c c}w )NT)Ú	is_nestedr4   )r7   Úpixel_values)ÚdataÚtensor_type)	r   ÚitemsÚresizer   Úcenter_cropÚrescale_and_normalizeÚtorchÚstackr   )r   r"   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r   Úgrouped_imagesÚgrouped_images_indexÚresized_images_groupedÚshapeÚstacked_imagesÚresized_imagesÚprocessed_images_groupedÚprocessed_imagesÚvideo_framesr8   s                            r    Ú_preprocessz"VideoMAEImageProcessor._preprocess?   s>  € ô" 0EØ˜dÐ5Eô0
Ñ,ˆÐ,ð "$ÐØ%3×%9Ñ%9Ó%;ò 	;Ñ!ˆE�>ÙØ!%§¡¨^¸TÀ8Ó!L�Ø,:Ð" 5Ò)ð	;ô (Ð(>Ð@TÐ`dÔeˆä/DØ dÐ=Mô0
Ñ,ˆÐ,ð $&Ð Ø%3×%9Ñ%9Ó%;ò 	=Ñ!ˆE�>ÙØ!%×!1Ñ!1°.À)Ó!L�Ø!×7Ñ7Ø 
¨N¸LÈ*ÐV_óˆNð /=Ð$ UÒ+ð	=ô *Ð*BÐDXÐdhÔiÐð GWÖW°lœŸ™ LÕ1ÐWˆÐWÜ .°,Ð!?È^Ô\Ð\ùò Xs   Ã C-)r   )"Ú__name__Ú
__module__Ú__qualname__r   ÚBILINEARr,   r	   r2   r
   r3   r+   Údefault_to_squarer.   r*   r-   r/   r1   r   r   r   r   Úintr&   r   r   r)   ÚlistÚboolr   ÚfloatÚstrr   rJ   Ú__classcell__)r   s   @r    r   r   "   sx  ø„ à!×*Ñ*€HØ'€JØ%€IØ˜SÐ!€DØÐØ¨Ñ-€IØ€IØ€NØ€JØ€Lð# ¨Ñ!5õ #ñQ°
ð QÈCð QÐXbó Qð ð4 ð 4°v¸lÑ7Kð 4ÐP\ô 4ó ð4ð*]à�T˜.Ñ)Ñ*ð*]ð ð*]ð ð	*]ð
 Lð*]ð ð*]ð ð*]ð ð*]ð ð*]ð ð*]ð ˜D ™KÑ'¨$Ñ.ð*]ð ˜4 ™;Ñ&¨Ñ-ð*]ð  ™+ð*]ð ˜jÑ(¨4Ñ/ð*]ð  
÷!*]r!   r   )Ú__doc__r?   Útorchvision.transforms.v2r   ÚtvFÚimage_processing_backendsr   Úimage_processing_utilsr   Úimage_transformsr   r   Úimage_utilsr	   r
   r   r   r   r   Úprocessing_utilsr   r   Úutilsr   r   r   Ú__all__r   r!   r    ú<module>r`      sX   ðñ *ã Ý 7å ;Ý 2ß E÷÷ ÷ 5ß /ð ôF]Ð/ó F]ó ðF]ðR $Ð
$�r!   