Пример #1
0
NETWORK = EasyDict()
NETWORK.OPTIMIZER_CLASS = tf.train.MomentumOptimizer
NETWORK.OPTIMIZER_KWARGS = {"momentum": 0.9}
NETWORK.LEARNING_RATE_FUNC = tf.train.piecewise_constant
# In the origianl yolov2 Paper, with a starting learning rate of 10−3, dividing it by 10 at 60 and 90 epochs.
# Train data num per epoch is 16551
step_per_epoch = int(16551 / BATCH_SIZE)
NETWORK.LEARNING_RATE_KWARGS = {
    "values": [1e-4, 2e-2, 5e-3, 5e-4],
    "boundaries": [step_per_epoch, step_per_epoch * 80, step_per_epoch * 120],
}
NETWORK.IMAGE_SIZE = IMAGE_SIZE
NETWORK.BATCH_SIZE = BATCH_SIZE
NETWORK.DATA_FORMAT = DATA_FORMAT
NETWORK.ANCHORS = anchors
NETWORK.OBJECT_SCALE = 5.0
NETWORK.NO_OBJECT_SCALE = 1.0
NETWORK.CLASS_SCALE = 1.0
NETWORK.COORDINATE_SCALE = 1.0
NETWORK.LOSS_IOU_THRESHOLD = 0.6
NETWORK.WEIGHT_DECAY_RATE = 0.0005
NETWORK.SCORE_THRESHOLD = score_threshold
NETWORK.NMS_IOU_THRESHOLD = nms_iou_threshold
NETWORK.NMS_MAX_OUTPUT_SIZE = nms_max_output_size
NETWORK.LOSS_WARMUP_STEPS = int(8000 / BATCH_SIZE)

# dataset
DATASET = EasyDict()
DATASET.BATCH_SIZE = BATCH_SIZE
DATASET.DATA_FORMAT = DATA_FORMAT
Пример #2
0
    },
    'objects365': '',
}

DATASET = EasyDict()
DATASET.NAME = 'pascal'
DATASET.DATA_DIR = dataset[DATASET.NAME]['path']
DATASET.BATCHSIZE = 14
DATASET.DOWN_RATION = [4, 8, 16, 32]
DATASET.INPUT_H = 416
DATASET.INPUT_W = 416
DATASET.USE_GIOU = False
DATASET.EVAL = False
DATASET.ANCHORS = [[[0.01181, 0.01955], [0.01941, 0.05309], [0.03584, 0.1]],
                   [[0.03831, 0.02876], [0.06861, 0.05756], [0.06994,
                                                             0.16855]],
                   [[0.11966, 0.3311], [0.13606, 0.0961], [0.21739, 0.1955]],
                   [[0.25938, 0.5573], [0.47191, 0.32135], [0.72506, 0.77527]]]

BACKBONE = EasyDict()
BACKBONE.INIT_WEIGHTS = True
BACKBONE.PRETRAINED = osp.join(osp.dirname(__file__), '..',
                               'weights/pretrained/hrnet_w32-36af842e.pth')
BACKBONE.PRETRAINED_LAYERS = ['*']

BACKBONE.STAGE2 = EasyDict()
BACKBONE.STAGE2.NUM_MODULES = 1
BACKBONE.STAGE2.NUM_BRANCHES = 2
BACKBONE.STAGE2.NUM_BLOCKS = [4, 4]
BACKBONE.STAGE2.NUM_CHANNELS = [32, 64]
BACKBONE.STAGE2.BLOCK = 'BASIC'
Пример #3
0
    },
    'objects365': '',
}

DATASET = EasyDict()
DATASET.NAME = 'pascal'
DATASET.DATA_DIR = dataset[DATASET.NAME]['path']
DATASET.BATCHSIZE = 18
DATASET.DOWN_RATION = [8, 16, 32]
DATASET.INPUT_H = 416
DATASET.INPUT_W = 416
DATASET.USE_GIOU = False
DATASET.EVAL = True
DATASET.ANCHORS = [[[0.01402, 0.02311], [0.02464, 0.06542], [0.05019,
                                                             0.13322]],
                   [[0.05088, 0.03728], [0.10116, 0.08054], [0.10545,
                                                             0.26739]],
                   [[0.21067, 0.15731], [0.27648, 0.42582], [0.69417,
                                                             0.71236]]]

BACKBONE = EasyDict()
BACKBONE.INIT_WEIGHTS = True
BACKBONE.PRETRAINED = osp.join(osp.dirname(__file__), '..',
                               'weights/pretrained/darknet53_74.pth')

NECK = EasyDict()
NECK.IN_CHANNEL = [256, 512, 1024]

HEAD = EasyDict()
HEAD.BACKBONE = 'darknet'
HEAD.IN_CHANNEL = [128, 256, 512]
HEAD.OUT_HEADS = {
Пример #4
0
YOLO_CONFIG.TRAIN_EVALUATION_STEP = 10
YOLO_CONFIG.VAL_EVALUATION_STEP = 2
YOLO_CONFIG.SAVE_EPOCH = 10

YOLO_CONFIG.BATCH_NORM_DECAY = 0.99
WEIGHT_DECAY = 5e-4

YOLO_CONFIG.CLASSES_PATH = ''
YOLO_CONFIG.ANCHORS_PATH = ''

YOLO_CONFIG.TRAIN_EXAMPLES = len(open(YOLO_CONFIG.TRAIN_PATH,'r').readlines())
YOLO_CONFIG.VAL_EXAMPLES = len(open(YOLO_CONFIG.VAL_PATH,'r').readlines())

YOLO_CONFIG.TRAIN_BATCH_NUM = int(math.ceil(float(YOLO_CONFIG.TRAIN_EXAMPLES)/YOLO_CONFIG.BATCH_SIZE))

YOLO_CONFIG.ANCHORS = parse_anchors(YOLO_CONFIG.ANCHORS_PATH)

YOLO_CONFIG.MULTI_SCALE_TRAIN = True
YOLO_CONFIG.USE_MIX_UP = True
YOLO_CONFIG.LETTER_BOX_RESIZE = True

YOLO_CONFIG.NUM_THREADS = 10

YOLO_CONFIG.PRE_FETCH = 5

YOLO_CONFIG.OPTIMIZER = 'adam'

YOLO_CONFIG.LEARNING_RATE = 0.01

YOLO_CONFIG.GLOBAL_STEP = 0
Пример #5
0
import numpy as np
from easydict import EasyDict

__C = EasyDict()
cfg = __C

__C.TRAIN = EasyDict()
__C.TEST = EasyDict()

__C.ANCHORS = [(1.3221, 1.73145), (3.19275, 4.00944), (5.05587, 8.09892),
               (9.47112, 4.84053), (11.2364, 10.0071)]

__C.STRIDE = 32

__C.CLASS_NUM = 20

__C.SATURATION = 1.5
__C.EXPOSURE = 1.5
__C.HUE = 0.1

__C.JITTER = 0.3

__C.INPUT_SIZE = (416, 416)
__C.TEST_SIZE = (416, 416)

__C.DEBUG = False

####################################
# LOSS
####################################
__C.COORD_SCALE = 1.0