B %Yfôà ã @ s d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl mZ ddlm Z mZ ddlmZ ddlmZ ddlmZ ddlZddlZddlZddlm mZ ddlZddlZddlm Z m!Z!m"Z" dd l#m$Z$m%Z%m&Z&m'Z' dd l(m(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC dd lDmEZE dZFdZGdZHeIe Jdd¡ZKeIe Jdd¡ZLeIe Jdd¡ZMeNe Jdd¡ O¡ dkZPx&e jQ R¡ D ]ZSe jQeS dkrÞP qÞW dd ZTdd ZUdd ZVd d! ZWG d"d# d#e'jXZYdKd(d)ZZG d*d+ d+e&j$Z[G d,d- d-Z\G d.d/ d/Z]G d0d1 d1Z^G d2d3 d3Z_d4d5 Z`G d6d7 d7e%Zae3d8 fd9d:Zbe3d8 fd;d<Zce3d= d>d$fd?d@ZddLdAdBZeG dCdD dDZfG dEdF dFejgjhZidMdIdJZjdS )Nz Dataloaders and dataset utils é N)Úrepeat)ÚPoolÚ ThreadPool)ÚPath)ÚThread)Úurlparse)ÚExifTagsÚImageÚImageOps)Ú DataLoaderÚDatasetÚ dataloaderÚdistributed)Útqdm)ÚAlbumentationsÚaugment_hsvÚclassify_albumentationsÚclassify_transformsÚ copy_pasteÚ letterboxÚmixupÚrandom_perspective)ÚDATASETS_DIRÚLOGGERÚNUM_THREADSÚTQDM_BAR_FORMATÚ check_datasetÚcheck_requirementsÚ check_yamlÚ clean_strÚcv2Úis_colabÚ is_kaggleÚsegments2boxesÚ unzip_fileÚxyn2xyÚ xywh2xyxyÚ xywhn2xyxyÚ xyxy2xywhn)Útorch_distributed_zero_firstzCSee https://docs.ultralytics.com/yolov5/tutorials/train_custom_data) ÚbmpÚdngÚjpegÚjpgÚmpoÚpngÚtifÚtiffÚwebpÚpfm)ÚasfÚaviÚgifÚm4vÚmkvÚmovÚmp4ÚmpegÚmpgÚtsÚwmvÚ LOCAL_RANKéÿÿÿÿÚRANKÚ WORLD_SIZEé Ú PIN_MEMORYTÚtrueÚOrientationc C s@ t dd | D }t t| ¡ ¡}| d | ¡ ¡ ¡ | ¡ S )Nc s s&