Spaces:
Sleeping
Sleeping
Create new file
Browse files- lib/config/default.py +142 -0
lib/config/default.py
ADDED
|
@@ -0,0 +1,142 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
import os
|
| 4 |
+
from yacs.config import CfgNode as CN
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
_C = CN()
|
| 8 |
+
|
| 9 |
+
_C.LOG_DIR = 'runs/'
|
| 10 |
+
_C.GPUS = (0,1)
|
| 11 |
+
_C.WORKERS = 8
|
| 12 |
+
_C.PIN_MEMORY = False
|
| 13 |
+
_C.PRINT_FREQ = 20
|
| 14 |
+
_C.AUTO_RESUME =False # Resume from the last training interrupt
|
| 15 |
+
_C.NEED_AUTOANCHOR = False # Re-select the prior anchor(k-means) When training from scratch (epoch=0), set it to be ture!
|
| 16 |
+
_C.DEBUG = False
|
| 17 |
+
_C.num_seg_class = 2
|
| 18 |
+
|
| 19 |
+
# Cudnn related params
|
| 20 |
+
_C.CUDNN = CN()
|
| 21 |
+
_C.CUDNN.BENCHMARK = True
|
| 22 |
+
_C.CUDNN.DETERMINISTIC = False
|
| 23 |
+
_C.CUDNN.ENABLED = True
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
# common params for NETWORK
|
| 27 |
+
_C.MODEL = CN(new_allowed=True)
|
| 28 |
+
_C.MODEL.NAME = ''
|
| 29 |
+
_C.MODEL.STRU_WITHSHARE = False #add share_block to segbranch
|
| 30 |
+
_C.MODEL.HEADS_NAME = ['']
|
| 31 |
+
_C.MODEL.PRETRAINED = ""
|
| 32 |
+
_C.MODEL.PRETRAINED_DET = ""
|
| 33 |
+
_C.MODEL.IMAGE_SIZE = [640, 640] # width * height, ex: 192 * 256
|
| 34 |
+
_C.MODEL.EXTRA = CN(new_allowed=True)
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
# loss params
|
| 38 |
+
_C.LOSS = CN(new_allowed=True)
|
| 39 |
+
_C.LOSS.LOSS_NAME = ''
|
| 40 |
+
_C.LOSS.MULTI_HEAD_LAMBDA = None
|
| 41 |
+
_C.LOSS.FL_GAMMA = 0.0 # focal loss gamma
|
| 42 |
+
_C.LOSS.CLS_POS_WEIGHT = 1.0 # classification loss positive weights
|
| 43 |
+
_C.LOSS.OBJ_POS_WEIGHT = 1.0 # object loss positive weights
|
| 44 |
+
_C.LOSS.SEG_POS_WEIGHT = 1.0 # segmentation loss positive weights
|
| 45 |
+
_C.LOSS.BOX_GAIN = 0.05 # box loss gain
|
| 46 |
+
_C.LOSS.CLS_GAIN = 0.5 # classification loss gain
|
| 47 |
+
_C.LOSS.OBJ_GAIN = 1.0 # object loss gain
|
| 48 |
+
_C.LOSS.DA_SEG_GAIN = 0.2 # driving area segmentation loss gain
|
| 49 |
+
_C.LOSS.LL_SEG_GAIN = 0.2 # lane line segmentation loss gain
|
| 50 |
+
_C.LOSS.LL_IOU_GAIN = 0.2 # lane line iou loss gain
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
# DATASET related params
|
| 54 |
+
_C.DATASET = CN(new_allowed=True)
|
| 55 |
+
_C.DATASET.DATAROOT = '/home/zwt/bdd/bdd100k/images/100k' # the path of images folder
|
| 56 |
+
_C.DATASET.LABELROOT = '/home/zwt/bdd/bdd100k/labels/100k' # the path of det_annotations folder
|
| 57 |
+
_C.DATASET.MASKROOT = '/home/zwt/bdd/bdd_seg_gt' # the path of da_seg_annotations folder
|
| 58 |
+
_C.DATASET.LANEROOT = '/home/zwt/bdd/bdd_lane_gt' # the path of ll_seg_annotations folder
|
| 59 |
+
_C.DATASET.DATASET = 'BddDataset'
|
| 60 |
+
_C.DATASET.TRAIN_SET = 'train'
|
| 61 |
+
_C.DATASET.TEST_SET = 'val'
|
| 62 |
+
_C.DATASET.DATA_FORMAT = 'jpg'
|
| 63 |
+
_C.DATASET.SELECT_DATA = False
|
| 64 |
+
_C.DATASET.ORG_IMG_SIZE = [720, 1280]
|
| 65 |
+
|
| 66 |
+
# training data augmentation
|
| 67 |
+
_C.DATASET.FLIP = True
|
| 68 |
+
_C.DATASET.SCALE_FACTOR = 0.25
|
| 69 |
+
_C.DATASET.ROT_FACTOR = 10
|
| 70 |
+
_C.DATASET.TRANSLATE = 0.1
|
| 71 |
+
_C.DATASET.SHEAR = 0.0
|
| 72 |
+
_C.DATASET.COLOR_RGB = False
|
| 73 |
+
_C.DATASET.HSV_H = 0.015 # image HSV-Hue augmentation (fraction)
|
| 74 |
+
_C.DATASET.HSV_S = 0.7 # image HSV-Saturation augmentation (fraction)
|
| 75 |
+
_C.DATASET.HSV_V = 0.4 # image HSV-Value augmentation (fraction)
|
| 76 |
+
# TODO: more augmet params to add
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
# train
|
| 80 |
+
_C.TRAIN = CN(new_allowed=True)
|
| 81 |
+
_C.TRAIN.LR0 = 0.001 # initial learning rate (SGD=1E-2, Adam=1E-3)
|
| 82 |
+
_C.TRAIN.LRF = 0.2 # final OneCycleLR learning rate (lr0 * lrf)
|
| 83 |
+
_C.TRAIN.WARMUP_EPOCHS = 3.0
|
| 84 |
+
_C.TRAIN.WARMUP_BIASE_LR = 0.1
|
| 85 |
+
_C.TRAIN.WARMUP_MOMENTUM = 0.8
|
| 86 |
+
|
| 87 |
+
_C.TRAIN.OPTIMIZER = 'adam'
|
| 88 |
+
_C.TRAIN.MOMENTUM = 0.937
|
| 89 |
+
_C.TRAIN.WD = 0.0005
|
| 90 |
+
_C.TRAIN.NESTEROV = True
|
| 91 |
+
_C.TRAIN.GAMMA1 = 0.99
|
| 92 |
+
_C.TRAIN.GAMMA2 = 0.0
|
| 93 |
+
|
| 94 |
+
_C.TRAIN.BEGIN_EPOCH = 0
|
| 95 |
+
_C.TRAIN.END_EPOCH = 240
|
| 96 |
+
|
| 97 |
+
_C.TRAIN.VAL_FREQ = 1
|
| 98 |
+
_C.TRAIN.BATCH_SIZE_PER_GPU =24
|
| 99 |
+
_C.TRAIN.SHUFFLE = True
|
| 100 |
+
|
| 101 |
+
_C.TRAIN.IOU_THRESHOLD = 0.2
|
| 102 |
+
_C.TRAIN.ANCHOR_THRESHOLD = 4.0
|
| 103 |
+
|
| 104 |
+
# if training 3 tasks end-to-end, set all parameters as True
|
| 105 |
+
# Alternating optimization
|
| 106 |
+
_C.TRAIN.SEG_ONLY = False # Only train two segmentation branchs
|
| 107 |
+
_C.TRAIN.DET_ONLY = False # Only train detection branch
|
| 108 |
+
_C.TRAIN.ENC_SEG_ONLY = False # Only train encoder and two segmentation branchs
|
| 109 |
+
_C.TRAIN.ENC_DET_ONLY = False # Only train encoder and detection branch
|
| 110 |
+
|
| 111 |
+
# Single task
|
| 112 |
+
_C.TRAIN.DRIVABLE_ONLY = False # Only train da_segmentation task
|
| 113 |
+
_C.TRAIN.LANE_ONLY = False # Only train ll_segmentation task
|
| 114 |
+
_C.TRAIN.DET_ONLY = False # Only train detection task
|
| 115 |
+
|
| 116 |
+
|
| 117 |
+
|
| 118 |
+
|
| 119 |
+
_C.TRAIN.PLOT = True #
|
| 120 |
+
|
| 121 |
+
# testing
|
| 122 |
+
_C.TEST = CN(new_allowed=True)
|
| 123 |
+
_C.TEST.BATCH_SIZE_PER_GPU = 24
|
| 124 |
+
_C.TEST.MODEL_FILE = ''
|
| 125 |
+
_C.TEST.SAVE_JSON = False
|
| 126 |
+
_C.TEST.SAVE_TXT = False
|
| 127 |
+
_C.TEST.PLOTS = True
|
| 128 |
+
_C.TEST.NMS_CONF_THRESHOLD = 0.001
|
| 129 |
+
_C.TEST.NMS_IOU_THRESHOLD = 0.6
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
def update_config(cfg, args):
|
| 133 |
+
cfg.defrost()
|
| 134 |
+
# cfg.merge_from_file(args.cfg)
|
| 135 |
+
|
| 136 |
+
if args.modelDir:
|
| 137 |
+
cfg.OUTPUT_DIR = args.modelDir
|
| 138 |
+
|
| 139 |
+
if args.logDir:
|
| 140 |
+
cfg.LOG_DIR = args.logDir
|
| 141 |
+
|
| 142 |
+
|