+
     °³j1   ã                   ó�   € ^ RI t ^ RIHtHt ^ RIHt ^ RIHtHtH	t	H
t
 ^ RIt^ RIHt ^RIHtHtHtHt ^RIHt  ! R R	]4      tR# )
é    N)ÚabspathÚ
expanduser)ÚPath)ÚAnyÚCallableÚOptionalÚUnion)ÚImage)Údownload_and_extract_archiveÚdownload_file_from_google_driveÚextract_archiveÚverify_str_arg)ÚVisionDatasetc                   óÔ   a a€ ] tR t^t oRtRt. ROtRtRV3R lV 3R llltV3R lR lt	V3R lR lt
V3R	 lR
 ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltRtVtV ;t# )Ú	WIDERFaceu  `WIDERFace <http://shuoyang1213.me/WIDERFACE/>`_ Dataset.

Args:
    root (str or ``pathlib.Path``): Root directory where images and annotations are downloaded to.
        Expects the following folder structure if download=False:

        .. code::

            <root>
                â””â”€â”€ widerface
                    â”œâ”€â”€ wider_face_split ('wider_face_split.zip' if compressed)
                    â”œâ”€â”€ WIDER_train ('WIDER_train.zip' if compressed)
                    â”œâ”€â”€ WIDER_val ('WIDER_val.zip' if compressed)
                    â””â”€â”€ WIDER_test ('WIDER_test.zip' if compressed)
    split (string): The dataset split to use. One of {``train``, ``val``, ``test``}.
        Defaults to ``train``.
    transform (callable, optional): A function/transform that takes in a PIL image
        and returns a transformed version. E.g, ``transforms.RandomCrop``
    target_transform (callable, optional): A function/transform that takes in the
        target and transforms it.
    download (bool, optional): If true, downloads the dataset from the internet and
        puts it in root directory. If dataset is already downloaded, it is not
        downloaded again.

        .. warning::

            To download the dataset `gdown <https://github.com/wkentaro/gdown>`_ is required.

Ú	widerfacec                ór   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[S[,          RS[S[,          RS[RR/# )é   ÚrootÚsplitÚ	transformÚtarget_transformÚdownloadÚreturnN)r	   Ústrr   r   r   Úbool)ÚformatÚ__classdict__s   "€Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/datasets/widerface.pyÚ__annotate__ÚWIDERFace.__annotate__:   sZ   ø€ ÷ /ñ /á‘C™�IÕð/ñ ð/ñ ™HÕ%ð	/ñ
 #¡8Õ,ð/ñ ð/ð 
ñ/ó    c                ó‚  <€ \         SV `  \        P                  P	                  WP
                  4      W4R 7       \        VRR4      V n        V'       d   V P                  4        V P                  4       '       g   \        R4      h. V n        V P                  R9   d   V P                  4        R# V P                  4        R# ))r   r   r   r   zTDataset not found or corrupted. You can use download=True to download and prepare itN)ÚtrainÚvalÚtest)r$   r%   )ÚsuperÚ__init__ÚosÚpathÚjoinÚBASE_FOLDERr   r   r   Ú_check_integrityÚRuntimeErrorÚimg_infoÚ parse_train_val_annotations_fileÚparse_test_annotations_file)Úselfr   r   r   r   r   Ú	__class__s   &&&&&&€r   r(   ÚWIDERFace.__init__:   s•   ø€ ô 	‰ÑÜ—‘—‘˜d×$4Ñ$4Ó5Àð 	ô 	
ô $ E¨7Ð4LÓMˆŒ
çØ�M‰MŒOà×$Ñ$×&Ò&ÜÐuÓvÐvàNPˆŒØ�:‰:Ð)Ô)Ø×1Ñ1Ö3à×,Ñ,Ö.r"   c                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# )r   Úindexr   )ÚintÚtupler   )r   r   s   "€r   r    r!   T   s#   ø€ ÷ ñ ¡ð ©©s±C¨x­ñ r"   c                ó:  € \         P                  ! V P                  V,          R,          4      pV P                  e   V P                  V4      pV P                  R8X  d   RMV P                  V,          R,          pV P
                  e   V P                  V4      pW#3# )z©
Args:
    index (int): Index

Returns:
    tuple: (image, target) where target is a dict of annotations for all faces in the image.
    target=None for the test split.
Úimg_pathNr&   Úannotations)r
   Úopenr/   r   r   r   )r2   r6   ÚimgÚtargets   &&  r   Ú__getitem__ÚWIDERFace.__getitem__T   s|   € ô �jŠj˜Ÿ™ uÕ-¨jÕ9Ó:ˆà�>‰>Ò%Ø—.‘. Ó%ˆCàŸ™ vÔ-‘°4·=±=ÀÕ3GÈÕ3VˆØ× Ñ Ò,Ø×*Ñ*¨6Ó2ˆFàˆ{Ðr"   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r   )r7   )r   r   s   "€r   r    r!   j   s   ø€ ÷ "ñ "™ñ "r"   c                ó,   € \        V P                  4      # )N)Úlenr/   )r2   s   &r   Ú__len__ÚWIDERFace.__len__j   s   € Ü�4—=‘=Ó!Ð!r"   c                ó    <€ V ^8„  d   QhRS[ /# rB   )r   )r   r   s   "€r   r    r!   m   s   ø€ ÷ 8ñ 8™Cñ 8r"   c                ó^   € R .pRP                  V4      P                  ! R/ V P                  B # )zSplit: {split}Ú
© )r+   r   Ú__dict__)r2   Úliness   & r   Ú
extra_reprÚWIDERFace.extra_reprm   s+   € Ø!Ð"ˆØ�y‰y˜Ó×&Ò&Ñ7¨¯©Ñ7Ð7r"   c                ó   <€ V ^8„  d   QhRR/# ©r   r   NrJ   )r   r   s   "€r   r    r!   q   s   ø€ ÷ .Tñ .T°$ñ .Tr"   c                óì  € V P                   R 8X  d   RMRp\        P                  P                  V P                  RV4      p\        V4      ;_uu_ 4       pVP                  4       pRRRrvp^ ^ r˜. p
V EFÝ  pVP                  4       pV'       dX   \        P                  P                  V P                  RV P                   ,           RV4      p\        \        V4      4      pRpRpKs  V'       d   \        V4      pRpRpKŒ  V'       Ed>   V	^,          p	VP                  R4      pV Uu. uF  p\        V4      NK  	  ppV
P                  V4       W˜8¼  dð   RpRp\        P                  ! V
4      pV P                  P                  R	XR
RVR,          P                  4       RVR,          P                  4       RVR,          P                  4       RVR,          P                  4       RVR,          P                  4       RVR,          P                  4       RVR,          P                  4       //4       ^ p	V
P!                  4        EKÏ  EKÒ  \#        RV 24      h	  RRR4       R# u upi   + '       g   i     R# ; i)r$   zwider_face_train_bbx_gt.txtzwider_face_val_bbx_gt.txtÚwider_face_splitTFÚWIDER_ÚimagesÚ r:   r;   ÚbboxÚblurÚ
expressionÚilluminationÚ	occlusionÚposeÚinvalidzError parsing annotation file N)ºNNN:r   é   N)r]   r^   )r]   é   )r]   é   )r]   é   )r]   é   )r]   é	   )r   r)   r*   r+   r   r<   Ú	readlinesÚrstripr   r   r7   ÚappendÚtorchÚtensorr/   ÚcloneÚclearr.   )r2   ÚfilenameÚfilepathÚfrL   Úfile_name_lineÚnum_boxes_lineÚbox_annotation_lineÚ	num_boxesÚbox_counterÚlabelsÚliner:   Ú
line_splitÚxÚline_valuesÚlabels_tensors   &                r   r0   Ú*WIDERFace.parse_train_val_annotations_fileq   s  € Ø48·J±JÀ'Ô4IÑ0ÐOjˆÜ—7‘7—<‘< §	¡	Ð+=¸xÓHˆä�(�^Œ^˜qØ—K‘K“MˆEØBFÈÈuÐ,?ˆNØ%&¨�{ØˆFÜ�Ø—{‘{“}�ß!Ü!Ÿw™wŸ|™|¨D¯I©I°xÀ$Ç*Á*Õ7LÈhÐX\Ó]�HÜ&¤z°(Ó';Ó<�HØ%*�NØ%)’Nß#Ü # D£	�IØ%*�NØ*.Ò'ß(Ð(Ø 1Õ$�KØ!%§¡¨C£�JÙ3=Ó">±:¨a¤3 q¦6±:�KÐ">Ø—M‘M +Ô.Ø"Ô/Ø.3Ð+Ø)-˜Ü(-¯ª°VÓ(<˜ØŸ™×,Ñ,à *¨HØ -Ø$*¨M¸&Õ,A×,GÑ,GÓ,IØ$*¨M¸$Õ,?×,EÑ,EÓ,GØ$0°-ÀÕ2E×2KÑ2KÓ2MØ$2°MÀ$Õ4G×4MÑ4MÓ4OØ$/°¸tÕ1D×1JÑ1JÓ1LØ$*¨M¸$Õ,?×,EÑ,EÓ,GØ$-¨}¸TÕ/B×/HÑ/HÓ/Jð0"ðôð '(˜ØŸ™Ÿò' 0ô* 'Ð)GÈÀzÐ'RÓSÐSñK ÷ ‰^ùò& #?÷' �^ˆ^ús,   ÁBI"Ã,I"ÄI"Ä$I
Ä8DI"ÉI"É"I3	c                ó   <€ V ^8„  d   QhRR/# rP   rJ   )r   r   s   "€r   r    r!   ¡   s   ø€ ÷ 	=ñ 	=¨Tñ 	=r"   c           	     óð  € \         P                  P                  V P                  R R4      p\	        \        V4      4      p\        V4      ;_uu_ 4       pVP                  4       pV Fp  pVP                  4       p\         P                  P                  V P                  RRV4      p\	        \        V4      4      pV P                  P                  RV/4       Kr  	  RRR4       R#   + '       g   i     R# ; i)rR   zwider_face_test_filelist.txtÚ
WIDER_testrT   r:   N)r)   r*   r+   r   r   r   r<   rd   re   r/   rf   )r2   rl   rm   rL   rt   r:   s   &     r   r1   Ú%WIDERFace.parse_test_annotations_file¡   s¦   € Ü—7‘7—<‘< §	¡	Ð+=Ð?]Ó^ˆÜœ: hÓ/Ó0ˆÜ�(�^Œ^˜qØ—K‘K“MˆEÛ�Ø—{‘{“}�ÜŸ7™7Ÿ<™<¨¯	©	°<ÀÈ4ÓP�Ü"¤:¨hÓ#7Ó8�Ø—‘×$Ñ$ j°(Ð%;Ö<ñ	 ÷ �^�^Š^ús   ÁBC$Ã$C5	c                ó    <€ V ^8„  d   QhRS[ /# rB   )r   )r   r   s   "€r   r    r!   ¬   s   ø€ ÷ 	ñ 	¡$ñ 	r"   c                ón  € V P                   P                  4       pVP                  V P                  4       V Fy  w  r#p\        P
                  P                  V4      w  rV\        P
                  P                  V P                  V4      p\        P
                  P                  V4      '       d   Kx   R # 	  R# )FT)
Ú	FILE_LISTÚcopyrf   ÚANNOTATIONS_FILEr)   r*   Úsplitextr+   r   Úexists)r2   Ú	all_filesÚ_Úmd5rk   ÚfileÚextÚextracted_dirs   &       r   r-   ÚWIDERFace._check_integrity¬   s€   € à—N‘N×'Ñ'Ó)ˆ	Ø×Ñ˜×.Ñ.Ô/Û )ÑˆA�HÜŸ™×(Ñ(¨Ó2‰IˆDÜŸG™GŸL™L¨¯©°DÓ9ˆMÜ—7‘7—>‘> -×0Ô0Úñ	 !*ñ
 r"   c                ó   <€ V ^8„  d   QhRR/# rP   rJ   )r   r   s   "€r   r    r!   ·   s   ø€ ÷ 
ñ 
˜$ñ 
r"   c                ól  € V P                  4       '       d   R # V P                   FQ  w  rp\        WP                  W24       \        P
                  P                  V P                  V4      p\        V4       KS  	  \        V P                  ^ ,          V P                  V P                  ^,          R7       R # )N)ÚurlÚdownload_rootr‡   )
r-   r€   r   r   r)   r*   r+   r   r   r‚   )r2   Úfile_idr‡   rk   rl   s   &    r   r   ÚWIDERFace.download·   sƒ   € Ø× Ñ ×"Ò"Ùð '+§n¤nÑ"ˆG˜(Ü+¨G·Y±YÀÔNÜ—w‘w—|‘| D§I¡I¨xÓ8ˆHÜ˜HÖ%ñ '5ô 	%Ø×%Ñ% aÕ(¸¿	¹	Àt×G\ÑG\Ð]^ÕG_÷	
r"   )r/   r   ))Ú!15hGDLhsx8bLgLcIRD5DhYt5iBxnjNF1MÚ 3fedf70df600953d25982bcd13d91ba2zWIDER_train.zip)Ú!1GUCogbp16PMGa39thoMMeWxp7Rp5oM8QÚ dfa7d7e790efa35df3788964cf0bbaeazWIDER_val.zip)Ú!1HIfDbVEWKmsYKJZm4lchTBDLW5N7dY5TÚ e5d8f4248ed24c334bbd12f49c29dd40zWIDER_test.zip)zLhttp://shuoyang1213.me/WIDERFACE/support/bbx_annotation/wider_face_split.zipÚ 0e3767bcf0e326556d407bf5bff5d27czwider_face_split.zip)r$   NNF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r,   r€   r‚   r(   r?   rE   rM   r0   r1   r-   r   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r3   r   s   @@r   r   r      sx   ù‡ € ñð< €Kò€IðÐ÷/õ /÷4ð ÷,"ð "÷8ð 8÷.Tð .T÷`	=ð 	=÷	ð 	÷
÷ 
ð 
r"   r   )r)   Úos.pathr   r   Úpathlibr   Útypingr   r   r   r	   rg   ÚPILr
   Úutilsr   r   r   r   Úvisionr   r   rJ   r"   r   Ú<module>r§      s1   ðÛ 	ß 'Ý ç 1Ó 1ã Ý ç qÓ qÝ !ôv
�ö v
r"   