hank1996 commited on
Commit
6104520
·
1 Parent(s): 3b642ad

Create new file

Browse files
Files changed (1) hide show
  1. 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
+