| # -*- coding: utf-8 -*- | |
| # Copyright (c) Facebook, Inc. and its affiliates. | |
| def add_deeplab_config(cfg): | |
| """ | |
| Add config for DeepLab. | |
| """ | |
| # We retry random cropping until no single category in semantic segmentation GT occupies more | |
| # than `SINGLE_CATEGORY_MAX_AREA` part of the crop. | |
| cfg.INPUT.CROP.SINGLE_CATEGORY_MAX_AREA = 1.0 | |
| # Used for `poly` learning rate schedule. | |
| cfg.SOLVER.POLY_LR_POWER = 0.9 | |
| cfg.SOLVER.POLY_LR_CONSTANT_ENDING = 0.0 | |
| # Loss type, choose from `cross_entropy`, `hard_pixel_mining`. | |
| cfg.MODEL.SEM_SEG_HEAD.LOSS_TYPE = "hard_pixel_mining" | |
| # DeepLab settings | |
| cfg.MODEL.SEM_SEG_HEAD.PROJECT_FEATURES = ["res2"] | |
| cfg.MODEL.SEM_SEG_HEAD.PROJECT_CHANNELS = [48] | |
| cfg.MODEL.SEM_SEG_HEAD.ASPP_CHANNELS = 256 | |
| cfg.MODEL.SEM_SEG_HEAD.ASPP_DILATIONS = [6, 12, 18] | |
| cfg.MODEL.SEM_SEG_HEAD.ASPP_DROPOUT = 0.1 | |
| cfg.MODEL.SEM_SEG_HEAD.USE_DEPTHWISE_SEPARABLE_CONV = False | |
| # Backbone new configs | |
| cfg.MODEL.RESNETS.RES4_DILATION = 1 | |
| cfg.MODEL.RESNETS.RES5_MULTI_GRID = [1, 2, 4] | |
| # ResNet stem type from: `basic`, `deeplab` | |
| cfg.MODEL.RESNETS.STEM_TYPE = "deeplab" | |