Team Ai
Apppublic

Adamfan/objectdetection

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

2/e:h���X�ddlZddlZddlZddlmZddlmZddlmZd�Z	dd�Z3dd
�ZdS)�N)�kmeans)�tqdm)�colorstrc��|j�d���d��}|d|dz4}|jd|jdz5}|���|���krYtd��|j�d��|jdd�<|j�d��|jdd�<dSdS)N�����rzReversing anchor order)�anchor_grid�prod�view�stride�sign�print�anchors�flip)�m�a�da�dss    �E/content/drive/MyDrive/demo_yolov7_torch26/yolov7/utils/autoanchor.py�check_anchor_orderrs���	�
���2���#�#�B�'�'�A�	6�2���1���B�	7��"������	#�B�	�w�w�y�y�B�G�G�I�I���
�&�'�'�'��y�~�~�a�(�(��	�!�!�!���=�-�-�a�0�0��
�a�a�a�������@�c	�>���td��}td|�d�d���t|d��r|jjdn|jd}||jz|j�dd	�8��z}tj�	dd|j9d
df���}tjtj
d�t||z|j��D������������fd�}|j�������dd��}	||	��\}10}td|d�d|11d��d���|12dk�r�td��|j���dz}	t-|||�dd���}	n+#t.$r}
t|�d|
����Yd}
~
nd}
~
wwxYw||	��d
}||13k�rtj|	|jj����|j��}	|	����|j��|jdd�<t9|��|	����|j��|j�|jj���ddd��z|jdd�<t|�d���nt|�d���td��dS)N�autoanchor: �14zAnalyzing anchors... ���end�moduler�T��keepdims��������?g�������?r)�sizec�6�g|]\}}|dd�dd�f|z��S�N�����.0�s�ls   r�15<listcomp>z!check_anchors.<locals>.<listcomp>s0��%d�%d�%d���1�a����1�Q�3��i�!�m�%d�%d�%drc����dd�df|dz}tj|d|z���d��d}|�d��d}|d�zk����d�����}|d�zk������}||fS�N��?�rr )�torch�min�max�float�sum�mean)�k�r�x�best�aat�bpr�thr�whs      ��r�metriczcheck_anchors.<locals>.metric s�����q�q�q�$�w�K�!�D�'�!���I�a��a�� � �$�$�Q�'�'��*���u�u�Q�x�x��{���2��8�|�"�"�$�$�(�(��+�+�0�0�2�2���b�3�h��%�%�'�'�,�,�.�.���C�x�rr2zanchors/target = �.2fz, Best Possible Recall (BPR) = �.4fg\���(\�?z/. Attempting to improve anchors, please wait...��F)�n�img_sizer?�gen�verbosezERROR: )�devicezSNew anchors saved to model. Update model *.yaml to use these anchors in the future.zKOriginal anchors better than new anchors. Proceeding with original anchors.)rr
�hasattrr�model�shapesr5�np�random�uniform�shaper3�tensor�concatenate�zip�labelsr6r�clone�cpur16�numel�
kmean_anchors�	ExceptionrrI�type_as�view_asrr�to)�datasetrKr?�imgsz�prefixrrL�scalerArr>r=�na�e�new_bprr@s  `            @r�
check_anchorsrds"����
�n�
%�
%�F�	�17,�v�18,�19,�20,�"�5�5�5�5�")�%��":�":�O����2�����B��A�
�W�^�
#�g�n�&8�&8��T�&8�&J�&J�
J�F��I���c�3�f�l�1�o�q�-A��B�B�E�	��b�n�%d�%d��F�U�N�T[�Tb�@c�@c�%d�%d�%d�e�e�	f�	f�	l�	l�	n�	n�B��������m�!�!�#�#�'�'�)�)�.�.�r�1�5�5�G��v�g���H�C��	�21O�c�22O�23O�24O�c�25O�26O�27O�UW�X�X�X�X�28�T�z�z�
�?�@�@�@�
�]�
 �
 �
"�
"�a�
'��	)�#�G�r�E�s�PT�^c�d�d�d�G�G���	)�	)�	)��V�'�'�A�'�'�(�(�(�(�(�(�(�(�����	)�����&��/�/�!�$���S�=�=��l�7�1�9�3C�D�D�D�L�L�Q�Y�W�W�G�&�}�}���6�6�q�}�E�E�A�M�!�!�!���q�!�!�!�"�=�=�?�?�2�2�1�9�=�=�����A�I�L\�@]�@]�@b�@b�ce�gh�jk�@l�@l�l�A�I�a�a�a�L��V�p�p�p�q�q�q�q��V�h�h�h�i�i�i�	�"�I�I�I�I�Is�#F9�929G!�G�G!�./data/coco.yaml�	rDTc30�\��������d�z�td���d�����fd�}������fd�}t|t��rbt|��5}t	j|tj���}	ddd��n#1swxYwYdd	lm}31|32|	d33dd���}n|}�|j	z|j	�34d
d���z}tjd�t||j��D������dk�d
�����}
|
r%t#��d|
�dt%����d�����dk�d
���t#��d��dt%����d�����d��}t)�|z�d���\}}t%|���ks,Jt#��d��dt%|���������||z}t+j�t*j����t+j�t*j����||��}tj}||��|jddf\}}}}t5t7|����d�� ��}|D�]}tj|��}|d
k���rk|�|��|k|���z|j|�z|zd
z�d!d��}|d
k����k|� ��|z�d�"��}||��}||kr0||� ��}}��d#|d$��|_!|r||����||��S)%aD Creates kmeans-evolved anchors from training dataset35 36        Arguments:37            path: path to dataset *.yaml, or a loaded dataset38            n: number of anchors39            img_size: image size used for training40            thr: anchor-label wh ratio threshold hyperparameter hyp['anchor_t'] used for training, default=4.041            gen: generations to evolve anchors using genetic algorithm42            verbose: print all results43 44        Return:45            k: kmeans evolved anchors46 47        Usage:48            from utils.autoanchor import *; _ = kmean_anchors()49    r1rc���|dd�df|dz}tj|d|z���d��d}||�d��dfSr0)r3r4r5)r9r@r:r;s    rrAzkmean_anchors.<locals>.metricRs\���q�q�q�$�w�K�!�D�'�!���I�a��a�� � �$�$�Q�'�'��*���!�%�%��(�(�1�+�~�rc����tj|tj������\}}||�k���z���S)N��dtype)r3rQ�float32r6r8)r9�_r<rAr?r@s   ���r�anchor_fitnessz%kmean_anchors.<locals>.anchor_fitnessXsP����&���a�u�}�=�=�=�r�B�B���4���s�50�)�)�+�+�+�1�1�3�3�3rc���|tj|�d����}�|���\}}|�51k������|�52k�������z}}t�	�d�53d�d|d�d|d�d���t�	�d��d	��d54|���d�d|���d�d
||�55k���d�d�d���t
|��D]Y\}}tdt|d��t|d��fz|t|��dz56krdnd����Z|S)Nr zthr=rBz: rCz best possible recall, z anchors past thrzn=z, img_size=z
, metric_all=z.3f�/z-mean/best, past_thr=z-mean: rrz%i,%irz,  r)	rM�argsortr	r6r8r
�	enumerate�round�len)r9r;r<r>r=�irFrArEr_r?�wh0s      ������r�
print_resultsz$kmean_anchors.<locals>.print_results\s����
�b�j�������#�#�$���&��C�.�.���4��3�J�%�%�'�'�,�,�.�.��S����0A�0A�0F�0F�0H�0H�1�0L�S��
��b�b�S�b�b�b��b�b�b��b�b�b�b�c�c�c�
��9�9�1�9�9��9�9������l�9�9�t�y�y�{�{�l�9�9��A��G�*�/�/�+�+�8�9�9�9�>@�	B�	B�	B�	B��a�L�L�	_�	_�D�A�q��'�U�1�Q�4�[�[�%��!��+�+�6�6�Q��Q���RS��^�^�E�E�Y]�^�^�^�^�^��r)�LoaderNr)�LoadImagesAndLabels�trainT)�augment�rectr r!c�6�g|]\}}|dd�dd�f|z��Sr&r)r*s   rr.z!kmean_anchors.<locals>.<listcomp>qs0��P�P�P�D�A�q�!�A�A�A�q��s�F�)�a�-�P�P�Prg@z(WARNING: Extremely small objects found. z of z labels are < 3 pixels in size.g@zRunning kmeans for z anchors on z57 points...�)�iterz)ERROR: scipy.cluster.vq.kmeans requested z points but returned only rjr#g�������?z(Evolving anchors with Genetic Algorithm:)�descg333333�?)r4z3Evolving anchors with Genetic Algorithm: fitness = rC)"r�58isinstance�str�open�yaml�load�59SafeLoader�utils.datasetsryrLr5rMrRrSrT�anyr7r
rt�stdrr3rQrlrNrPr�range�ones�all�randn�clip�copyr�)�pathrErFr?rGrHrnrw�f�	data_dictryr]rLrur,r9�dist�npr�sh�mp�pbarrm�v�kg�fgrAr_r@rvs ```                     @@@@rrXrX>sT���������"
�s�(�C�
�n�
%�
%�F����4�4�4�4�4�4�4�	�	�	�	�	�	�	�	�	�	��$�����
�$�Z�Z�	=�1��	�!�D�O�<�<�<�I�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�6�6�6�6�6�6�%�%�i��&8�$�T�R�R�R��������
&���);�);�A��);�)M�)M�
M�F�60�.�P�P�C����4O�4O�P�P�P�61Q�62Q�C�63
�s��������� � �A��s�
��q�q��q�q��C���q�q�q�r�r�r�	�c�S�j�
�
�a�
 �
 �	!�B�64�V�65J�66J��67J�68J�s�2�w�w�69J�70J�71J�K�K�K�72���q�	�	�A��R�!�V�Q�R�(�(�(�G�A�t��q�6�6�Q�;�;�;���w�w�RS�w�w�or�st�ou�ou�w�w�x�x�;�;�;���F�A�	��b��
�	.�	.�	.�B�73�,�s�%�-�740�750�760�C��
�a���A�
�)�C�!�>�!�$�$�a�g�s�C�7�L�A�r�2�q���c�77�78�F�!T�!T�!T�U�U�U�D�
�79!�80!���G�B�K�K���A�v�l�l�n�n�	_��*�*�R�.�.�2�%������5�	��	�2��F��J�Q�N�T�T�UX�Z]�^�^�A��A�v�l�l�n�n�	_��f�f�h�h��l�
 �
 �S�
 �
)�
)��
�^�B�
�
��
��6�6��r�w�w�y�y�q�A�!�]�]�VW�]�]�]�D�I��
!��
�a� � � ���=����s�!B�B�B)rr)rerfrrrDT)�numpyrMr3r��scipy.cluster.vqrr�
utils.generalrrrdrXr)rr�<module>r�s���������������#�#�#�#�#�#�������"�"�"�"�"�"�1�1�1�$�$�$�$�Nb�b�b�b�b�br