mirror of https://github.com/RE-OWOD/RE-OWOD
51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
|
|
|
|
from detectron2.config import CfgNode as CN
|
|
from detectron2.projects.deeplab import add_deeplab_config
|
|
|
|
|
|
def add_panoptic_deeplab_config(cfg):
|
|
"""
|
|
Add config for Panoptic-DeepLab.
|
|
"""
|
|
# Reuse DeepLab config.
|
|
add_deeplab_config(cfg)
|
|
# Target generation parameters.
|
|
cfg.INPUT.GAUSSIAN_SIGMA = 10
|
|
cfg.INPUT.IGNORE_STUFF_IN_OFFSET = True
|
|
cfg.INPUT.SMALL_INSTANCE_AREA = 4096
|
|
cfg.INPUT.SMALL_INSTANCE_WEIGHT = 3
|
|
cfg.INPUT.IGNORE_CROWD_IN_SEMANTIC = False
|
|
# Optimizer type.
|
|
cfg.SOLVER.OPTIMIZER = "ADAM"
|
|
# Panoptic-DeepLab semantic segmentation head.
|
|
# We add an extra convolution before predictor.
|
|
cfg.MODEL.SEM_SEG_HEAD.HEAD_CHANNELS = 256
|
|
cfg.MODEL.SEM_SEG_HEAD.LOSS_TOP_K = 0.2
|
|
# Panoptic-DeepLab instance segmentation head.
|
|
cfg.MODEL.INS_EMBED_HEAD = CN()
|
|
cfg.MODEL.INS_EMBED_HEAD.NAME = "PanopticDeepLabInsEmbedHead"
|
|
cfg.MODEL.INS_EMBED_HEAD.IN_FEATURES = ["res2", "res3", "res5"]
|
|
cfg.MODEL.INS_EMBED_HEAD.PROJECT_FEATURES = ["res2", "res3"]
|
|
cfg.MODEL.INS_EMBED_HEAD.PROJECT_CHANNELS = [32, 64]
|
|
cfg.MODEL.INS_EMBED_HEAD.ASPP_CHANNELS = 256
|
|
cfg.MODEL.INS_EMBED_HEAD.ASPP_DILATIONS = [6, 12, 18]
|
|
cfg.MODEL.INS_EMBED_HEAD.ASPP_DROPOUT = 0.1
|
|
# We add an extra convolution before predictor.
|
|
cfg.MODEL.INS_EMBED_HEAD.HEAD_CHANNELS = 32
|
|
cfg.MODEL.INS_EMBED_HEAD.CONVS_DIM = 128
|
|
cfg.MODEL.INS_EMBED_HEAD.COMMON_STRIDE = 4
|
|
cfg.MODEL.INS_EMBED_HEAD.NORM = "SyncBN"
|
|
cfg.MODEL.INS_EMBED_HEAD.CENTER_LOSS_WEIGHT = 200.0
|
|
cfg.MODEL.INS_EMBED_HEAD.OFFSET_LOSS_WEIGHT = 0.01
|
|
# Panoptic-DeepLab post-processing setting.
|
|
cfg.MODEL.PANOPTIC_DEEPLAB = CN()
|
|
# Stuff area limit, ignore stuff region below this number.
|
|
cfg.MODEL.PANOPTIC_DEEPLAB.STUFF_AREA = 2048
|
|
cfg.MODEL.PANOPTIC_DEEPLAB.CENTER_THRESHOLD = 0.1
|
|
cfg.MODEL.PANOPTIC_DEEPLAB.NMS_KERNEL = 7
|
|
cfg.MODEL.PANOPTIC_DEEPLAB.TOP_K_INSTANCE = 200
|
|
# If set to False, Panoptic-DeepLab will not evaluate instance segmentation.
|
|
cfg.MODEL.PANOPTIC_DEEPLAB.PREDICT_INSTANCES = True
|