o •üe¡0ã@s®ddlmZdeddfdd„Zdeddfdd„Zdeddfd d „Zdefd d „Zdeddfd d„Zdeddfdd„Zdeddfdd„Z deddfdd„Z deddfdd„Z dS)é)ÚCfgNodeÚcfgÚreturnNcCs2|}tdd|j_tdd|j_tdd|j_dS)zy Add config for additional category-related dataset options - category whitelisting - category mapping T©Ú new_allowedN)ÚCNÚDATASETSÚ CATEGORY_MAPSÚWHITELISTED_CATEGORIESÚCLASS_TO_MESH_NAME_MAPPING©rÚ_C©rúD/home/jovyan/fileviewer/workspace/yisol/IDM-VTON/densepose/config.pyÚadd_dataset_category_configsrcCs@|}tƒ|_d|j_d|j_d|j_d|j_d|j_g|j_dS)NÚiouÚnonegà?TF)rÚDENSEPOSE_EVALUATIONÚTYPEZSTORAGEZMIN_IOU_THRESHOLDÚDISTRIBUTED_INFERENCEZEVALUATE_MESH_ALIGNMENTZMESH_ALIGNMENT_MESH_NAMESr rrrÚadd_evaluation_configs  rcCs&|}g|_tƒ|_d|j_d|j_dS)Ú ÚÚcudaN)ÚBOOTSTRAP_DATASETSrZBOOTSTRAP_MODELÚWEIGHTSÚDEVICEr rrrÚadd_bootstrap_config2s  rcCs tƒ}d|_d|_tdd|_d|j_d|j_d|j_g|j_d|j_tdd|j_ tƒ|_ d|j _ d|j _ tdd|_ d|j _d|j _tdd|_d|j_|S) Nrgš™™™™™¹?Tréi@BéF)rÚDATASETÚRATIOÚ IMAGE_LOADERrÚ BATCH_SIZEÚ NUM_WORKERSÚ CATEGORIESÚMAX_COUNT_PER_CATEGORYÚCATEGORY_TO_CLASS_MAPPINGÚ INFERENCEÚINPUT_BATCH_SIZEÚOUTPUT_BATCH_SIZEÚ DATA_SAMPLERÚUSE_GROUND_TRUTH_CATEGORIESÚFILTER)r rrrÚget_bootstrap_dataset_config;s&   r.cCsF|jsdSg}|jD]}tƒ ¡}| t|ƒ¡| |¡q ||_dS)z÷ Bootstrap datasets are given as a list of `dict` that are not automatically converted into CfgNode. This method processes all bootstrap dataset entries and ensures that they are in CfgNode format and comply with the specification N)rr.ÚcloneÚmerge_from_other_cfgrÚappend)rZbootstrap_datasets_cfgnodesÚ dataset_cfgr rrrÚload_bootstrap_configXs    r3cCs<|}tƒ|jj_d|jjj_tdd|jjj_d|jjj_d|jjj_d|jjj_d|jjj_ d|jjj_ d|jjj_ tdd iƒ|jjj_ d |jjjj _ d |jjjj _d |jjjj _d |jjjj _tdd iƒ|jjj_d|jjjj_ d |jjjj_d |jjjj_d|jjjj_d|jjjj_d |jjjj_d |jjjj_dS)zK Add configuration options for Continuous Surface Embeddings (CSE) éTrç{®Gáz„?g333333ã?Z EmbeddingLossçð?ÚENABLEDFgš™™™™™™?rgš™™™™™©?iHg-Cëâ6?édç@N)rÚMODELÚROI_DENSEPOSE_HEADZCSEZ EMBED_SIZEZ EMBEDDERSZEMBEDDING_DIST_GAUSS_SIGMAZGEODESIC_DIST_GAUSS_SIGMAZEMBED_LOSS_WEIGHTZEMBED_LOSS_NAMEZFEATURES_LR_FACTORZEMBEDDING_LR_FACTORZSHAPE_TO_SHAPE_CYCLE_LOSSZWEIGHTZNORM_PZ TEMPERATUREZMAX_NUM_VERTICESZPIX_TO_SHAPE_CYCLE_LOSSZUSE_ALL_MESHES_NOT_GT_ONLYZNUM_PIXELS_TO_SAMPLEZ PIXEL_SIGMAZTEMPERATURE_PIXEL_TO_VERTEXZTEMPERATURE_VERTEX_TO_PIXELr rrrÚadd_densepose_head_cse_configis.        r<cCs’|}d|j_tƒ|j_d|jj_d|jj_d|jj_d|jj_d|jj_d|jj_ d|jj_ d |jj_ d |jj_ d |jj_ d|jj_d|jj_d |jj_d |jj_d|jj_d|jj_d|jj_d|jj_d|jj_d|jj_d|jj_d|jj_tƒ|jj_d|jjj_d|jjj_d|jj_d|jj_tddiƒ|jj_d|jjj_ tddiƒ|jj_!d|jjj!_ d|jjj_"dg|j#_$d|j%j&_$t'|ƒdS)z( Add config for densepose head. TréériérépÚ ROIAlignV2égffffffæ?r9r6r5FéÚGNrZ%DensePoseChartWithConfidencePredictorZ DensePoseChartWithConfidenceLossr7Ziid_isorN)(r:Ú DENSEPOSE_ONrr;ÚNAMEZNUM_STACKED_CONVSZ NUM_PATCHESZ DECONV_KERNELZ CONV_HEAD_DIMZCONV_HEAD_KERNELZUP_SCALEZ HEATMAP_SIZEÚ POOLER_TYPEÚPOOLER_RESOLUTIONÚPOOLER_SAMPLING_RATIOZNUM_COARSE_SEGM_CHANNELSZFG_IOU_THRESHOLDZ INDEX_WEIGHTSZ PART_WEIGHTSZPOINT_REGRESSION_WEIGHTSÚCOARSE_SEGM_TRAINED_BY_MASKSZ DECODER_ONZDECODER_NUM_CLASSESZDECODER_CONV_DIMSZ DECODER_NORMZDECODER_COMMON_STRIDEZDEEPLABÚNORMZ NONLOCAL_ONZPREDICTOR_NAMEZ LOSS_NAMEZ UV_CONFIDENCEÚEPSILONZSEGM_CONFIDENCErÚINPUTZROTATION_ANGLESÚTESTÚAUGr<r rrrÚadd_densepose_head_configžsL                                  rPcCsH|}tƒ|j_d|jj_tƒ|jj_d|jjj_d|jjj_d|jjj_ddg|jjj_ddg|jjj_ d|jjj_ tƒ|jj_ d|jjj _d|jjj _d|jjj _gd ¢|jjj _gd ¢|jjj _ d|jjj _ tƒ|jj_ d|jjj _d|jjj _d|jjj _gd ¢|jjj _gd ¢|jjj _ d|jjj _ tƒ|jj_ d |jjj _dS)z( Add config for HRNet backbone. é@érÚBASICré ÚSUMr?)rrr)rTrQé€)rrrr)rTrQrVrCrCN)rr:ZHRNETZ STEM_INPLANESZSTAGE2Z NUM_MODULESZ NUM_BRANCHESÚBLOCKZ NUM_BLOCKSZ NUM_CHANNELSZ FUSE_METHODZSTAGE3ZSTAGE4ZHRFPNÚ OUT_CHANNELSr rrrÚadd_hrnet_configís4                  rYcCs,t|ƒt|ƒt|ƒt|ƒt|ƒdS)N)rPrYrrr)rrrrÚadd_densepose_configs  rZ) Údetectron2.configrrrrrr.r3r<rPrYrZrrrrÚs   5O#