text: from detectron2.config.defaults import _C
  from detectron2.config import CfgNode as CN
  
  
  # ---------------------------------------------------------------------------- #
  # Additional Configs
  # ---------------------------------------------------------------------------- #
  _C.MODEL.MOBILENET = False
  _C.MODEL.BACKBONE.ANTI_ALIAS = False
  _C.MODEL.RESNETS.DEFORM_INTERVAL = 1
  _C.INPUT.HFLIP_TRAIN = True
  _C.INPUT.CROP.CROP_INSTANCE = True
  
  # ---------------------------------------------------------------------------- #
  # FCOS Head
  # ---------------------------------------------------------------------------- #
  _C.MODEL.FCOS = CN()
  
  # This is the number of foreground classes.
  _C.MODEL.FCOS.NUM_CLASSES = 80
  _C.MODEL.FCOS.IN_FEATURES = ["p3", "p4", "p5", "p6", "p7"]
  _C.MODEL.FCOS.FPN_STRIDES = [8, 16, 32, 64, 128]
  _C.MODEL.FCOS.PRIOR_PROB = 0.01
  _C.MODEL.FCOS.INFERENCE_TH_TRAIN = 0.05
  _C.MODEL.FCOS.INFERENCE_TH_TEST = 0.05
  _C.MODEL.FCOS.NMS_TH = 0.6
  _C.MODEL.FCOS.PRE_NMS_TOPK_TRAIN = 1000
  _C.MODEL.FCOS.PRE_NMS_TOPK_TEST = 1000
  _C.MODEL.FCOS.POST_NMS_TOPK_TRAIN = 100
  _C.MODEL.FCOS.POST_NMS_TOPK_TEST = 100
  _C.MODEL.FCOS.TOP_LEVELS = 2
  _C.MODEL.FCOS.NORM = "GN"  # Support GN or none
  _C.MODEL.FCOS.USE_SCALE = True
  
  # The options for the quality of box prediction
  # It can be "ctrness" (as described in FCOS paper) or "iou"
  # Using "iou" here generally has ~0.4 better AP on COCO
  # Note that for compatibility, we still use the term "ctrness" in the code
  _C.MODEL.FCOS.BOX_QUALITY = "ctrness"
  
  # Multiply centerness before threshold
  # This will affect the final performance by about 0.05 AP but save some time
  _C.MODEL.FCOS.THRESH_WITH_CTR = False
  
  # Focal loss parameters
  _C.MODEL.FCOS.LOSS_ALPHA = 0.25
  _C.MODEL.FCOS.LOSS_GAMMA = 2.0
  
  # The normalizer of the classification loss
  # The normalizer can be "fg" (normalized by the number of the foreground samples),
  # "moving_fg" (normalized by the MOVING number of the foreground samples),
  # or "all" (normalized by the number of all samples)
  _C.MODEL.FCOS.LOSS_NORMALIZER_CLS = "fg"
  _C.MODEL.FCOS.LOSS_WEIGHT_CLS = 1.0
  
  _C.MODEL.FCOS.SIZES_OF_INTEREST = [64, 128, 256, 512]
  _C.MODEL.FCOS.USE_RELU = True
  _C.MODEL.FCOS.USE_DEFORMABLE = False
  
  # the number of convolutions used in the cls and bbox tower
  _C.MODEL.FCOS.NUM_CLS_CONVS = 4
  _C.MODEL.FCOS.NUM_BOX_CONVS = 4
  _C.MODEL.FCOS.NUM_SHARE_CONVS = 0
  _C.MODEL.FCOS.CENTER_SAMPLE = True
  _C.MODEL.FCOS.POS_RADIUS = 1.5
  _C.MODEL.FCOS.LOC_LOSS_TYPE = 'giou'
  _C.MODEL.FCOS.YIELD_PROPOSAL = False
  _C.MODEL.FCOS.YIELD_BOX_FEATURES = False
  
  # ---------------------------------------------------------------------------- #
  # VoVNet backbone
  # ---------------------------------------------------------------------------- #
  _C.MODEL.VOVNET = CN()
  _C.MODEL.VOVNET.CONV_BODY = "V-39-eSE"
  _C.MODEL.VOVNET.OUT_FEATURES = ["stage2", "stage3", "stage4", "stage5"]
  
  # Options: FrozenBN, GN, "SyncBN", "BN"
  _C.MODEL.VOVNET.NORM = "FrozenBN"
  _C.MODEL.VOVNET.OUT_CHANNELS = 256
  _C.MODEL.VOVNET.BACKBONE_OUT_CHANNELS = 256
  
  # ---------------------------------------------------------------------------- #
  # DLA backbone
  # ---------------------------------------------------------------------------- #
  
  _C.MODEL.DLA = CN()
  _C.MODEL.DLA.CONV_BODY = "DLA34"
  _C.MODEL.DLA.OUT_FEATURES = ["stage2", "stage3", "stage4", "stage5"]
  
  # Options: FrozenBN, GN, "SyncBN", "BN"
  _C.MODEL.DLA.NORM = "FrozenBN"
  
  # ---------------------------------------------------------------------------- #
  # BAText Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.BATEXT = CN()
  _C.MODEL.BATEXT.VOC_SIZE = 230
  _C.MODEL.BATEXT.NUM_CHARS = 25
  _C.MODEL.BATEXT.POOLER_RESOLUTION = (8, 32)
  _C.MODEL.BATEXT.IN_FEATURES = ["p2", "p3", "p4"]
  _C.MODEL.BATEXT.POOLER_SCALES = (0.25, 0.125, 0.0625)
  _C.MODEL.BATEXT.SAMPLING_RATIO = 1
  _C.MODEL.BATEXT.CONV_DIM = 256
  _C.MODEL.BATEXT.NUM_CONV = 2
  _C.MODEL.BATEXT.RECOGNITION_LOSS = "ctc"
  _C.MODEL.BATEXT.RECOGNIZER = "attn"
  _C.MODEL.BATEXT.CANONICAL_SIZE = 96  # largest min_size for level 3 (stride=8)
  _C.MODEL.BATEXT.USE_COORDCONV = False
  _C.MODEL.BATEXT.USE_AET = False
  _C.MODEL.BATEXT.CUSTOM_DICT = "" # Path to the class file.
  
  # ---------------------------------------------------------------------------- #
  # BlendMask Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.BLENDMASK = CN()
  _C.MODEL.BLENDMASK.ATTN_SIZE = 14
  _C.MODEL.BLENDMASK.TOP_INTERP = "bilinear"
  _C.MODEL.BLENDMASK.BOTTOM_RESOLUTION = 56
  _C.MODEL.BLENDMASK.POOLER_TYPE = "ROIAlignV2"
  _C.MODEL.BLENDMASK.POOLER_SAMPLING_RATIO = 1
  _C.MODEL.BLENDMASK.POOLER_SCALES = (0.25,)
  _C.MODEL.BLENDMASK.INSTANCE_LOSS_WEIGHT = 1.0
  _C.MODEL.BLENDMASK.VISUALIZE = False
  
  # ---------------------------------------------------------------------------- #
  # Basis Module Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.BASIS_MODULE = CN()
  _C.MODEL.BASIS_MODULE.NAME = "ProtoNet"
  _C.MODEL.BASIS_MODULE.NUM_BASES = 4
  _C.MODEL.BASIS_MODULE.LOSS_ON = False
  _C.MODEL.BASIS_MODULE.ANN_SET = "coco"
  _C.MODEL.BASIS_MODULE.CONVS_DIM = 128
  _C.MODEL.BASIS_MODULE.IN_FEATURES = ["p3", "p4", "p5"]
  _C.MODEL.BASIS_MODULE.NORM = "SyncBN"
  _C.MODEL.BASIS_MODULE.NUM_CONVS = 3
  _C.MODEL.BASIS_MODULE.COMMON_STRIDE = 8
  _C.MODEL.BASIS_MODULE.NUM_CLASSES = 80
  _C.MODEL.BASIS_MODULE.LOSS_WEIGHT = 0.3
  
  # ---------------------------------------------------------------------------- #
  # MEInst Head
  # ---------------------------------------------------------------------------- #
  _C.MODEL.MEInst = CN()
  
  # This is the number of foreground classes.
  _C.MODEL.MEInst.NUM_CLASSES = 80
  _C.MODEL.MEInst.IN_FEATURES = ["p3", "p4", "p5", "p6", "p7"]
  _C.MODEL.MEInst.FPN_STRIDES = [8, 16, 32, 64, 128]
  _C.MODEL.MEInst.PRIOR_PROB = 0.01
  _C.MODEL.MEInst.INFERENCE_TH_TRAIN = 0.05
  _C.MODEL.MEInst.INFERENCE_TH_TEST = 0.05
  _C.MODEL.MEInst.NMS_TH = 0.6
  _C.MODEL.MEInst.PRE_NMS_TOPK_TRAIN = 1000
  _C.MODEL.MEInst.PRE_NMS_TOPK_TEST = 1000
  _C.MODEL.MEInst.POST_NMS_TOPK_TRAIN = 100
  _C.MODEL.MEInst.POST_NMS_TOPK_TEST = 100
  _C.MODEL.MEInst.TOP_LEVELS = 2
  _C.MODEL.MEInst.NORM = "GN"  # Support GN or none
  _C.MODEL.MEInst.USE_SCALE = True
  
  # Multiply centerness before threshold
  # This will affect the final performance by about 0.05 AP but save some time
  _C.MODEL.MEInst.THRESH_WITH_CTR = False
  
  # Focal loss parameters
  _C.MODEL.MEInst.LOSS_ALPHA = 0.25
  _C.MODEL.MEInst.LOSS_GAMMA = 2.0
  _C.MODEL.MEInst.SIZES_OF_INTEREST = [64, 128, 256, 512]
  _C.MODEL.MEInst.USE_RELU = True
  _C.MODEL.MEInst.USE_DEFORMABLE = False
  _C.MODEL.MEInst.LAST_DEFORMABLE = False
  _C.MODEL.MEInst.TYPE_DEFORMABLE = "DCNv1"  # or DCNv2.
  
  # the number of convolutions used in the cls and bbox tower
  _C.MODEL.MEInst.NUM_CLS_CONVS = 4
  _C.MODEL.MEInst.NUM_BOX_CONVS = 4
  _C.MODEL.MEInst.NUM_SHARE_CONVS = 0
  _C.MODEL.MEInst.CENTER_SAMPLE = True
  _C.MODEL.MEInst.POS_RADIUS = 1.5
  _C.MODEL.MEInst.LOC_LOSS_TYPE = 'giou'
  
  # ---------------------------------------------------------------------------- #
  # Mask Encoding
  # ---------------------------------------------------------------------------- #
  # Whether to use mask branch.
  _C.MODEL.MEInst.MASK_ON = True
  # IOU overlap ratios [IOU_THRESHOLD]
  # Overlap threshold for an RoI to be considered background (if < IOU_THRESHOLD)
  # Overlap threshold for an RoI to be considered foreground (if >= IOU_THRESHOLD)
  _C.MODEL.MEInst.IOU_THRESHOLDS = [0.5]
  _C.MODEL.MEInst.IOU_LABELS = [0, 1]
  # Whether to use class_agnostic or class_specific.
  _C.MODEL.MEInst.AGNOSTIC = True
  # Some operations in mask encoding.
  _C.MODEL.MEInst.WHITEN = True
  _C.MODEL.MEInst.SIGMOID = True
  
  # The number of convolutions used in the mask tower.
  _C.MODEL.MEInst.NUM_MASK_CONVS = 4
  
  # The dim of mask before/after mask encoding.
  _C.MODEL.MEInst.DIM_MASK = 60
  _C.MODEL.MEInst.MASK_SIZE = 28
  # The default path for parameters of mask encoding.
  _C.MODEL.MEInst.PATH_COMPONENTS = "datasets/coco/components/" \
                                     "coco_2017_train_class_agnosticTrue_whitenTrue_sigmoidTrue_60.npz"
  # An indicator for encoding parameters loading during training.
  _C.MODEL.MEInst.FLAG_PARAMETERS = False
  # The loss for mask branch, can be mse now.
  _C.MODEL.MEInst.MASK_LOSS_TYPE = "mse"
  
  # Whether to use gcn in mask prediction.
  # Large Kernel Matters -- https://arxiv.org/abs/1703.02719
  _C.MODEL.MEInst.USE_GCN_IN_MASK = False
  _C.MODEL.MEInst.GCN_KERNEL_SIZE = 9
  # Whether to compute loss on original mask (binary mask).
  _C.MODEL.MEInst.LOSS_ON_MASK = False
  
  # ---------------------------------------------------------------------------- #
  # CondInst Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.CONDINST = CN()
  
  # the downsampling ratio of the final instance masks to the input image
  _C.MODEL.CONDINST.MASK_OUT_STRIDE = 4
  _C.MODEL.CONDINST.BOTTOM_PIXELS_REMOVED = -1
  
  # if not -1, we only compute the mask loss for MAX_PROPOSALS random proposals PER GPU
  _C.MODEL.CONDINST.MAX_PROPOSALS = -1
  # if not -1, we only compute the mask loss for top `TOPK_PROPOSALS_PER_IM` proposals
  # PER IMAGE in terms of their detection scores
  _C.MODEL.CONDINST.TOPK_PROPOSALS_PER_IM = -1
  
  _C.MODEL.CONDINST.MASK_HEAD = CN()
  _C.MODEL.CONDINST.MASK_HEAD.CHANNELS = 8
  _C.MODEL.CONDINST.MASK_HEAD.NUM_LAYERS = 3
  _C.MODEL.CONDINST.MASK_HEAD.USE_FP16 = False
  _C.MODEL.CONDINST.MASK_HEAD.DISABLE_REL_COORDS = False
  
  _C.MODEL.CONDINST.MASK_BRANCH = CN()
  _C.MODEL.CONDINST.MASK_BRANCH.OUT_CHANNELS = 8
  _C.MODEL.CONDINST.MASK_BRANCH.IN_FEATURES = ["p3", "p4", "p5"]
  _C.MODEL.CONDINST.MASK_BRANCH.CHANNELS = 128
  _C.MODEL.CONDINST.MASK_BRANCH.NORM = "BN"
  _C.MODEL.CONDINST.MASK_BRANCH.NUM_CONVS = 4
  _C.MODEL.CONDINST.MASK_BRANCH.SEMANTIC_LOSS_ON = False
  
  # The options for BoxInst, which can train the instance segmentation model with box annotations only
  # Please refer to the paper https://arxiv.org/abs/2012.02310
  _C.MODEL.BOXINST = CN()
  # Whether to enable BoxInst
  _C.MODEL.BOXINST.ENABLED = False
  _C.MODEL.BOXINST.BOTTOM_PIXELS_REMOVED = 10
  
  _C.MODEL.BOXINST.PAIRWISE = CN()
  _C.MODEL.BOXINST.PAIRWISE.SIZE = 3
  _C.MODEL.BOXINST.PAIRWISE.DILATION = 2
  _C.MODEL.BOXINST.PAIRWISE.WARMUP_ITERS = 10000
  _C.MODEL.BOXINST.PAIRWISE.COLOR_THRESH = 0.3
  
  # ---------------------------------------------------------------------------- #
  # TOP Module Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.TOP_MODULE = CN()
  _C.MODEL.TOP_MODULE.NAME = "conv"
  _C.MODEL.TOP_MODULE.DIM = 16
  
  # ---------------------------------------------------------------------------- #
  # BiFPN options
  # ---------------------------------------------------------------------------- #
  
  _C.MODEL.BiFPN = CN()
  # Names of the input feature maps to be used by BiFPN
  # They must have contiguous power of 2 strides
  # e.g., ["res2", "res3", "res4", "res5"]
  _C.MODEL.BiFPN.IN_FEATURES = ["res2", "res3", "res4", "res5"]
  _C.MODEL.BiFPN.OUT_CHANNELS = 160
  _C.MODEL.BiFPN.NUM_REPEATS = 6
  
  # Options: "" (no norm), "GN"
  _C.MODEL.BiFPN.NORM = ""
  
  # ---------------------------------------------------------------------------- #
  # SOLOv2 Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.SOLOV2 = CN()
  
  # Instance hyper-parameters
  _C.MODEL.SOLOV2.INSTANCE_IN_FEATURES = ["p2", "p3", "p4", "p5", "p6"]
  _C.MODEL.SOLOV2.FPN_INSTANCE_STRIDES = [8, 8, 16, 32, 32]
  _C.MODEL.SOLOV2.FPN_SCALE_RANGES = ((1, 96), (48, 192), (96, 384), (192, 768), (384, 2048))
  _C.MODEL.SOLOV2.SIGMA = 0.2
  # Channel size for the instance head.
  _C.MODEL.SOLOV2.INSTANCE_IN_CHANNELS = 256
  _C.MODEL.SOLOV2.INSTANCE_CHANNELS = 512
  # Convolutions to use in the instance head.
  _C.MODEL.SOLOV2.NUM_INSTANCE_CONVS = 4
  _C.MODEL.SOLOV2.USE_DCN_IN_INSTANCE = False
  _C.MODEL.SOLOV2.TYPE_DCN = 'DCN'
  _C.MODEL.SOLOV2.NUM_GRIDS = [40, 36, 24, 16, 12]
  # Number of foreground classes.
  _C.MODEL.SOLOV2.NUM_CLASSES = 80
  _C.MODEL.SOLOV2.NUM_KERNELS = 256
  _C.MODEL.SOLOV2.NORM = "GN"
  _C.MODEL.SOLOV2.USE_COORD_CONV = True
  _C.MODEL.SOLOV2.PRIOR_PROB = 0.01
  
  # Mask hyper-parameters.
  # Channel size for the mask tower.
  _C.MODEL.SOLOV2.MASK_IN_FEATURES = ["p2", "p3", "p4", "p5"]
  _C.MODEL.SOLOV2.MASK_IN_CHANNELS = 256
  _C.MODEL.SOLOV2.MASK_CHANNELS = 128
  _C.MODEL.SOLOV2.NUM_MASKS = 256
  
  # Test cfg.
  _C.MODEL.SOLOV2.NMS_PRE = 500
  _C.MODEL.SOLOV2.SCORE_THR = 0.1
  _C.MODEL.SOLOV2.UPDATE_THR = 0.05
  _C.MODEL.SOLOV2.MASK_THR = 0.5
  _C.MODEL.SOLOV2.MAX_PER_IMG = 100
  # NMS type: matrix OR mask.
  _C.MODEL.SOLOV2.NMS_TYPE = "matrix"
  # Matrix NMS kernel type: gaussian OR linear.
  _C.MODEL.SOLOV2.NMS_KERNEL = "gaussian"
  _C.MODEL.SOLOV2.NMS_SIGMA = 2
  
  # Loss cfg.
  _C.MODEL.SOLOV2.LOSS = CN()
  _C.MODEL.SOLOV2.LOSS.FOCAL_USE_SIGMOID = True
  _C.MODEL.SOLOV2.LOSS.FOCAL_ALPHA = 0.25
  _C.MODEL.SOLOV2.LOSS.FOCAL_GAMMA = 2.0
  _C.MODEL.SOLOV2.LOSS.FOCAL_WEIGHT = 1.0
  _C.MODEL.SOLOV2.LOSS.DICE_WEIGHT = 3.0
  
  
  # ---------------------------------------------------------------------------- #
  # FCPose Options
  # ---------------------------------------------------------------------------- #
  _C.MODEL.FCPOSE = CN()
  _C.MODEL.FCPOSE_ON = False
  _C.MODEL.FCPOSE.ATTN_LEN = 2737
  _C.MODEL.FCPOSE.DYNAMIC_CHANNELS = 32
  _C.MODEL.FCPOSE.MAX_PROPOSALS = 70
  _C.MODEL.FCPOSE.PROPOSALS_PER_INST = 70
  _C.MODEL.FCPOSE.LOSS_WEIGHT_KEYPOINT = 2.5
  _C.MODEL.FCPOSE.FOCAL_LOSS_ALPHA = 0.25
  _C.MODEL.FCPOSE.FOCAL_LOSS_GAMMA = 2.0
  _C.MODEL.FCPOSE.GT_HEATMAP_STRIDE = 2
  _C.MODEL.FCPOSE.SIGMA = 1
  _C.MODEL.FCPOSE.HEATMAP_SIGMA = 1.8
  _C.MODEL.FCPOSE.HEAD_HEATMAP_SIGMA = 0.01
  _C.MODEL.FCPOSE.DISTANCE_NORM = 12.0
  _C.MODEL.FCPOSE.LOSS_WEIGHT_DIRECTION = 9.0
  
  _C.MODEL.FCPOSE.BASIS_MODULE = CN()
  _C.MODEL.FCPOSE.BASIS_MODULE.NUM_BASES = 32
  _C.MODEL.FCPOSE.BASIS_MODULE.CONVS_DIM = 128
  _C.MODEL.FCPOSE.BASIS_MODULE.COMMON_STRIDE = 8
  _C.MODEL.FCPOSE.BASIS_MODULE.NUM_CLASSES = 17
  _C.MODEL.FCPOSE.BASIS_MODULE.LOSS_WEIGHT = 0.2
  _C.MODEL.FCPOSE.BASIS_MODULE.BN_TYPE = "SyncBN"
  