
    khf                     @   d Z ddlmZ ddlmZ d Z edddd      Z edi d	 ed	d
dddddd ed      d
      d edddddddd ed      d
      d edddddddd ed      d
      d  ed d!d"d#d$ddd ed      d
      d% ed%d&d'd(d)d ed      d*      d+ ed+d,d-d.d)d ed      d*      d/ ed/d0dd1ddg d2dd3d3dd4 ed      d56      d7 ed7d8d'd9d)dg d2dd3d3dd4 ed      d:6      d; ed;d<dddddd=dd ed      d>?      d@ edi dAd@dBdCdDddEg d2dFddGddHddIddJdKdLdMdNd3dOd3dPddQddRd4dS ed      dTdUdV edVdWdg d2dddddKddd4 ed      dX      dY edYdWdg d2dddddKdZddd4 ed      d[\      d] ed]d^dg d2dddddKddd4 ed      d_d`      da edi dAdadBd^dDddEg d2dFdbdGddHddIddcdddJdKdLdedNd3dOd3dPddQddRd4dS ed      dfd_dTdgdh edhdidg d2dddddd4 ed      dj      dk edkdldg d2dddddd4 ed      dj      dm edmdndog d2dpdddddd4 edq      dr      ds edsdtdg d2dudddddd4 ed      dr      dv edvdwdg d2dddddxdd4 ed      dr      dy edyd
ddddddddd4 ed      dz{      d| ed|ddddddddd3d3dd4 ed      d}~      d eddddddddddd4 ed      d{      d edd
dg d2dddddd4 edd      dj      d edddg d2ddddd=dd4d ed      d      d edddg d2dbdddd=dd4d ed      d      d edddodddddd4 ed      d      d edddddd ed      d*      d edddddd ed      d*      d edddddd ed      d*      d eddd"d#d$d ed      d*      d eddd'd(d)d ed      d*      d eddd-d.d)d ed      d*      d eddd-dddd ed      d	      d edddddddd ed      d
      d eddddddddd ed      d      d eddddddddd ed      d      d eddddddddd ed      d      d eddddddddd ed      d      d eddd"d#d$dddd ed      d      d eddd'd(d)dddd ed      d      d eddd-d.d)dddd ed      d      d edddddddd ed      dedTdid eddddodddd ed      dedTdid edddddddd ed      dedTdid eddddd#d$d ed      d͜edTdid eddddddd$d ed      dedTdid eddddd(d)d ed      d͜edTdiZddՄZ	y)zEfficientDet Configurations

Adapted from official impl at https://github.com/google/automl/tree/master/efficientdet

TODO use a different config system (OmegaConfig -> Hydra?), separate model from train specific hparams
    )	OmegaConf)deepcopyc                     t        j                         } d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _	        | j                  | j                  z
  dz   | _
        d| _        g d	| _        d
| _        d| _        d| _        d| _        t#        dd      | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _         d| _!        d| _"        d| _#        d| _$        d| _%        d| _&        d| _'        d| _(        d| _)        d| _*        | S )z$Returns a default detection configs.tf_efficientdet_d1tf_efficientnet_b1N  r	   Z            ))      ?r   )ffffff?ffffff?)r   r         @sameswishgMbP?g{Gz?)epsmomentumX   TFmaxnearest        g      ?g      ?皙?g      I@i  d   )+r   createnamebackbone_namebackbone_argsbackbone_indices
image_sizenum_classes	min_level	max_level
num_levels
num_scalesaspect_ratiosanchor_scalepad_typeact_type
norm_layerdictnorm_kwargsbox_class_repeatsfpn_cell_repeatsfpn_channelsseparable_convapply_resample_bnconv_bn_relu_patterndownsample_typeupsample_typeredundant_biashead_bn_level_firsthead_act_typefpn_name
fpn_configfpn_drop_path_ratealphagammalabel_smoothinglegacy_focaljit_lossdeltabox_loss_weightsoft_nmsmax_detection_pointsmax_det_per_image)hs    V/var/www/teggl/fontify/venv/lib/python3.12/site-packages/effdet/config/model_config.pydefault_detection_model_configsrH      sf   A "AF*AOAOA AL AM AKAK;;,q0ALAL:AO AN AJAJALTC0AMAAANAA"AAAOA!AAOAJALA AGAGAANAJ AGA AJ!AAH    	bifpn_sum)      ?rK   rK   relu6)r9   meanstdr*   efficientdet_d0efficientnet_b0)   rQ   @   r    Fr   )drop_path_ratezehttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdet_d0-f3276ba8.pth)
r   r   r!   r0   r/   r.   r)   r6   r   urlefficientdet_d1efficientnet_b1r   r      g?zehttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdet_d1-bb7e98fe.pthefficientdet_d2efficientnet_b2)   r[   p      efficientdet_d3efficientnet_b3)  r`         efficientdet_d4efficientnet_b4)   re      r   )r   r   r!   r0   r/   r.   r   rU   efficientdet_d5efficientnet_b5)   ri   i   efficientdetv2_dtefficientnetv2_rw_t   )r   g       @rK   bilinearTznhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdetv2_rw_dt_agc-ad8b8c96.pth)r   r   r!   r0   r/   r.   r'   r)   r4   r5   r6   r7   r   rU   efficientdetv2_dsefficientnetv2_rw_s   znhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientnetv2_rw_ds_agc-cf589293.pthresdet50resnet50reluzbhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/resdet50_416-08676892.pth)r   r   r!   r0   r/   r.   r)   r*   r6   r1   r   rU   cspresdet50r   r   cspresnet50r!   r'   r0   r/   r.   r)   r*   
leaky_relur8   silur4   r5   r6   r1   r7   r   rU   zbhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/cspresdet50b-386da277.pthcspresdext50cspresnext50)r   r   r!   r'   r0   r/   r.   r)   r*   r6   r1   r7   r   rU   cspresdext50panpan_fazehttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/cspresdext50pan-92fdd094.pth)r   r   r!   r'   r0   r/   r.   r)   r*   r9   r6   r1   r7   r   rU   cspdarkdet53cspdarknet53)r   rX   r]   )r   r   r!   r'   r0   r/   r.   r)   r*   r6   r1   r7   r   r    rU   cspdarkdet53m`   r9   qufpn_famishr    zchttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/cspdarkdet53m-79062b2d.pthmixdet_mmixnet_m)r   r   r!   r'   r0   r/   r.   r)   r6   r7   r   rU   mixdet_lmixnet_lmobiledetv2_110dmobilenetv2_110d)  r   0   g?)r   r   r!   r'   r0   r/   r.   r)   r*   r6   r7   r   rU   mobiledetv2_120dmobilenetv2_120d8   mobiledetv3_largemobilenetv3_large_100
hard_swishefficientdet_q0zehttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdet_q0-bdf1bdb5.pth)r   r   r!   r0   r/   r.   r)   r9   r6   r7   r   rU   efficientdet_q1zfhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdet_q1b-d0612140.pth)r   r   r!   r0   r/   r.   r)   r9   r4   r5   r6   r7   r   rU   efficientdet_q2zehttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/efficientdet_q2-0f7564e5.pthefficientdet_w0P   	depthwise)rT   feature_locationefficientdet_esefficientnet_esH   )r   r   r!   r'   r0   r/   r.   r)   r*   r6   r7   r1   r   rU   efficientdet_emefficientnet_emefficientdet_lite0efficientnet_lite0)r   r   r!   r0   r/   r.   r*   r6   r7   r   rU   tf_efficientdet_d0tf_efficientnet_b0zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d0_34-f153e0cf.pthr   r   zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d1_40-a30f94af.pthtf_efficientdet_d2tf_efficientnet_b2zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d2_43-8107aa99.pthtf_efficientdet_d3tf_efficientnet_b3zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d3_47-0b525f35.pthtf_efficientdet_d4tf_efficientnet_b4zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d4_49-f56376d9.pthtf_efficientdet_d5tf_efficientnet_b5zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d5_51-c79f9be6.pthtf_efficientdet_d6tf_efficientnet_b6r      zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d6_52-4eda3773.pth)	r   r   r!   r0   r/   r.   r9   r   rU   tf_efficientdet_d7)   r   g      @zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d7_53-6d1d7a95.pth)
r   r   r!   r0   r/   r.   r(   r9   r   rU   tf_efficientdet_d7xtf_efficientnet_b7r   zihttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d7x-f390b87c.pth)r   r   r!   r0   r/   r.   r(   r$   r9   r   rU   tf_efficientdet_d0_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d0_ap-d0cdbd0a.pth)r   r   r!   r0   r/   r.   rM   rN   
fill_colorr   rU   tf_efficientdet_d1_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d1_ap-7721d075.pthtf_efficientdet_d2_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d2_ap-a2995c19.pthtf_efficientdet_d3_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d3_ap-e4a2feab.pthtf_efficientdet_d4_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d4_ap-f601a5fc.pthtf_efficientdet_d5_apzkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_d5_ap-3673ae5d.pthtf_efficientdet_lite0tf_efficientnet_lite0)@  r   g      @r   )r   r   r!   r(   r0   r/   r.   r   zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite0-dfacfc78.pthtf_efficientdet_lite1tf_efficientnet_lite1zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite1-6dc7ab30.pthtf_efficientdet_lite2tf_efficientnet_lite2)  r   zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite2-86c5d55b.pthtf_efficientdet_lite3tf_efficientnet_lite3)r   r   r!   r0   r/   r.   r   zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite3-506852cb.pthtf_efficientdet_lite3x   zlhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite3x-8404c57b.pthtf_efficientdet_lite4tf_efficientnet_lite4zkhttps://github.com/rwightman/efficientdet-pytorch/releases/download/v0.1/tf_efficientdet_lite4-391ddabc.pthc                     t               }|j                  t        |           |j                  |j                  z
  dz   |_        t        |      }|S )z<Get the default config for EfficientDet based on model name.r   )rH   updateefficientdet_model_param_dictr$   r#   r%   r   )
model_namerF   s     rG   get_efficientdet_configr     sC    ')AHH*:67;;,q0ALAHrI   N )r   )
__doc__	omegaconfr   copyr   rH   r,   tf_efficientdet_lite_commonr   r   r   rI   rG   <module>r      s#     AH #		  !% A
!'#.sA
! '#.sA
!4 '#.5A
!L '#.MA
!d '#.	eA
!x '#.	yA
!N  +%"  #.|OA
!p  +%"  #.|qA
!X  #.pYA
!t  #  &	
       # !   !  #.!" q#uA
!Z $% #.[A
!z $% #.s{A
!\ $% #."]A
!~  $  &	
        # !    !!" #.#$ #%& r'A
!h  % #.iA
!D  % #.EA
!` (% $/aA
!~ (% #.A
!\  -% #.]A
!z ' #.s{A
!V	 '"  #.tW	A
!v	 ' #.sw	A
!R
 '% (* S
A
!r
 '% #.s
A
!R '% #.SA
!r !* #.sA
!P !*#.y	QA
!d !*#.y	eA
!x !*#.y	yA
!L !*#.y	MA
!` !*#.y	aA
!t !*#.y	uA
!H !*#.y
IA
!^ !*#.y_A
!v "*#.wwA
!V $*#.yWA
!p $*#.yqA
!J $*#.yKA
!d $*#.yeA
!~ $*#.yA
!X $*#.yYA
!v  $-"- & zwA
!N  $-#. & zOA
!f  $-#. & zgA
!~  
$-#.
 &
 z
A
!T   %-#. & {UA
!l  
$-#.
 &
 z
mA
! HrI   