Team Ai
Apppublic

Adamfan/objectdetection

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
datasets.cpython-311.pyc434 linesDownload Raw Back to __pycache__
1�

2bj:h����\�ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m3Z4ddlmZddl
mZddlZddlZddlZddlmcmZddlmZmZddlmZddlmZddlZdd	lmZdd5l m!Z!ddl"m#Z#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0dd
l1m2Z2dZ3gd�Z4gd�Z5ej6e7��Z8ej9�:��D]Z;ej9e;dkrn�d�Z<d�Z=		dOd�Z>Gd�dej?j@jAjB��ZCGd�deD��ZEGd�d ��ZFGd!�d"��ZGGd#�d$��ZHd%�ZIGd&�d'e��ZJd(�ZKdPd*�ZLdQd,�ZMd-�ZNd.�ZOd/�ZPdRd0�ZQd1�ZRdRd2�ZSd3�ZTdSd7�ZU		dTd<�ZVdUd@�ZWdA�ZXdB�ZYdC�ZZGdD�dE��Z[dVdG�Z\dWdI�Z]dXdK�Z^dYdM�Z_dN�Z`dS)Z�N)�repeat)�6ThreadPool)�Path)�Thread)�Image�ExifTags)�Dataset)�tqdm)�deepcopy)�7save_image)�roi_pool�	roi_align�ps_roi_pool�ps_roi_align)	�check_requirements�	xyxy2xywh�	xywh2xyxy�8xywhn2xyxy�xyn2xy�segment2box�segments2boxes�resample_segments�	clean_str)�torch_distributed_zero_firstz<https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data)	�bmp�jpg�jpeg�png�tif�tiff�dng�webp�mpo)�mov�avi�mp4�mpg�mpeg�m4v�wmv�mkv�Orientationc�4�td�|D����S)Nc3�K�|]B}tj�|���!tj�|��V��CdS�N)�os�path�isfile�getsize)�.0�fs  �C/content/drive/MyDrive/demo_yolov7_torch26/yolov7/utils/datasets.py�	<genexpr>zget_hash.<locals>.<genexpr>/sC����F�F�a�B�G�N�N�1�4E�4E�F�r�w���q�!�!�F�F�F�F�F�F�)�sum)�filess r6�get_hashr;-s���F�F�5�F�F�F�F�F�Fr8c���|j}	t|��������t}|dkr|d|df}n|dkr|d|df}n#YnxYw|S)N��r�)�size�dict�_getexif�items�orientation)�img�s�rotations   r6�	exif_sizerH2s~����A�
�������,�,�.�.�/�/��<���q�=�=��1��q��t��A�A�
��]�]��1��q��t��A���
�������Hs�A+A5�5A9F������r>r?�c�:�t|9��5t||||||	||jt|��||
|���}ddd��n#1swxYwYt	|t|����}t	t
j��|z|dkr|nd|g��}|10dkr)tj	j11j�|��nd}|
rtj	j12j
nt}|||||d|rtjntj���}||fS)N)	�augment�hyp�rect�cache_images�13single_cls�stride�pad�
image_weights�prefixr>rrJT)�14batch_size�num_workers�sampler�15pin_memory�16collate_fn)r�LoadImagesAndLabelsrQ�int�min�lenr0�	cpu_count�torch�utils�data�distributed�DistributedSampler�17DataLoader�InfiniteDataLoader�collate_fn4rZ)r1�imgszrVrR�optrNrM�cacherSrO�rank�18world_size�workersrT�quadrU�dataset�nwrX�loader�19dataloaders                     r6�create_dataloaderrsAsr��20&�d�	+�	+�215�225�%�d�E�:�.5�*-�+/�38�14��-0��[�[�*-�4A�-3�	5�	5�	5��235�245�255�265�275�285�295�305�315�325�335����345�355�365�375��Z��W���.�.�J�	�b�l�n�n�38�*�*�q�.�.�J�J�a�QX�
Y�	Z�	Z�B�JN�RT�*�*�e�k��*�=�=�g�F�F�F�Z^�G�,9�
Q�U�[�
�
(�
(�?Q�F����#-�$&� '�#'�FJ�#n�#6�#B�#B�Pc�Pn�p�p�p�J��w��s�.A39�40A�Ac�.��eZdZdZ�fd�Zd�Zd�Z�xZS)rfzP Dataloader that reuses workers41 42    Uses same syntax as vanilla DataLoader43    c����t��j|i|��t�|dt	|j����t�����|_dS)N�
batch_sampler)�super�__init__�object�__setattr__�_RepeatSamplerrv�__iter__�iterator)�self�args�kwargs�	__class__s   �r6rxzInfiniteDataLoader.__init__ds]��������$�)�&�)�)�)����4��.��AS�2T�2T�U�U�U����(�(�*�*��
�
�
r8c�4�t|jj��Sr/)r^rvrX�r~s r6�__len__zInfiniteDataLoader.__len__is���4�%�-�.�.�.r8c#�tK�tt|����D]}t|j��V��dSr/)�ranger^�nextr})r~�is  r6r|zInfiniteDataLoader.__iter__lsF�����s�4�y�y�!�!�	&�	&�A��t�}�%�%�%�%�%�%�	&�	&r8)�__name__�44__module__�__qualname__�__doc__rxr�r|�
__classcell__)r�s@r6rfrf^s`���������45+�+�+�+�+�46/�/�/�&�&�&�&�&�&�&r8rfc��eZdZdZd�Zd�ZdS)r{zG Sampler that repeats forever47 48    Args:49        sampler (Sampler)50    c��||_dSr/)rX)r~rXs  r6rxz_RepeatSampler.__init__xs
������r8c#�>K�	t|j��Ed{V���r/)�iterrXr�s r6r|z_RepeatSampler.__iter__{s2����	*��D�L�)�)�)�)�)�)�)�)�)�	*r8N)r�r�r�r�rxr|�r8r6r{r{qs<�����������*�*�*�*�*r8r{c�.�eZdZd	d�Zd�Zd�Zd�Zd�ZdS)51�52LoadImages�� c�r�tt|�������}d|vr$tt	j|d�����}n�t53j�|��r@tt	jt54j�|d������}n6t55j�	|��r|g}ntd|�d����d�|D��}d�|D��}t|��t|��}	}||_||_
||z|_||	z|_d	g|zdg|	zz|_d56|_t%|��r|�|d��nd|_|jdksJd|�d
t*�dt,�����dS)N�*T��	recursive�*.*zERROR: � does not existc�z�g|]8}|�d��d���tv�6|��9S��.rJ)�split�lower�img_formats�r4�xs  r6�57<listcomp>z'LoadImages.__init__.<locals>.<listcomp>��=��N�N�N��a�g�g�c�l�l�2�&6�&<�&<�&>�&>�+�&M�&M�!�&M�&M�&Mr8c�z�g|]8}|�d��d���tv�6|��9Sr�)r�r��vid_formatsr�s  r6r�z'LoadImages.__init__.<locals>.<listcomp>�r�r8F�imagerzNo images or videos found in z!. Supported formats are:58images: z	59videos: )�strr�absolute�sorted�globr0r1�isdir�joinr2�	Exceptionr^�img_sizerRr:�nf�60video_flag�mode�any�	new_video�capr�r�)61r~r1r�rR�pr:�images�videos�ni�nvs62          r6rxzLoadImages.__init__�s�����T�63�64�#�#�%�%�&�&���!�8�8��4�9�Q�$�7�7�7�8�8�E�E�
�W�]�]�1�
�
�	:��4�9�R�W�\�\�!�U�%;�%;�<�<�=�=�E�E�
�W�^�^�A�
�
�	:��C�E�E��8�a�8�8�8�9�9�9�N�N�U�N�N�N��N�N�U�N�N�N���V���c�&�k�k�B�� ��
�����f�_��65��r�'��� �'�B�,�$��"��4�����	��v�;�;�	��N�N�6�!�9�%�%�%�%��D�H��w��{�{�{�d�A�d�d�?J�d�d�Va�d�d�{�{�{�{�{r8c��d|_|S�Nr��countr�s r6r|zLoadImages.__iter__�s����66��r8c
��|j|jkrt�|j|j}|j|jr�d|_|j���\}}|s�|xjdz
c_|j���|j|jkrt�|j|j}|�	|��|j���\}}|xj67dz
c_68td|jdz�d|j�d|j69�d|j�d|�d�d�	��n3|xjdz
c_tj|��}|�
Jd70|z���t||j|j���d}|dd�dd�ddd
�f�ddd��}t'j|��}||||jfS)N�videor>zvideo �/z (z) �: rK��end�Image Not Found �rRrrJ�)r�r��
StopIterationr:r�r�r��read�releaser��frame�print�nframes�cv2�imread�	letterboxr�rR�	transpose�np�ascontiguousarray)r~r1�ret_val�img0rEs     r6�__next__zLoadImages.__next__�s����:��� � ����z�$�*�%���?�4�:�&�	?��D�I� �H�M�M�O�O�M�G�T��
4��71�72�a��73�74��� � �"�"�"��:���(�(�'�'��:�d�j�1�D��N�N�4�(�(�(�$(�H�M�M�O�O�M�G�T��J�J�!�O�J�J��\�4�:��>�\�\�D�G�\�\�t�z�\�\�D�L�\�\�TX�\�\�\�bd�e�e�e�e�e�
�J�J�!�O�J�J��:�d�#�#�D��#�#�%7�$�%>�#�#�#���d�m�D�K�@�@�@��C���!�!�!�Q�Q�Q���"��*�o�'�'��1�a�0�0���"�3�'�'���S�$���(�(r8c��d|_tj|��|_t	|j�tj����|_dSr�)r�r��VideoCapturer�r\�get�CAP_PROP_FRAME_COUNTr�)r~r1s  r6r�zLoadImages.new_video�s?����75��#�D�)�)����4�8�<�<��(@�A�A�B�B����r8c��|jSr/)r�r�s r6r�zLoadImages.__len__�s	���w�r8N)r�r�)r�r�r�rxr|r�r�r�r�r8r6r�r��sl������d�d�d�d�8���$)�$)�$)�LC�C�C�76����r8r�c�(�eZdZd	d�Zd�Zd�Zd�ZdS)77�78LoadWebcam�0r�r�c���||_||_|���rt|��}||_tj|��|_|j�t79j	d��dS)N�)80r�rR�	isnumeric�eval�piper�r�r��set�CAP_PROP_BUFFERSIZE)r~r�r�rRs    r6rxzLoadWebcam.__init__�sg�� ��
�����>�>���	���:�:�D�81��	��#�D�)�)�������S�,�a�0�0�0�0�0r8c��d|_|S�NrJr�r�s r6r|zLoadWebcam.__iter__������82��r8c��|xjdz
c_tjd��td��kr3|j���tj��t�|jdkr2|j�	��\}}tj83|d��}nJd}	|dz
}|j���|dzdkr|j���\}}|rn�G|sJd|j�����d}td|j�d	�d84���t||j|j���d}|dd�dd�ddd
�f�ddd��}t%j|��}|||dfS)Nr>�qrT�z
Camera Error z85webcam.jpgzwebcam r�rKr�r�rJr�)r�r��waitKey�ordr�r��destroyAllWindowsr�r�r��flip�grab�retriever�r�r�rRr�r�r�)r~r�r��n�img_pathrEs      r6r�zLoadWebcam.__next__�s����86�87�a��88�89��;�q�>�>�S��X�X�%�%��H�������!�#�#�#����9��>�>� �H�M�M�O�O�M�G�T��8�D�!�$�$�D�D��A�
��Q�����
�
�����r�6�Q�;�;�$(�H�$5�$5�$7�$7�M�G�T����

��3�3�3��	�3�3�3�3�w���
�&��90�&�&�&�B�/�/�/�/���d�m�D�K�@�@�@��C���!�!�!�Q�Q�Q���"��*�o�'�'��1�a�0�0���"�3�'�'����d�D�(�(r8c��dSr�r�r�s r6r�zLoadWebcam.__len__����qr8N)r�r�r�)r�r�r�rxr|r�r�r�r8r6r�r��sV������1�1�1�1����!)�!)�!)�F����r8r�c�.�eZdZd91d�Zd�Zd�Zd�Zd�Zd	S)�LoadStreams�streams.txtr�r�c92�F��d�_|�_|�_tj�|��rkt
|d��5}d�|�������	��D��}ddd��n#1swxYwYn|g}t|��}dg|z�_d�|D���_t|��D�]�\}}t|dz�d|�d|�d�d	�93��|���rt!|��n|}dt#|��vsdt#|��vrAt%d
��ddl}	|	�|���d���j}t/j|��}94|95���s
Jd|�����t5|96�t.j����}t5|97�t.j����}|98�t.j��dz�_|99���\}
�j|<tA�j!||100gd���}td|�d|�d�jd�d���|�"�����td	��tGj$�fd��jD��d��}tGj%|d���j&ddk�_'�j'std��dSdS)N�stream�rc�x�g|]7}t|������#|�����8Sr�)r^�stripr�s  r6r�z(LoadStreams.__init__.<locals>.<listcomp>s8��^�^�^��s�ST�SZ�SZ�S\�S\�~�~�^�1�7�7�9�9�^�^�^r8c�,�g|]}t|����Sr�)rr�s  r6r�z(LoadStreams.__init__.<locals>.<listcomp>s��6�6�6��	�!���6�6�6r8r>r�r�z... rKr�zyoutube.com/z	youtu.be/)�pafy�101youtube_dlrr&)�preftypezFailed to open �dT)�targetr�daemonz102 success (r�z at z.2fz FPS).c�^��g|])}t|�j�j���dj��*S)r�r)r�r�rR�shape�r4r�r~s  �r6r�z(LoadStreams.__init__.<locals>.<listcomp>.s5���b�b�b�ST�i��4�=���E�E�E�a�H�N�b�b�br8��axiszcWARNING: Different stream shapes detected. For optimal performance supply similarly-shaped streams.)(r�r�rRr0r1r2�openr�r��103splitlinesr^�imgs�sources�	enumerater�r�r�r�rr�new�getbest�urlr�r��isOpenedr\r��CAP_PROP_FRAME_WIDTH�CAP_PROP_FRAME_HEIGHT�CAP_PROP_FPS�fpsr�update�startr��stack�uniquerrO)r~rr�rRr5r�r�rFrrr��w�h�_�threads`              r6rxzLoadStreams.__init__sH�����	� ��
����
�7�>�>�'�"�"�	 ��g�s�#�#�
_�q�^�^�a�f�f�h�h�n�n�.>�.>�.I�.I�.K�.K�^�^�^��
_�
_�
_�
_�
_�
_�
_�
_�
_�
_�
_����
_�
_�
_�
_���i�G���L�L���F�Q�J��	�6�6�g�6�6�6����g�&�&�	�	�D�A�q��Q��U�)�)�Q�)�)�!�)�)�)�r�2�2�2�2��[�[�]�]�1�$�q�'�'�'��C���S���)�)�[�C��H�H�-D�-D�"�#9�:�:�:������h�h�s�m�m�+�+�U�+�;�;�?���"�3�'�'�C��<�<�>�>�8�8�#8�Q�#8�#8�8�8�>��C�G�G�C�4�5�5�6�6�A��C�G�G�C�5�6�6�7�7�A��w�w�s�/�0�0�3�6�D�H�!�h�h�j�j�O�A�t�y��|��4�;�q�#�h��M�M�M�F��>�q�>�>�1�>�>�$�(�>�>�>�>�?�?�?��L�L�N�N�N�N�
�b�	�	�	�
�H�b�b�b�b�X\�Xa�b�b�b�de�f�f���I�a�a�(�(�(�.�q�1�Q�6��	��y�	y��w�x�x�x�x�x�	y�	ys�AB�B�Bc�>�d}|���r�|dz
}|���|dkr5|���\}}|r|n|j|dz|j|<d}t	jd|jz��|�����dSdS)Nrr>�)rr�r�r�time�sleepr)r~�indexr�r��success�ims      r6rzLoadStreams.update3s���
���l�l�n�n�	%�
��F�A��H�H�J�J�J��A�v�v�!�l�l�n�n����)0�#J�2�2�d�i��6F��6J��	�%� ����J�q�4�8�|�$�$�$��l�l�n�n�	%�	%�	%�	%�	%r8c��d|_|Sr�r�r�s r6r|zLoadStreams.__iter__@r�r8c����xjdz
c_�j���}tjd��td��krtj��t��fd�|D��}tj	|d��}|dd�dd�dd�ddd�f�104dddd��}tj|��}�j||dfS)Nr>r�c�`��g|]*}t|�j�j�j���d��+S))�autorRr)r�r�rOrRr	s  �r6r�z(LoadStreams.__next__.<locals>.<listcomp>Ls6���`�`�`�VW�y��D�M��	�$�+�N�N�N�q�Q�`�`�`r8rrJr�r�)
r�r�copyr�r�r�r�r�r�rr�r�r)r~r�rEs`  r6r�zLoadStreams.__next__Ds�����105�106�a��107�108��y�~�~�����;�q�>�>�S��X�X�%�%��!�#�#�#���a�`�`�`�[_�`�`�`���h�s�A�����!�!�!�Q�Q�Q����4�4�R�4�-� �*�*�1�a��A�6�6���"�3�'�'���|�S�$��,�,r8c��dSr�r�r�s r6r�zLoadStreams.__len__Wr�r8N)r�r�r�)r�r�r�rxrr|r�r�r�r8r6r�r�109si������&y�&y�&y�&y�P%�%�%����-�-�-�&����r8r�c����tjdztjztjdztjzc����fd�|D��S)Nr��labelsc	���g|]Y}d�|���d���|�d��dd������ZS)�txtr>r�rJ)r��replace�rsplitr�)r4r��sa�sbs  ��r6r�z#img2label_paths.<locals>.<listcomp>^sT���\�\�\�Q�E�J�J�q�y�y��R��+�+�2�2�1�7�7�3�<�<��3C�Q�G�G�H�H�\�\�\r8)r0�sep)�	img_pathsr4r5s @@r6�img2label_pathsr8[sI����
�V�h�
���
'���(�):�R�V�)C�F�B��\�\�\�\�\�R[�\�\�\�\r8c�p�eZdZ		dd�Zed	��dfd110�Zd�Zd�Zed
���Z	ed���Z111dS)r[r��FNr�rIrKc
�4��)�|�_|�_|�_|�_|rdn|�_�jo�j�_|dz|dzg�_|112�_|�_	g}
t|t��r|n|gD�]}t|��}|���r-|
tj
t|dzdz��d���z
}
�S|���r�t!|d��5}|���������}t|j��t*jz�)|
�)fd�|D��z
}
ddd��n#1swxYwY��t/|�|�d	����t1d113�|
D�����_�js
J|�d����n1#t.$r$}t/|�d|�d
|�dt4�����d}~wwxYwt7�j���_|���r|nt�jd��j�d��}|���rt=j|d���d}}n�� ||��d}}|�!d��\}}}}}|r(d|�d|�d|�d|�d|�d�}tEd||z||���|dks|rJ|�d|�dt4�����|�!d��|�!d��tG|�$���\}}�_%t|���_&tOj(|tNj)����_*t|�+�����_t7|�+�����_|	r�j&D]}d|dd�df<�tY|��}tOj-tOj.|��|z���/t`��}|dd z}|�_1|�_2tg|���_4�j�r=�j*}|dd�d f|dd�dfz} | �5��}!�fd!�|!D���_�fd"�|!D���_�fd#�|!D���_&||!�_*| |!} d d gg|z}tg|��D]T}"| ||"k}#|#�6��|#�7��}%}$|%d kr|%d g||"<�D|$d kr114d d |$zg||"<�UtOj8tOj(|��|z|115z|z���/t`��|116z�_9dg|z�_:|�r�|d$krztt�jd��j�;��d%z���_<�fd&��jD���_=�j<�>dd�'��d}&dg|zdg|zc�_?�_@t�d(���Bd)�tGt����tg|������}'tEt�|'��|�*��}(|(D]�\}"}|d$kr�j=|"�E��s8tOjF�j=|"�;��|d��|&�j=|"�G��jHz
}&n3|\�j:|"<�j?|"<�j@|"<|&�j:|"jIz
}&|�d+|&d,zd-�d.�|(_J��|(�K��dSdS)/NFr�z**r�Tr�r�c�j��g|]/}|�d��r|�d���n|��0S)z./)�117startswithr2)r4r��parents  �r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>zs?���^�^�^�WX����d�9K�9K�R�a�i�i��f�5�5�5�QR�^�^�^r8r�c��g|]V}|�d��d���tv�6|�dtj����WS)r�rJr�)r�r�r�r2r0r6r�s  r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>~sP��$r�$r�$r��!�'�'�RU�,�,�WY�JZ�J`�J`�Jb�Jb�fq�Jq�Jq�Q�Y�Y�s�B�F�%;�%;�Jq�Jq�Jqr8zNo images foundzError loading data from r�z118See rz.cache)�weights_only�results�119Scanning '�' images and labels... � found, �120 missing, � empty, �121 corrupted)�desc�total�initialz
No labels in z$. Can not train without labels. See �hash�version��dtyperJr>c�*��g|]}�j|��Sr�)�	img_files�r4r�r~s  �r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>�s ���?�?�?�A�d�n�Q�/�?�?�?r8c�*��g|]}�j|��Sr�)�label_filesrQs  �r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>�s!���C�C�C��� 0�� 3�C�C�Cr8c�*��g|]}�j|��Sr�)r/rQs  �r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>�s���9�9�9�a�4�;�q�>�9�9�9r8�disk�_npyc�n��g|]1}�jt|���d��jz��2S)z.npy)�im_cache_dirr�with_suffix�name)r4r5r~s  �r6r�z0LoadImagesAndLabels.__init__.<locals>.<listcomp>�s9���m�m�m�YZ�� 1�D��G�G�4G�4G��4O�4O�4T� T�m�m�mr8)�parents�exist_okr?c��t|�Sr/)�122load_image)r�s r6�<lambda>z.LoadImagesAndLabels.__init__.<locals>.<lambda>�s123��:�q�>�r8�rIzCaching images (ge��Az.1fzGB))Lr�rMrNrTrO�mosaic�
mosaic_borderrRr1�124isinstance�listr�is_dirr�r��is_filerr�r�r
r>r0r6r�r�rP�help_urlr8rSrYr`�load�cache_labels�popr125�zip�values�segmentsr/r��array�float64�shapes�keysr^�floor�arange�astyper\�batchr�r��indices�argsortr]�max�ceil�batch_shapesr�as_posixrX�img_npy�mkdir�img_hw0�img_hwr�imaprr�exists�save�stat�st_size�nbytesrH�close)*r~r1r�rVrMrNrOrTrPrQrRrSrUr5r��t�e�126cache_pathrjr�r��nm�ne�ncr��dr/rpr��bi�nbrF�ar�irectr��ari�mini�maxi�gbrA�pbarr>s*`                                        @r6rxzLoadImagesAndLabels.__init__bs���� ��
�������*���*�4�E�E���	��l�4�4�9�}���'�i�1�n�x�i�1�n�=��������	�	\��A�'��d�3�3�?�T�T�$��
C�
C����G�G���8�8�:�:�127C����3�q�4�x�%�'7�#8�#8�D�I�I�I�I�A�A��Y�Y�[�[�C��a����_���F�F�H�H�N�N�,�,�7�7�9�9��!$�Q�X�����!7���^�^�^�^�\]�^�^�^�^��_�_�_�_�_�_�_�_�_�_�_����_�_�_�_��$�v�$A�q�$A�$A�$A�B�B�B�#�$r�$r�Q�$r�$r�$r�s�s�D�N��>�=�=�f�#=�#=�#=�=�=�>�=���	\�	\�	\��v�Z�Z�t�Z�Z�q�Z�Z�PX�Z�Z�[�[�[�����	\����+�4�>�:�:����9�9�;�;�L�a�a�D��1A�!�1D�,E�,E�,L�Y�Y�Zb�c�c�128������	I�!�J�z��F�F�F��6�E�E�!�-�-�j�&�A�A�5�6�E�"�I�I�i�0�0���B��B���	<�t�Z�t�t��t�t�B�t�t�Z\�t�t�fh�t�t�t�A���F�Q�J�a��;�;�;�;��A�v�v�W�v�v��&x�&x�j�&x�&x�nv�&x�&x�v�v�$�	�	�	�&����
�	�	�)����(+�U�\�\�^�^�(<�%����
��6�l�l����h�v�R�Z�8�8�8����e�j�j�l�l�+�+���*�5�:�:�<�<�8�8����	��[�
�
����!�!�!�Q�$�����K�K��
�X�b�i��l�l�Z�/�
0�
0�
7�
7��
<�
<��
��V�a�Z����129�����Q�x�x����9�	i���A��1�1�1�a�4��1�Q�Q�Q��T�7�"�B��J�J�L�L�E�?�?�?�?��?�?�?�D�N�C�C�C�C�U�C�C�C�D��9�9�9�9�5�9�9�9�D�K��E�(�D�K��E��B��!�f�X��]�F��2�Y�Y�
.�
.����q��k�� �W�W�Y�Y����	�	�d���!�8�8�!%�q�	�F�1�I�I��A�X�X�!"�A��H�
�F�1�I�� "�����(8�(8�8�(C�f�(L�s�(R� S� S� Z� Z�[^� _� _�bh� h�D���F�Q�J��	��	��v�%�%�$(��d�n�Q�.?�)@�)@�)G�)P�)P�)R�)R�U[�)[�$\�$\��!�m�m�m�m�^b�^l�m�m�m����!�'�'��t�'�D�D�D��B�)-���130�T�F�Q�J�%�D�L�$�+� ��m�m�(�(�)A�)A�3�v�d�|�|�UZ�[\�U]�U]�C^�C^�_�_�G��	�'�*�*�!�4�4�4�D��
I�
I���1��6�)�)��<��?�1�1�3�3�B�����Q�� 8� 8� :� :�A�a�D�A�A�A��$�,�q�/�.�.�0�0�8�8�B�B�DE�A�D�I�a�L�$�,�q�/�4�;�q�>��$�)�A�,�-�-�B�%�H�H�r�C�x�H�H�H�H��	�	��J�J�L�L�L�L�L�%	�	s?�BF;�1A+E(�F;�(E,	�,F;�/E,	�0A131F;�;132G)�G$�$G)z./labels.cachec
�D�i}d\}}}}tt|j|j��dt	|j�����}t|��D�]4\}	\}133}	t
j|134��}|���t|��}
g}|
ddk|
ddkzsJd|
�d����|j135���tvsJd	|j136�����tj�|���r�|dz
}t|d137��5}d�|���������D��}t'd�|D����rnt)jd
�|D��t(j���}d�|D��}t)j|�dd��t3|��fd��}t)j|t(j���}ddd��n#1swxYwYt	|��r�|jddks138Jd���|dk���s139Jd���|dd�dd�fdk���s140Jd���t)j|d���jd|jdks141Jd���nK|dz
}t)jdt(j���}n%|dz
}t)jdt(j���}||
|g||142<n3#t<$r&}|dz
}t?|�d|143�d|����Yd}~nd}~wwxYw|�d|j |j!z�d|�d|�d|�d|�d�|_"��6|�#��|dkrt?|�d |�d!tH����tK|j|jz��|d"<|||||	dzf|d#<d$|d%<tMj'||��tQj)|�d&|����|S)'N)rrrrzScanning images)rHrIr�	r>zimage size z <10 pixelszinvalid image format r�c�6�g|]}|�����Sr��r�r�s  r6r�z4LoadImagesAndLabels.cache_labels.<locals>.<listcomp>�s ��N�N�N�1�Q�W�W�Y�Y�N�N�Nr8c�4�g|]}t|��dk��S)r?)r^r�s  r6r�z4LoadImagesAndLabels.cache_labels.<locals>.<listcomp>�s"��6�6�6�q��A����144�6�6�6r8c��g|]145}|d��S�rr�r�s  r6r�z4LoadImagesAndLabels.cache_labels.<locals>.<listcomp>�s��/@�/@�/@���!��/@�/@�/@r8rMc��g|]>}tj|dd�tj����dd����?S)r>NrMrJr�)r�rn�float32�reshaper�s  r6r�z4LoadImagesAndLabels.cache_labels.<locals>.<listcomp>�sD��'d�'d�'d�]^����1�2�2��b�j�(I�(I�(I�(Q�(Q�RT�VW�(X�(X�'d�'d�'dr8rJ�zlabels require 5 columns eachznegative labelsz1non-normalized or out of bounds coordinate labelsr146zduplicate labels)rr�z/WARNING: Ignoring corrupted image and/or label r�rBrCrDrErFrGzWARNING: No labels found in z. See rKrA皙�����?rLzNew cache created: )*r147rkrPrSr^rrr�verifyrH�formatr�r�r0r1r2r�r�r
r�r�rnr��concatenater�rr�allr�zerosr�r�r>�stemrHr�rgr;r`r��logging�info)r~r1rUr�r�r�r�r�r�r��im_file�lb_filer'rrmr5�l�classesr�s                   r6riz LoadImagesAndLabels.cache_labels�s�����#���B��B��C����(8�9�9�@Q�Y\�]a�]k�Yl�Yl�m�m�m��%.�t�_�_�%	P�%	P�!�A�!���!
`��Z��(�(���	�	����!�"�
�
�����a��1���q��A��6�X�X�8X�e�8X�8X�8X�X�X�6��y���(�(�K�7�7�7�9\�QS�QZ�9\�9\�7�7�7��7�>�>�'�*�*�;��!�G�B��g�s�+�+�:�q�N�N��������0@�0@�0K�0K�0M�0M�N�N�N���6�6�A�6�6�6�7�7�f�&(�h�/@�/@�a�/@�/@�/@��148�&S�&S�&S�G�'d�'d�bc�'d�'d�'d�H� "������A�0F�0F��W_�H`�H`�/a�cd� e� e�A��H�Q�b�j�9�9�9��
:�:�:�:�:�:�:�:�:�:�:����:�:�:�:��1�v�v�?� �w�q�z�Q����0O���� !�Q��|�|�~�~�@�@�/@�@�@�~� !�!�!�!�Q�R�R�%��A�
�2�2�4�4�i�i�6i�i�i�4�!�y���3�3�3�9�!�<����149�J�J�J�L^�J�J�J�J��a����H�V�2�:�>�>�>����!�G�B����r�z�:�:�:�A����1��'�150�151���
`�
`�
`��a�����^�^�PW�^�^�[\�^�^�_�_�_�_�_�_�_�_�����
`����"�P�P�T�[�4�9�-D�P�P��P�P�')�P�P�57�P�P�AC�P�P�P�D�I�I��152�153����
��7�7��V�O�O��O�O�X�O�O�P�P�P��T�-���>�?�?��&�	��2�r�2�q�1�u�,��)����)��
�154�1�d�������9�9�4�9�9�:�:�:��s?�CL0�&C*H�L0�H 	� L0�#H 	�$DL0�0155M �:M�M c�*�t|j��Sr/)r^rPr�s r6r�zLoadImagesAndLabels.__len__
s���4�>�"�"�"r8c156�N157�|j|}|j}|jotj��|dk}|�rNtj��dkrt	||��\}}nt||��\}}d}tj��|dkr�tj��dkr<t	|tjdt|j��dz158����\}}n;t|tjdt|j��dz159����\}}tj�160dd��}	||	z|d|	z161zz�tj��}tj
||fd��}n�t||��\}\}162}\}}
|jr|j|j|n|j}t'||d|j���\}}}|163|f||164z|
|zf|ff}|j|���}|jrGt/|dd�dd�f|d|
z|d|z|d|d�	��|dd�dd�f<|j�r|s7t1|||d165|d|d|d
|d���\}}t3||d|d|d���tj��|dkr�ggg}}}t|��dkrrt5|tjdt|j��dz166����\}}}||z
}||z
}||z
}t|��dkrnt|��dk�rt7|||||��}t|��}|rft9|dd�dd�f��|dd�dd�f<|dd�ddgfxx|jdzcc<|dd�ddgfxx|jdzcc<|jr�tj��|dkr,tj|��}|rd|dd�dfz167|dd�df<tj��|dkr,tj|��}|rd|dd�dfz168|dd�df<tAj!|df��}|rtAj"|��|dd�dd�f<|dd�dd�ddd�f�#ddd��}tj$|��}tAj"|��||j%||fS)Nrag�������?�mixuprr>g @F)r+�scaleup)�padw�padh�degrees�	translate�scale�shear�perspective)r�r�r�r�r��hsv_h�hsv_s�hsv_v)�hgain�sgain�vgain�paste_inr�r�r�r"r��flipud�fliplrr=rJ)&rvrNra�random�load_mosaic�load_mosaic9�randintr^r/r��betart�uint8r�r^rOrzrur�r�rMr,r@r�random_perspective�augment_hsv�load_samples�pasteinrrr�r�r`r��169from_numpyr�r�rP)r~r%rNrarEr/rp�img2�labels2r��h0�w0rrr�ratiorS�
sample_labels�
sample_images�sample_masks�sample_labels_�sample_images_�
sample_masks_�nL�170labels_outs                         r6�__getitem__zLoadImagesAndLabels.__getitem__sy����U�#���h����@�����3�x�=�!@���	p��}����$�$�)�$��6�6���V�V�*�4��7�7���V��F��}����W��-�-��=�?�?�S�(�(�$/��f�n�Q��D�K�HX�HX�[\�H\�6]�6]�$^�$^�M�D�'�'�$0��v�~�a��T�[�IY�IY�\]�I]�7^�7^�$_�$_�M�D�'��I�N�N�3��,�,���Q�w���Q���/�7�7���A�A������(9�1�=�=���%/�t�U�$;�$;�!�C��"�b�6�A�q�=A�I�X�D�%�d�j��&7�8�8�4�=�E�'��U����U�U�U�O�C����"�X��R���R�� 0�#�6�6�F��[��'�,�,�.�.�F��{�
p� *�6�!�!�!�Q�R�R�%�=�%��(�Q�,��a��ST��[^�_`�[a�hk�lm�hn� o� o� o��q�q�q�!�"�"�u�
��<�	Z��
Q�0��f�9<�Y��;>�{�;K�7:�7�|�7:�7�|�=@��=O�Q�Q�Q���V�
��3�w�<�s�7�|�3�w�<�X�X�X�X��}����Z��0�0�=?��R�l�}�
��-�(�(�2�-�-�DP�QU�W]�We�fg�il�mq�mx�iy�iy�|}�i}�W~�W~�D�D�A�N�N�M�!�^�3�M�!�^�3�M� �M�1�L��=�)�)�Q�.�.���-�(�(�2�-�-�!��f�m�]�L�Y�Y��
��[�[��
�	.�&�v�a�a�a��1��f�~�6�6�F�1�1�1�a��c�6�N��1�1�1�q�!�f�9������1��-�����1�1�1�q�!�f�9������1��-�����<�	4��}����X��.�.��i��n�n���4�#$�v�a�a�a��d�|�#3�F�1�1�1�a�4�L��}����X��.�.��i��n�n���4�#$�v�a�a�a��d�|�#3�F�1�1�1�a�4�L��[�"�a��)�)�171�
�	9� %� 0�� 8� 8�J�q�q�q�!�"�"�u���!�!�!�Q�Q�Q���"��*�o�'�'��1�a�0�0���"�3�'�'�����$�$�j�$�.��2G��O�Or8c��t|�\}}}}t|��D]\}}||dd�df<�tj|d��tj|d��||fSr�)rkrr`r�cat)rurE�labelr1rpr�r�s       r6rZzLoadImagesAndLabels.collate_fnwsi��#&��;� ��U�D�&��e�$�$�	�	�D�A�q��A�a�a�a��d�G�G��{�3��"�"�E�I�e�Q�$7�$7��v�E�Er8c172��t|�\}}}}t|��dz}gg|d|�|d|�f\}}}}	tjgd�g��}173tjgd�g��}tjgd�g��}t	|��D�]q}
|
dz}
tj��dkr}t
j||
�d���	��ddd	�174��d�175||
�176����}||
}n�tjtj||
||
dzfd��tj||
dz||
d
zfd��fd��}tj||
||
dz|177z||
dz|z||
d
z|178z|zfd��|z}|�|��|�|����st|��D]\}
}|
|dd�df<�tj|d��tj|d��||	fS)Nr")rIrrr>rr)rIrr>rrr)r>r>��?r�r�r�r�r�@�bilinearF)�scale_factorr��
align_cornersr>r�r�)rkr^r`�tensorr�r��F�interpolate�	unsqueeze�float�typer��appendrr)rurEr�r1rpr��img4�label4�path4�shapes4�ho�worFr�r'r�s                r6rgzLoadImagesAndLabels.collate_fn4~sY��#&��;� ��U�D�&���K�K�1���')�2�t�B�Q�B�x������'C�$��f�e�W�
�\�.�.�.�/�
0�
0��
�\�.�.�.�/�
0�
0���L�0�0�0�1�2�2���q���179	�180	�A�
��F�A��}����$�$��]�3�q�6�#3�#3�A�#6�#6�#<�#<�#>�#>�R�V`�pu�v�v�v����t�C��F�K�K�M�M�*�*���!�H����Y��	�3�q�6�3�q�1�u�:�*>�� B� B�E�I�s�ST�WX�SX�z�[^�_`�cd�_d�[e�Nf�hi�Dj�Dj�k�mn�o�o���I�u�Q�x��q�1�u���):�E�!�a�%�L�2�<M�u�UV�YZ�UZ�|�^`�O`�ce�Oe�f�hi�j�j�mn�n���K�K��O�O�O��M�M�!������f�%�%�	�	�D�A�q��A�a�a�a��d�G�G��{�4��#�#�U�Y�v�q�%9�%9�5�'�I�Ir8)r�r:FNFFFFr�rIrK)r�r�r�rxrrir�r��staticmethodrZrgr�r8r6r[r[as�������mr�RT�r�r�r�r�h!%��%5� 6� 6�r�5�5�5�5�n#�#�#�_P�_P�_P�B�F�F��\�F��J�J��\�J�J�Jr8r[c��|j|}|��|j|}tj|��}|�
Jd|z���|jdd�\}}|jt
||��z}|dkr^|dkr|jstjntj	}tj181|t||z��t||z��f|���}|||f|jdd�fS|j||j||j
|fS)Nr�r�r>��
interpolation)rrPr�r�rr�rxrM�182INTER_AREA�INTER_LINEAR�resizer\r~r)r~r%rEr1r�r�r��interps        r6r^r^�s���183�)�E�184�C�185�{��~�e�$���j�������� 2�T� 9������2�A�2����B��M�C��B�K�K�'����6�6�'(�1�u�u�T�\�u�S�^�^�s�GW�F��*�S�3�r�A�v�;�;��B��F���"<�F�S�S�S�C��R��H�c�i����m�+�+��y�����e�!4�d�k�%�6H�H�Hr8r�c�&�tj�ddd��|||gzdz}tjtj|tj����\}}}|j}tjddtj	���}	|	|dzdz�186|��}187tj|	|dzdd���188|��}tj|	|d	zdd���189|��}tjtj
||190��tj
||��tj
||��f���191|��}
tj|
tj|�192��dS)NrJr>r�r�rM���r�)�dst)r�r��uniformr�r��cvtColor�
COLOR_BGR2HSVrNrs�int16rt�clip�merge�LUT�
COLOR_HSV2BGR)rEr�r�r�r��hue�sat�valrNr��lut_hue�lut_sat�lut_val�img_hsvs              r6r�r��sK��193�	���"�a��#�#�u�e�U�&;�;�a�?�A��I�c�l�3��0A�B�B�C�C�M�C��c��I�E�194�	�!�S���)�)�)�A��A�a�D��C��'�'��.�.�G��g�a�!�A�$�h��3�'�'�.�.�u�5�5�G��g�a�!�A�$�h��3�'�'�.�.�u�5�5�G��i����g�.�.����W�0E�0E�s�w�s�T[�G\�G\�]�^�^�e�e�fk�l�l�G��L��#�+��5�5�5�5�5�5r8Tc��tj||rtjntj��}|rCtjdd���}|�|dd�dd�df��|dd�dd�df<n+tj|dd�dd�df��|dd�dd�df<tj||rtjntj��S)Nr�)r?r?)�	clipLimit�tileGridSizer)	r�r�
COLOR_BGR2YUV�
COLOR_RGB2YUV�createCLAHE�apply�equalizeHist�
COLOR_YUV2BGR�
COLOR_YUV2RGB)rE�clahe�bgr�yuv�cs     r6�
hist_equalizer�s���195
�,�s��K�C�-�-�#�:K�196L�197L�C��6��O�c��?�?�?���w�w�s�1�1�1�a�a�a��7�|�,�,��A�A�A�q�q�q�!�G����'��A�A�A�q�q�q�!�G��5�5��A�A�A�q�q�q�!�G���<��#�L�S�.�.�3�;L�M�M�Mr8c�0������gg}}|j��fd�|jD��\}}|gtj|jd���z}t|��D�]\}}t
||��\}}	\��|dkr{tj�dz�dz|j	dfdtj198���}199t|�z200d��t|�z201d��||f\}}}
}�|
|z202z203�||z204z205��f\}}}}�n|dkrS|t|�z206d��t|�z�dz��|f\}}}
}d�||z207z208t�|
|z209���f\}}}}n�|dkrSt|�z210d��||t�dz|�z��f\}}}
}�|
|z211z212d�t||z213���f\}}}}nf|dkr`||t|�z�dz��t�dz|�z��f\}}}
}ddt�|
|z214��t||z215���f\}}}}|||�||�f|216||�||
�f<||z217�||z218�|j
|���|j|���}}|jr9t#|dd�dd�f������|dd�dd�f<����fd	�|D��}|�|��|�|�����tj|d��}|dd�dd�fg|�RD]}tj|dd�z|�219���t-|220|||jd���\}221}}t1|222|||jd
|jd|jd|jd|jd|j��	�	\}223}|224|fS)Nc	�b��g|]+}ttj|d�z|z������,S�r��r\r�r��r4r�rFs  �r6r�zload_mosaic.<locals>.<listcomp>��7���
M�
M�
M�Q�c�&�.�!��Q��U�Q�Y�/�/�0�0�
M�
M�
Mr8r���krr��rrMr>c	�6��g|]}t|��������Sr��r�r4r�rr�r�rs  ����r6r�zload_mosaic.<locals>.<listcomp>��)���F�F�F���q�!�Q��d�3�3�F�F�Fr8��out�225copy_paste��probabilityr�r�r�r�r��r�r�r�r�r��border)r�rbr��choicesrvrr^r��fullrr�rxr]r/r,rmr@rr��extendr�rr,rNr�)r~r%�labels4�	segments4�yc�xcrvr�rErr��x1a�y1a�x2a�y2a�x1b�y1b�x2b�y2br/rmr�rr�r�rFrs                      @@@@@r6r�r��sM��������R�Y�G��
�A�
M�
M�
M�
M�$�:L�
M�
M�
M�F�B���g���t�|�q�9�9�9�9�G��g�&�&�#�#���5�#�D�%�0�0���Q���A�
��6�6��7�A��E�1�q�5�#�)�A�,�7��B�H�M�M�M�D�!$�R�!�V�Q����R�!�V�Q����R�!G��C��c�3�!"�c�C�i��!�s�S�y�/�1�a�!G��C��c�3�3�
�!�V�V�!#�S��a���^�^�S��a���Q��5G�5G��!K��C��c�3�!"�A��s��O�S��C�#�I�5F�5F��!I��C��c�3�3�
�!�V�V�!$�R�!�V�Q����R��Q��U�B��F�9K�9K�!K��C��c�3�!"�c�C�i��!�Q��C�#�I�q�8I�8I�!I��C��c�3�3�
�!�V�V�!#�R��R�!�V�Q��U�);�);�S��Q���Q��=O�=O�!O��C��c�3�!"�A�s�1�c�C�i�'8�'8�#�c�C�i��:K�:K�!K��C��c�3�!$�S��W�c�#�g�%5�!6��S��W�c�#�g�
���S�y���S�y�� �;�u�-�2�2�4�4�d�m�E�6J�6O�6O�6Q�6Q����;�	G�&�v�a�a�a����e�}�a��D�$�G�G�F�1�1�1�a�b�b�5�M�F�F�F�F�F�F�F�X�F�F�F�H����v��������"�"�"�"��n�W�a�(�(�G��a�a�a����e�n�
)�y�
)�
)�$�$��226���1�a�!�e��#�#�#�#�#� *�$���PT�PX�Ye�Pf�g�g�g��D�'�9�&�t�W�i�/3�x�	�/B�15��+�1F�-1�X�g�->�-1�X�g�->�37�8�M�3J�.2�.@�
B�B�B�M�D�'���=�r8c�f�������gg}}|j�|gtj|jd���z}t	|��D�]/\}}t||��\}}\��|dkrFt
j�dz�dz|jdfdtj	���}��}227}	����z��zf�n�|dkr
���z228��z�f�n�|dkr�|z��z229�|z�z�f�n�|dkr�|230z��|231z�z��zf�n�|d	kr�|232z�|z�|233z�z�|z�zf�n{|d234kr�|235z�z236�|	z�|237z�|	z�zf�n\|dkr�|238z|z239�z240�|	z�|241z|z242�|	z�zf�n7|dkr��z243�|	z�z244��|	zf�n|dkr��z245�|	z|z246�z247��|	z|z248f��dd�\��d
��D��\}
}}}|j249|���|j|���}}|j
r9t|dd�dd�f������|dd�dd�f<����fd�|D��}|�|��|�|��||�z250d�|
�z251d�f|||�|
|�f<��}}��1�fd�|jD��\}}|||d�zz�||d�zz�f}t
j|d��}|dd�ddgfxx|zcc<|dd�dd	gfxx|zcc<t
j||g����fd�|D��}|dd�dd�fg|�RD]}t
j|dd�z|����t+||||jd���\}}}t/||||jd|jd|jd|jd|jd|j��	�	\}}||fS)Nr?r#rr�r�r%rMr>r"r�r=�c�.�g|]}t|d����Sr�)rxr�s  r6r�z load_mosaic9.<locals>.<listcomp> s ��/�/�/��#�a��)�)�/�/�/r8c	�6��g|]}t|��������Sr�r')r4r�r�padx�padyrs  ����r6r�z load_mosaic9.<locals>.<listcomp>&r)r8c�T��g|]$}ttjd�������%Sr�r )r4rrFs  �r6r�z load_mosaic9.<locals>.<listcomp>/s-���
D�
D�
D�A�c�&�.��A�&�&�'�'�
D�
D�
Dr8c���g|]}|�z252��Sr�r�)r4r�rs  �r6r�z load_mosaic9.<locals>.<listcomp>7s���*�*�*�1��Q��*�*�*r8r*r,r-r�r�r�r�r�r/)r�r�r1rvrr^r�r2rr�r/r,rmr@rr�r3rbr�rnrr,rNr�)r~r%�labels9�	segments9rvr�rEr�img9r�r��wp�hp�x1�y1�x2�y2r/rmr6r7r�rrrDrErFrs                      @@@@@@r6r�r��s����������R�Y�G��
�A��g���t�|�q�9�9�9�9�G��g�&�&�'�'���5�#�D�%�0�0���Q���A�
��6�6��7�A��E�1�q�5�#�)�A�,�7��B�H�M�M�M�D����B��1�a�!�e�Q��U�"�A�A�
�!�V�V��1�q�5�!�a�%��"�A�A�
�!�V�V��B���A��q�2�v��z�1�,�A�A�
�!�V�V��B���1�r�6�A�:�q�1�u�,�A�A�
�!�V�V��B���B���B���253�A��F�Q�J�6�A�A�
�!�V�V��B���254�A��F�A��F�A��F�Q�J�6�A�A�
�!�V�V��B����a���R���R��"��a�"�f�q�j�@�A�A�
�!�V�V��A��q�2�v��z�1�a�"�f�,�A�A�
�!�V�V��A��q�2�v��{�Q���1�r�6�B�;�6�A��r��r�U�255��d�/�/�Q�/�/�/���B��B� �;�u�-�2�2�4�4�d�m�E�6J�6O�6O�6Q�6Q����;�	G�&�v�a�a�a����e�}�a��D�$�G�G�F�1�1�1�a�b�b�5�M�F�F�F�F�F�F�F�X�F�F�F�H����v��������"�"�"�!��d����R�$�Y�Z�Z�!7�8��R��U�B�r�E�\���A�B���E�
D�
D�
D��1C�
D�
D�
D�F�B����2��A��:�
�r�"�q�1�u�*�}�,�-�D��n�W�a�(�(�G��A�A�A��1�v�I����"������A�A�A��1�v�I����"�����256��"�b����A�*�*�*�*�	�*�*�*�I��a�a�a����e�n�
)�y�
)�
)�$�$��257���1�a�!�e��#�#�#�#�#�258 *�$���PT�PX�Ye�Pf�g�g�g��D�'�9�&�t�W�i�/3�x�	�/B�15��+�1F�-1�X�g�->�-1�X�g�->�37�8�M�3J�.2�.@�
B�B�B�M�D�'���=�r8c	�n������gg}}|j��fd�|jD��\}}|gtj|jd���z}t|��D�]\}}t
||��\}}	\��|dkr{tj�dz�dz|j	dfdtj259���}260t|�z261d��t|�z262d��||f\}}}
}�|
|z263z264�||z265z266��f\}}}}�n|dkrS|t|�z267d��t|�z�dz��|f\}}}
}d�||z268z269t�|
|z270���f\}}}}n�|dkrSt|�z271d��||t�dz|�z��f\}}}
}�|
|z272z273d�t||z274���f\}}}}nf|dkr`||t|�z�dz��t�dz|�z��f\}}}
}ddt�|
|z275��t||z276���f\}}}}|||�||�f|277||�||
�f<||z278�||z279�|j
|���|j|���}}|jr9t#|dd�dd�f������|dd�dd�f<����fd	�|D��}|�|��|�|�����tj|d��}|dd�dd�fg|�RD]}tj|dd�z|�280���t-|281||d���\}}}|||fS)
Nc	�b��g|]+}ttj|d�z|z������,Srr r!s  �r6r�z load_samples.<locals>.<listcomp>Pr"r8r�r#rr�r%rMr>c	�6��g|]}t|��������Sr�r'r(s  ����r6r�z load_samples.<locals>.<listcomp>mr)r8r*r�r-)r�rbr�r1rvrr^r�r2rr�rxr]r/r,rmr@rr�r3r�r�sample_segments)r~r%r4r5r6r7rvr�rErr�r8r9r:r;r<r=r>r?r/rmr�r�r�r�rr�r�rFrs                         @@@@@r6r�r�Ks���������R�Y�G��
�A�
M�
M�
M�
M�$�:L�
M�
M�
M�F�B���g���t�|�q�9�9�9�9�G��g�&�&�#�#���5�#�D�%�0�0���Q���A�
��6�6��7�A��E�1�q�5�#�)�A�,�7��B�H�M�M�M�D�!$�R�!�V�Q����R�!�V�Q����R�!G��C��c�3�!"�c�C�i��!�s�S�y�/�1�a�!G��C��c�3�3�
�!�V�V�!#�S��a���^�^�S��a���Q��5G�5G��!K��C��c�3�!"�A��s��O�S��C�#�I�5F�5F��!I��C��c�3�3�
�!�V�V�!$�R�!�V�Q����R��Q��U�B��F�9K�9K�!K��C��c�3�!"�c�C�i��!�Q��C�#�I�q�8I�8I�!I��C��c�3�3�
�!�V�V�!#�R��R�!�V�Q��U�);�);�S��Q���Q��=O�=O�!O��C��c�3�!"�A�s�1�c�C�i�'8�'8�#�c�C�i��:K�:K�!K��C��c�3�!$�S��W�c�#�g�%5�!6��S��W�c�#�g�
���S�y���S�y�� �;�u�-�2�2�4�4�d�m�E�6J�6O�6O�6Q�6Q����;�	G�&�v�a�a�a����e�}�a��D�$�G�G�F�1�1�1�a�b�b�5�M�F�F�F�F�F�F�F�X�F�F�F�H����v��������"�"�"�"��n�W�a�(�(�G��a�a�a����e�n�
)�y�
)�
)�$�$��282���1�a�!�e��#�#�#�#�#�2832A��w�PY�gj�1k�1k�1k�.�M�=�,��-��5�5r8c284��t|��}|�r�|�r�|j\}}}tj|jtj��}tjt|��t||z�����D�]}	||	||	}}285||286dz287|288d||289dz290|291df}t||dd�dd�f��}
|
dk�292��r�tj||293dg|�gfd��}|�tj||dd�dd�fz294|dd�dd�ffd����tj|||	�tj��gd	d295tj����tj||���}tj|d��}|dk}||||<|||fS)Nr#r�r�r>r"r��333333�?rrJ�r�r�r���src1�src2)r^rr�r�r�r��sampler��round�bbox_ioar�r�r�r��drawContoursrt�int32�FILLED�bitwise_andr�)rEr/rmr.r�rrr�im_new�jr�rF�box�ioa�resultr�s                r6r,r,~s����H�
�
�A���q���)���1�a���#�)�R�X�.�.����u�Q�x�x�5��q��+A�+A�B�B�B�	j�	j�A��!�9�h�q�k�q�A��a��d�(�A�a�D�!�a��d�(�A�a�D�0�C��3��q�q�q�!�A�#�v��/�/�C��d�296���!�!�
j����1�Q�4�,�#�,��(@�!�D�D��������A�a�a�a��1��f�I�
�q����A�a�C��y�/I�1� M� M�N�N�N�� ��(�1�+�*<�*<�R�X�*F�*F�)G��_�^a�^h�i�i�i����c��7�7�7����&�!�$�$���Q�J������A����� � r8c���t|��}|j\}}}tj|jtj��}tj|jtj��dz}t
|��D]o}	tj|||	�	tj297��gddtj��tj||���}298|299dk}|300|||<�p|||fS)Nr%rJrWrXr)
r^rr�r�r��onesr�r�r^rtr_r`ra)rEr/rmr�rrrrb�img_newrcrfr�s            r6�remove_backgroundrj�s����H�
�
�A��i�G�A�q�!�
�X�c�i���
*�
*�F��g�c�i���*�*�S�0�G�
�1�X�X�������(�1�+�"4�"4�R�X�">�">�!?��_�VY�V`�a�a�a���c��7�7�7���Q�J���A�Y���301�302��F�H�$�$r8c	�0�t|��}g}g}g}|�rz|�rw|j\}}	}303tjt	|��t||z�����D�]7}||||}
}|d�t���d|	dz304��|d�t���d|dz305��|d�t���d|	dz306��|d�t���d|dz307��f}|d|dks|d|dkr��|�	|d��tj|jtj��}tj|||�tj��gddtj��|�	||d|d�|d|d�dd�f��tj||�	��}|dk}||||<|�	||d|d�|d|d�dd�f����9|||fS)308Nr#r>rr�r�r"rJrWrX)r^rr�r[r�r\rtr\rr�r�r�r�r�r^r_r`ra)rEr/rmr.r�r�r�r�rrrrcr�rFrd�maskrfr�s                  r6rTrT�s����H�
�
�A��M��M��L��F�q�F��)���1�a���u�Q�x�x�5��q��+A�+A�B�B�B�	F�	F�A��!�9�h�q�k�q�A��A�$�+�+�c�"�"�'�'��!�A�#�.�.��!����C�0@�0@�0E�0E�a��!��0L�0L�a�PQ�d�k�k�Z]�N^�N^�Nc�Nc�de�fg�hi�fi�Nj�Nj�lm�no�lp�lw�lw�x{�l|�l|�mB�mB�CD�EF�GH�EH�mI�mI�I�C��A��#�a�&� � �c�!�f��A��&6�&6��� � ��1��&�&�&��8�C�I�r�x�0�0�D���T�H�Q�K�$6�$6�r�x�$@�$@�#A�2��X[�Xb�c�c�c�����S��V�C��F�]�3�q�6�#�a�&�=����%B� C�D�D�D��_�#�D�9�9�9�F���309�A��Q�i�D��G�� � ��c�!�f�S��V�m�C��F�3�q�6�M�!�!�!�&C�!D�E�E�E�E��-��5�5r8c	�r�|jdd�\}}|dd�dd�f�t��}|j\}}}}||z310||z311zdz}	|	���dt|	jdz���D]�}312||313\}}}
}||z314|
|z315}}ttjd||z316����ttjd||z317����}}||||z||zg\}}}}|||�||
�f|||�||�f<tj318|||319df||||ggd���}��||fS)Nr�r>r�rr320)rrtr\�Trwr\r@r�r�r�r�)rEr/rr�boxesrMrNrOrPrFr�r<r=r>r?�bh�bwr6r7r8r9r:r;s                       r6�	replicaterr�sl���9�R�a�R�=�D�A�q��1�1�1�a�b�b�5�M� � ��%�%�E��W�N�B��B��321�r�'�b�2�g�	�!�#�A�
�Y�Y�[�[�-�%�����-�-�-�
.�Q�Q��"�1�X���S�#�s��s��C�#�I�B���V�^�A�q�2�v�.�.�/�/��V�^�A�q�2�v�5N�5N�1O�1O�B�� �"�b�2�g�r�B�w�7���S�#�s� #�C��G�S��W�$4� 5��C��G�S��W�����6�V�A�q�D�\�3��S�#�$F�#G�a�P�P�P�����;�r8�r�r��r%r%r%r�c	�B�|jdd�}t|t��r||f}t|d|dz|d|dz��}|st|d��}||f}	tt	|d|z����tt	|d|z����f}322|d|323dz324|d|325dz326}}|r+tj||��tj||��}}n9|r7d\}}|d|df}327|d|dz|d|dzf}	|dz}|dz}|ddd�|328kr!tj||329tj	���}tt	|dz330����tt	|dz����}}
tt	|dz331����tt	|dz����}}tj332||
|||tj|�	��}||	||ffS)333Nr�rr>��?)rIrIrJr�r�)�value)rrcr\r]r\r��modr�r�r��copyMakeBorder�BORDER_CONSTANT)rE�	new_shape�colorr+�	scaleFillr�rRrr�r��	new_unpad�dw�dh�top�bottom�left�rights                 r6r�r��s���I�b�q�b�M�E��)�S�!�!�+��	�*�	�	�I�a�L�5��8�#�Y�q�\�E�!�H�%<�=�=�A�����3�K�K��
�q�D�E��E�%��(�Q�,�'�'�(�(�#�e�E�!�H�q�L�.A�.A�*B�*B�B�I�
�q�\�I�a�L�
(�)�A�,��1��*E��B��A����F�#�#�R�V�B��%7�%7�B���	�A����B��q�\�9�Q�<�0�	��!��u�Q�x�'��1���a��)@�@���!�G�B��!�G�B��T�T�r�T�{�i����j��i�s�7G�H�H�H���e�B��H�o�o�&�&��E�"�s�(�O�O�(<�(<��C��e�B��H�o�o�&�&��E�"�s�(�O�O�(<�(<�%�D�334
�335�S�#�v�t�U�C�<O�W\�336]�337]�338]�C����B�x��r8r��339r��rrc	�h340�|jd|ddzz}	|jd|ddzz}341tjd��}|jddz|d<|jddz|d<tjd��}tj||��|d<tj||��|d<tjd��}
tj||��}tjd|z342d	|z��}tj|d343|���|
dd�<tjd��}tjtj||��tj	zdz��|d
<tjtj||��tj	zdz��|d<tjd��}tjd|z344d|z��|345z|d<tjd|z346d|z��|	z|d<||z|
z|z|z}|ddks6|ddks*|tjd��k�347��r?|rtj|||348|	fd���}n"tj||dd�|349|	fd���}t|��}|�r�td�|D����}tj|df��}|r�t|��}t!|��D]~\}}tjt|��df��}||dd�dd�f<||jz}|r|dd�dd�f|dd�dd�fzn
|dd�dd�f}t'||350|	��||<��n�tj|dzdf��}|dd�gd�f�|dzd��|dd�dd�f<||jz}|r|dd�dd�f|dd�dd�fzn
|dd�dd�f�|d��}|dd�gd�f}|dd�gd�f}tj|�d��|�d��|�d��|�d��f���d|��j}|dd�ddgf�d|351��|dd�ddgf<|dd�ddgf�d|	��|dd�ddgf<t3|dd�dd�fj|z|j|rdnd���}||}|||dd�dd�f<||fS)Nrr�r>r�)rr�)r>r�)r�r)r�r>g�������?r�)�angle�centerr�r�)rr>)r>rr�rt)�dsize�borderValuec3�>K�|]}|���V��dSr/)r�r�s  r6r7z%random_perspective.<locals>.<genexpr>.s*����5�5�q�1�5�5�7�7�5�5�5�5�5�5r8r")r>r�r�r"r>r"r�r�r?)rr�r"r=)r>r�r�rAr��{�G�z�?r�)�box1�box2�area_thr)rr��eyer�r�r��getRotationMatrix2D�math�tan�pir��warpPerspective�352warpAffiner^r�rrrhrnrr�r�r]rxr�box_candidates)rE�targetsrmr�r�r�r�r�r0�height�width�C�P�R�arF�Srn�Mr��use_segmentsrr��segment�xyr��ys                           r6r�r��s{��353�Y�q�\�F�1�I��M�
)�F��I�a�L�6�!�9�q�=�(�E�	��q�	�	�A��y��|�m�a��A�d�G��y��|�m�a��A�d�G�	��q�	�	�A��n�k�\�;�7�7�A�d�G��n�k�\�;�7�7�A�d�G�	��q�	�	�A����x��)�)�A���q�5�y�#��+�.�.�A��#�!�F�!�D�D�D�A�b�q�b�E�	��q�	�	�A��h�v�~�u�f�e�4�4�t�w�>��D�E�E�A�d�G��h�v�~�u�f�e�4�4�t�w�>��D�E�E�A�d�G�	��q�	�	�A��n�S�9�_�c�I�o�>�>��F�A�d�G��n�S�9�_�c�I�o�>�>��G�A�d�G�	354�A���	�A�
���A��q�	�Q���F�1�I��N�N��R�V�A�Y�Y��/C�/C�/E�/E�N��	a��%�c�1�U�F�O�Q`�a�a�a�C�C��.��a����e�E�6�?�P_�`�`�`�C�	�G���A�� !��5�5�H�5�5�5�5�5���h��1�v�����	<�(��2�2�H�'��1�1�
8�
8�355��7��W�c�'�l�l�A�.�/�/��#��1�1�1�b�q�b�5�	��!�#�X��/:�I�R����2�A�2��Y��A�A�A�q��s�F��+�+��1�1�1�b�q�b�5�	��%�R���7�7��A���
8���!�a�%���$�$�B�����#;�#;�#;� ;�<�D�D�Q��U�A�N�N�B�q�q�q�"�1�"�u�I��a�c��B�,7�F�"�Q�Q�Q����U�)�b����A�a�C��j�(�(�R����2�A�2��Y�O�O�PQ�ST�U�U�B��1�1�1�l�l�l�?�#�A��1�1�1�l�l�l�?�#�A��.�!�%�%��(�(�A�E�E�!�H�H�a�e�e�A�h�h����a���!I�J�J�R�R�ST�VW�X�X�Z�C�!����Q��F��^�0�0��E�:�:�C����A�q�6�	�N� ����Q��F��^�0�0��F�;�;�C����A�q�6�	�N�
�����1�Q�3��� 1�A� 5�C�E�T`�Lj�D�D�fj�k�k�k���!�*���a�&�����1�Q�3�����<�r8r��缉ؗ�Ҝ<c��|d|dz356|d|dz357}}|d|dz358|d|dz359}	}tj||	|zz|	||zz��}360||k|	|kz||	z||z|zz|kz|361|kzS)Nr�rr�r>)r��maximum)r�r��wh_thr�ar_thrr��eps�w1�h1�w2�h2r�s           r6r�r�Rs���
�!�W�t�A�w�
��Q��$�q�'� 1��B�
�!�W�t�A�w�
��Q��$�q�'� 1��B�	��B�"�s�(�O�R�2��8�_�	5�	5�B���K�B��K�(�B��G�r�B�w��}�,E��,P�Q�UW�Z`�U`�a�ar8c���|���}|d|d|d|df\}}}}|d|d|d|df\}}}}	tj||��tj||��z362�d��tj||	��tj||��z363�d��z}364||z365|	|z366zdz}|367|zS)Nrr>r�r�r�)r�r��minimumr�r)r�r��b1_x1�b1_y1�b1_x2�b1_y2�b2_x1�b2_y1�b2_x2�b2_y2�368inter_area�	box2_areas            r6r]r]Zs����>�>���D�"&�a��$�q�'�4��7�D��G�!C��E�5�%��!%�a��$�q�'�4��7�D��G�!C��E�5�%���*�U�E�*�*�R�Z��u�-E�-E�E�K�K�A�N�N��*�U�E�*�*�R�Z��u�-E�-E�E�K�K�A�N�N�O�J����5�5�=�1�E�9�I��	�!�!r8c��|jdd�\}}dgdzdgdzzdgdzzdgdzzd	gd369zz}|D�]H}tjdt||z����}tjdt||z����}t	dtjd|��|dzz370��}t	dtjd|��|dzz371��}	t|||z��}372t||	|z��}d�t
d
��D��||	|�||373�f<t|��rR|dkrLtj	||	|374|gtj375���}t||dd�dd�f��}
||
dk}��J|S)Nr�r�r>��?��?r"��?r?g�?r:rc�8�g|]}tjdd����S)�@�)r�r�)r4rs  r6r�zcutout.<locals>.<listcomp>~s$��&Q�&Q�&Q�1�v�~�b�#�'>�'>�&Q�&Q�&Qr8r�g���Q��?rMr�g333333�?)rr�r�r\rxr]r�r^r�rnr�r])r�r/rr�scalesrF�mask_h�mask_w�xmin�ymin�xmax�ymaxrdres              r6�cutoutr�ms����;�r��r�?�D�A�q��U�Q�Y�$��!��
#�u�g��k�
1�V�H�q�L�
@�G�9�r�>�
Q�F�
�(�(�����3�q�1�u�:�:�.�.�����3�q�1�u�:�:�.�.���1�f�n�Q��*�*�V�q�[�8�9�9���1�f�n�Q��*�*�V�q�[�8�9�9���1�d�V�m�$�$���1�d�V�m�$�$��'R�&Q��a���&Q�&Q�&Q��d�4�i��d��"�#��v�;�;�	(�1�t�8�8��(�D�$��d�3�2�:�F�F�F�C��3��q�q�q�!�A�#�v��/�/�C��C�$�J�'�F���Mr8c��|jdd�\}}dgdzdgdzzdgdzzdgdzzdgdzz}|D�] }tj��d	kr�tjd376t||z����}	tjd377t||z����}378t	dtjd|��|379dzz380��}t	dtjd|��|	dzz381��}t|||382z��}
t|||	z��}t
j|||
|gtj���}t|��rt||dd�d383d
�f��}nt
jd384��}|dk����r�t|���r�|
|dzk�r�||dzk�r�tjdt|��d385z386��}||j\}}}t||z387|z|
|z388|z��}t||z��}t||z��}|dk�r%|dk�rtj||||f��}tj||||f��}||||z�|||z�f}|dk}|�tj�����dkr�||||<t
j||||z||zgtj���}t|��r"t
j|||g|�gfd��}nt
j||g|�g��}|||||z�|||z�f<��"|S)Nr�g�?r�r"r�r�r�r=皙�����?r>rrMr�rVr�r��<)rr�r�r\rxr]r�rnr�r^r]r�r�r�r�rtr_r9r�)r�r/r�r�r�rrr�rFr�r�r�r�r�r�rdre�sel_ind�hs�ws�cs�r_scale�r_w�r_h�r_mask�r_image�	temp_crop�m_inds                            r6r�r��sn���;�r��r�?�D�A�q��V�a�Z�3�%�!�)�
#�t�f�q�j�
0�E�7�Q�;�
>�&��A��
M�F�
�/D�/D���=�?�?�S� � �����3�q�1�u�:�:�.�.�����3�q�1�u�:�:�.�.���1�f�n�Q��*�*�V�q�[�8�9�9���1�f�n�Q��*�*�V�q�[�8�9�9���1�d�V�m�$�$���1�d�V�m�$�$���h��d�D�$�/�r�z�B�B�B���v�;�;�	��3��q�q�q�!�A�#�v��/�/�C�C��(�1�+�+�C��$�J�����	D�#�m�"4�"4�	D�$��b��.�.�t�VZ�[]�V]�~�~��n�Q��M�(:�(:�1�(<�=�=�G�'�w�/�5�J�B��B��4��9�b�.�4��9�b�.�9�9�G��b��j�/�/�C��b��j�/�/�C��b���s�R�x�x���L��$9�C��:�F�F���*�]�7�%;�c�3�Z�H�H��!�$�t�C�x�-��d�3�h��">�?�	���389���<�<���)�)�-�-�/�/�"�4�4�'.�u�~�I�e�$��(�D�$��S��$�s�(�#C�2�:�V�V�V�C��6�{�{�L�!#���=��;Q�:X�TW�:X�9Y�0Z�\]�!^�!^���!#��M�'�,B�+I�S�+I�*J�!K�!K��:C�E�$�t�C�x�-��d�3�h��6�7���Mr8c��eZdZd�Zdd�ZdS)�Albumentationsc��d|_ddl}|�|�d���|�ddd���|�ddgd���|�d���|�d���|�d���|�	d	d�390��g|�391ddg�
�����|_dS)Nrr�)r�r�)�brightness_limit�contrast_limitr��P�x)�gamma_limitr��K)�
quality_lowerr��392pascal_voc�class_labels)r��label_fields)�bbox_params)�	transform�albumentations�Compose�CLAHE�RandomBrightnessContrast�RandomGamma�Blur�393MedianBlur�ToGray�ImageCompression�394BboxParams)r~�As  r6rxzAlbumentations.__init__�s������"�"�"�"����
�G�G�d�G�O�O�
�&�&��C�SW�&�X�X�
�M�M�r�3�i�4�M�8�8�
�F�F�T�F�N�N�
�L�L�4�L� � �
�H�H�t�H���
���R�4��8�8�$;����L��GW��X�X�#�Z�Z����r8rvc	�"�|jr�tj��|krn|�||dd�dd�f|dd�df���}|dtjd�t	|d|d��D����}}||fS)Nr>r)r��bboxesr�r�c��g|]395\}}|g|���Sr�r�)r4r�bs   r6r�z+Albumentations.__call__.<locals>.<listcomp>�s"��0m�0m�0m�T�Q��!��a��0m�0m�0mr8r�r�)r�r�r�rnrk)r~r'r/r�rs     r6�__call__zAlbumentations.__call__�s����>�	o�f�m�o�o��1�1��.�.�r�&����A�B�B��-�f�UV�UV�UV�XY�UY�l�.�[�[�C��W��r�x�0m�0m�S��^�I\�^a�bj�^k�El�El�0m�0m�0m�'n�'n��B��6�z�r8N)rv)r�r�r�rxr�r�r8r6r�r��s:������Z�Z�Z� �����r8r��./newc��tj�|��rtj|��tj|��dSr/)r0r1r��shutil�rmtree�makedirs)r1s r6�
create_folderr��s>��	�w�~�~�d�����
�d�����K������r8�../cococ	�"�t|dz��}t|��ttjt	t|����dzd�����D],}tj||t|��jz���-dS)N�_flatz/**/*.*Tr�)rr�r396r�r�r��copyfilerZ)r1�new_path�files   r6�flatten_recursiver�s����D�7�N�#�#�H��(�����T�Y�s�4��:�:����:�d�K�K�K�L�L�:�:�����h��d����8�9�9�9�9�:�:r8�../coco/c397��t|��}|dz���rtj|dz��ndt	|�d����}t
|��}t||���D�]�}|jdd�tv�r�tjt|����dddd�f}|j
dd�\}}ttt|��g��d��}t|������rt!|d	��5}t#jd398�|���������D��t"j���}	ddd��n#1swxYwYt/|	��D�]\}399}t1|d��}|dz|�z|j�d|j�d|400�d
�z}|j���s|j�d���|dd�||||gz}
|
dd�dzdz|
dd�<t9|
�dd��������t"j��}
t#j |
ddgd|��|
ddg<t#j |
ddgd|��|
ddg<tj!t|��||
d|
d�|
d|
d�f��s
Jd|�����������dS)N�401classifierr�r`r>.rJr�rr�c�6�g|]}|�����Sr�r�r�s  r6r�z!extract_boxes.<locals>.<listcomp>�s ��"T�"T�"T��1�7�7�9�9�"T�"T�"Tr8rMrz.jpgT)r[g333333�?r�r"zbox failure in )"rrer�r�rd�rglobr^r402�suffixr�r�r�r�rr8r�rr�rnr�r�r
r�rr\r�r>r}rr��ravelrtr�imwrite)r1r:r�r�r'rrr�r5�lbrcr�rr�s              r6�
extract_boxesr�sb����:�:�D�+/�,�+>�*F�*F�*H�*H�R�F�M�$��%�&�&�&�d������E�"�"�#�#�E��E�403�404�A���Q�'�'�'�`�`���>�!�"�"���,�,���C��L�L�)�)�#�t�t��t�)�4�B��8�B�Q�B�<�D�A�q��?�C��L�L�>�:�:�1�=�>�>�G��G�}�}�#�#�%�%�
`��'�3�'�'�h�1���"T�"T�a�f�f�h�h�n�n�6F�6F�6Q�6Q�6S�6S�"T�"T�"T�\^�\f�g�g�g�B�h�h�h�h�h�h�h�h�h�h�h����h�h�h�h�&�b�M�M�
`�
`�D�A�q��A�a�D�	�	�A���,�1��6�D�I�9^�9^���9^�9^�WX�9^�9^�9^�^�A��8�?�?�,�,�5�����t��4�4�4��!�"�"���A�q�!��,�A��a�b�b�E�C�K�!�O�A�a�b�b�E�!�!�)�)�B��"2�"2�3�3�9�9�;�;�B�B�2�6�J�J�A� "���1�a�&�	�1�a� 8� 8�A�q�!�f�I� "���1�a�&�	�1�a� 8� 8�A�q�!�f�I��;�s�1�v�v�r�!�A�$�q��t�)�Q�q�T�!�A�$�Y�2F�/G�H�H�_�_�J_�\]�J_�J_�_�_�H�_��3`�`s�<A!F)�)F-	�0F-	�g�������?r�rIc���t����t�fd�tD��g��}t|��}t	jgd�||���}gd�}�fd�|D��t
d���d|zz��tt||��|���D]�\}}|rBttt|��g��d	�����rVt�||zd405��5}	|	�
t|��dz��ddd��n#1swxYwY��dS)
aP Autosplit a dataset into train/val/test splits and save path/autosplit_*.txt files406    Usage: from utils.datasets import *; autosplit('../coco')407    Arguments408        path:           Path to images directory409        weights:        Train, val, test weights (list)410        annotated_only: Only use images with an annotated txt file411    c�Z��g|]'}t��d|��������(S)z*.)rdr412)r4�img_extr1s  �r6r�zautosplit.<locals>.<listcomp>s3���M�M�M�g��d�j�j��g���0�0�1�1�M�M�Mr8)rr>r�)�weightsr$)zautosplit_train.txtzautosplit_val.txtzautosplit_test.txtc�l��g|]0}�|z�����|z�����1Sr�)r��unlink)r4r�r1s  �r6r�zautosplit.<locals>.<listcomp>s>���=�=�=�Q�$��(�):�):�)<�)<�=�d�Q�h�����=�=�=r8zAutosplitting images from z!, using *.txt labeled images onlyr`rr��413N)rr9r�r^r�r1r�r414rkr8r�r�r�write)415r1r�annotated_onlyr:r�rvr1r�rEr5s416`         r6�	autosplitr
s������:�:�D��M�M�M�M��M�M�M�r�R�R�E��E�417�418�A��n�Y�Y�Y��1�=�=�=�G�419L�420L�421L�C�=�=�=�=�#�=�=�=�=�	�422-�t�423-�424-�0S�Vd�0d�425d�e�e�e��s�7�E�*�*�!�4�4�4�)�)���3��	)��o�s�3�x�x�j�&A�&A�!�&D�!E�!E�!L�!L�!N�!N�	)��d�S��V�m�S�)�)�
)�Q�����C���4��(�(�(�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)�
)����
)�
)�
)�
)��)�)s�&D7�7D;	�>D;	c�<�d|j|z}|j|S)Nz/work/handsomejw66/coco17/)rP�segs)r~r%�keys   r6�load_segmentationsr$s!��426&����)>�427>�C��9�S�>�r8)NFFrIFrJr>r?FFrK)r�r�r�)TF)r�)rsrtTFTr�)r�r�r�r�r�r�rIr�)r�r�r�r�)r�)r�)r)r�rF)ar�r�r�r0r�r�r#�	itertoolsr�multiprocessing.poolr�pathlibr�	threadingrr��numpyr�r`�torch.nn.functional�nn�428functionalr��PILrr�torch.utils.datar	r429�pickler,r�torchvision.utilsr�torchvision.opsr
rrr�
utils.generalrrrrrrrrr�utils.torch_utilsrrgr�r��	getLoggerr��logger�TAGSrqrDr;rHrsrarbrrrerfryr{r�r�r�r8r[r^r�rr�r�r�r,rjrTrrr�r�r�r]r�r�r�r�rrrrr�r8r6�<module>r1s���������������	�	�	�	�
�
�
�
�
�
�
�
�����������+�+�+�+�+�+�������������430�431�432�433��������������������������$�$�$�$�$�$�������
�
�
�
�������(�(�(�(�(�(�J�J�J�J�J�J�J�J�J�J�J�J�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�!�:�:�:�:�:�:�J��P�P�P��G�G�G��	��	�8�	$�	$���=�%�%�'�'���K��}�[�!�]�2�2�
��3�G�G�G�434
�
�
�qv�`b�����:&�&�&�&�&���)�4�?�&�&�&�&*�*�*�*�*�V�*�*�*�M�M�M�M�M�M�M�M�`7�7�7�7�7�7�7�7�tN�N�N�N�N�N�N�N�b]�]�]�uJ�uJ�uJ�uJ�uJ�'�uJ�uJ�uJ�r	I�I�I�"6�6�6�6�N�N�N�N�8�8�8�vI�I�I�X06�06�06�f!�!�!�!�0%�%�%�"6�6�6�6�@���" � � � �Bps�$�V�V�V�V�rb�b�b�b�"�"�"�&���87�7�7�r��������2����:�:�:�:� `� `� `� `�F)�)�)�)�.����r8