
    kh                     J    d Z ddlZddlmZ ddlmZ ddlmZ  G d de      Z	y)	z3 COCO dataset parser

Copyright 2020 Ross Wightman
    N)COCO   )Parser)CocoParserCfgc                   6     e Zd Zdef fdZd Zd Zd Z xZS )
CocoParsercfgc                    t         |   |j                  |j                  |j                  |j
                  |j                  xr |j                  |j                         d| _        d | _	        | j                  |j                         y )N)	bbox_yxyx
has_labelsinclude_masksinclude_bboxes_ignoreignore_empty_gtmin_img_sizeT)super__init__r   r   r   r   r   r   cat_ids_as_labelscoco_load_annotationsann_filename)selfr	   	__class__s     [/var/www/teggl/fontify/venv/lib/python3.12/site-packages/effdet/data/parsers/parser_coco.pyr   zCocoParser.__init__   su    mm~~++"%";";NNBs/B/B)) 	 	
 "&	s//0    c                 B    | j                   |   }| j                  |      S )N)img_ids_parse_img_ann)r   idximg_ids      r   get_ann_infozCocoParser.get_ann_info   s!    c"""6**r   c                    | j                   J t        |      | _         | j                   j                         | _        | j                   j	                  | j                        D cg c]  }|d   	 c}| _        | j                  s;t        | j                        D ci c]  \  }}||| j                  z    c}}| _	        t        d | j                   j                  j                         D              }t        | j                   j                  j                               D ]  }| j                   j!                  |g      d   }t#        |d   |d         | j$                  k  s| j&                  r ||vr| j(                  j+                  |       m| j,                  j+                  |       | j.                  j+                  |        y c c}w c c}}w )N)idsnamec              3   &   K   | ]	  }|d      yw)image_idN ).0_s     r   	<genexpr>z/CocoParser._load_annotations.<locals>.<genexpr>%   s     Nq}Ns   r   widthheight)r   r   	getCatIdscat_idsloadCats	cat_namesr   	enumeratelabel_offsetcat_id_to_labelsetannsvaluessortedimgskeysloadImgsminr   r   img_ids_invalidappendr   	img_infos)r   ann_filecicat_idimg_ids_with_annr   infos           r   r   zCocoParser._load_annotations   sm   yy   N	yy**,-1YY-?-?DLL-?-QR!F)R%%S\]a]i]iSj#kiaFA0A0A,A$A#kD Ndiinn6K6K6MNNTYY^^0023 	(F99%%vh/2DDM4>2T5F5FF))f<L.L$$++F3LL'NN!!$'	(	 S#ks   &GGc                 t   | j                   j                  |g      }| j                   j                  |      }g }g }g }t        |      D ]  \  }}|j	                  dd      r|d   \  }	}
}}| j
                  r	|d   dk  r8|dk  s|dk  rC| j                  r|
|	|
|z   |	|z   g}n|	|
|	|z   |
|z   g}|j	                  dd      r| j                  s|j                  |       |j                  |       |j                  | j                  r| j                  |d	      n|d	           |rLt        j                  |d
t        j                        }t        j                  |t        j                        }nJt        j                  dt        j                        }t        j                  g t        j                        }| j                  rN|r't        j                  |d
t        j                        }n%t        j                  dt        j                        }t        ||      }| j                  r||d<   |S )N)imgIdsignoreFbboxarear   r   iscrowdcategory_id   )ndmindtype)rM   )r      )rG   clsbbox_ignore)r   	getAnnIdsloadAnnsr0   getr   yxyxr   r<   r2   nparrayfloat32int64zerosdict)r   r   ann_idsann_infobboxesbboxes_ignorerO   r@   annx1y1whrG   s                 r   r   zCocoParser._parse_img_ann/   s   ))%%fX%699%%g.) 	uFAswwx'v;LBAq!!c&kQ&61uAyyBQQ/BQQ/wwy%(--!((.d#

tG[G[4//M0BCaderast'	u* XXfARZZ@F((3bhh/CXXfBJJ7F((2RXX.C%% "arzz R "rzz BC(%%!.C
r   )	__name__
__module____qualname__r   r   r    r   r   __classcell__)r   s   @r   r   r      s    1M 1+(".r   r   )
__doc__numpyrU   pycocotools.cocor   parserr   parser_configr   r   r&   r   r   <module>rm      s&     !  (R Rr   