Spaces:
Sleeping
Sleeping
| # -*- coding: utf-8 -*- | |
| from detectron2.config import CfgNode as CN | |
| def add_kmax_deeplab_config(cfg): | |
| """ | |
| Add config for KMAX_DEEPLAB. | |
| """ | |
| # NOTE: configs from original maskformer | |
| # data config | |
| # select the dataset mapper | |
| cfg.INPUT.DATASET_MAPPER_NAME = "coco_panoptic_kmaxdeeplab" | |
| # Color augmentation | |
| # Pad image and segmentation GT in dataset mapper. | |
| cfg.INPUT.SIZE_DIVISIBILITY = -1 | |
| # solver config | |
| # weight decay on embedding | |
| cfg.SOLVER.WEIGHT_DECAY_EMBED = 0.05 | |
| # optimizer | |
| cfg.SOLVER.OPTIMIZER = "ADAMW" | |
| cfg.SOLVER.BACKBONE_MULTIPLIER = 0.1 | |
| # kMaX-DeepLab model config | |
| cfg.MODEL.KMAX_DEEPLAB = CN() | |
| # whether to share matching results | |
| cfg.MODEL.KMAX_DEEPLAB.SHARE_FINAL_MATCHING = True | |
| # vis | |
| cfg.MODEL.KMAX_DEEPLAB.SAVE_VIS_NUM = 0 | |
| # loss | |
| cfg.MODEL.KMAX_DEEPLAB.DEEP_SUPERVISION = True | |
| cfg.MODEL.KMAX_DEEPLAB.SKIP_CONN_INIT_VALUE = 0.0 | |
| cfg.MODEL.KMAX_DEEPLAB.NO_OBJECT_WEIGHT = 1e-5 | |
| cfg.MODEL.KMAX_DEEPLAB.CLASS_WEIGHT = 3.0 | |
| cfg.MODEL.KMAX_DEEPLAB.DICE_WEIGHT = 3.0 | |
| cfg.MODEL.KMAX_DEEPLAB.MASK_WEIGHT = 0.3 | |
| cfg.MODEL.KMAX_DEEPLAB.INSDIS_WEIGHT = 1.0 | |
| cfg.MODEL.KMAX_DEEPLAB.AUX_SEMANTIC_WEIGHT = 1.0 | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_INSDIS_TEMPERATURE = 1.5 | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_INSDIS_SAMPLE_K = 4096 | |
| cfg.MODEL.KMAX_DEEPLAB.AUX_SEMANTIC_TEMPERATURE = 2.0 | |
| cfg.MODEL.KMAX_DEEPLAB.UX_SEMANTIC_SAMPLE_K = 4096 | |
| # pixel decoder config | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC = CN() | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.NAME = "kMaXPixelDecoder" | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.IN_FEATURES = ['res2', 'res3', 'res4', 'res5'] | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.DEC_LAYERS = [1, 5, 1, 1] | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.LAYER_TYPES = ["axial", "axial", "bottleneck", "bottleneck"] | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.DEC_CHANNELS = [512, 256, 128, 64] | |
| cfg.MODEL.KMAX_DEEPLAB.PIXEL_DEC.DROP_PATH_PROB = 0.0 | |
| # transformer decoder config | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC = CN() | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC.NAME = "kMaXTransformerDecoder" | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC.DEC_LAYERS = [2, 2, 2] | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC.NUM_OBJECT_QUERIES = 128 | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC.IN_CHANNELS = [2048, 1024, 512] | |
| cfg.MODEL.KMAX_DEEPLAB.TRANS_DEC.DROP_PATH_PROB = 0.0 | |
| # kMaX-DeepLab inference config | |
| cfg.MODEL.KMAX_DEEPLAB.TEST = CN() | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.SEMANTIC_ON = False | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.INSTANCE_ON = False | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.PANOPTIC_ON = True | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.OBJECT_MASK_THRESHOLD = 0.4 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.CLASS_THRESHOLD_THING = 0.7 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.CLASS_THRESHOLD_STUFF = 0.5 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.REORDER_CLASS_WEIGHT = 1.0 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.REORDER_MASK_WEIGHT = 1.0 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.OVERLAP_THRESHOLD = 0.8 | |
| cfg.MODEL.KMAX_DEEPLAB.TEST.SEM_SEG_POSTPROCESSING_BEFORE_INFERENCE = False | |
| # Sometimes `backbone.size_divisibility` is set to 0 for some backbone (e.g. ResNet) | |
| # you can use this config to override | |
| cfg.MODEL.KMAX_DEEPLAB.SIZE_DIVISIBILITY = -1 | |
| # https://github.com/SHI-Labs/OneFormer/blob/main/oneformer/config.py#L197 | |
| cfg.MODEL.CONVNEXT = CN() | |
| cfg.MODEL.CONVNEXT.IN_CHANNELS = 3 | |
| cfg.MODEL.CONVNEXT.DEPTHS = [3, 3, 27, 3] | |
| cfg.MODEL.CONVNEXT.DIMS = [192, 384, 768, 1536] | |
| cfg.MODEL.CONVNEXT.DROP_PATH_RATE = 0.6 | |
| cfg.MODEL.CONVNEXT.LSIT = 1e-6 | |
| cfg.MODEL.CONVNEXT.OUT_INDICES = [0, 1, 2, 3] | |
| cfg.MODEL.CONVNEXT.OUT_FEATURES = ["res2", "res3", "res4", "res5"] | |
| cfg.INPUT.IMAGE_SIZE = [1281, 1281] | |
| cfg.INPUT.MIN_SCALE = 0.2 | |
| cfg.INPUT.MAX_SCALE = 2.0 | |