first commit
This commit is contained in:
commit
54ccfb11fe
218 files changed
+19525
No files matched your search
Executable
+1
@@ -0,0 +1 @@
|
||||
from .defaults import _C as cfg
|
||||
Executable
+97
@@ -0,0 +1,97 @@
|
||||
from yacs.config import CfgNode as CN
|
||||
|
||||
_C = CN()
|
||||
|
||||
_C.MODEL = CN()
|
||||
_C.MODEL.META_ARCHITECTURE = 'SSDDetector'
|
||||
_C.MODEL.DEVICE = "cuda"
|
||||
# match default boxes to any ground truth with jaccard overlap higher than a threshold (0.5)
|
||||
_C.MODEL.THRESHOLD = 0.5
|
||||
_C.MODEL.NUM_CLASSES = 21
|
||||
# Hard negative mining
|
||||
_C.MODEL.NEG_POS_RATIO = 3
|
||||
_C.MODEL.CENTER_VARIANCE = 0.1
|
||||
_C.MODEL.SIZE_VARIANCE = 0.2
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Backbone
|
||||
# ---------------------------------------------------------------------------- #
|
||||
_C.MODEL.BACKBONE = CN()
|
||||
_C.MODEL.BACKBONE.NAME = 'vgg'
|
||||
_C.MODEL.BACKBONE.OUT_CHANNELS = (512, 1024, 512, 256, 256, 256)
|
||||
_C.MODEL.BACKBONE.PRETRAINED = True
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# PRIORS
|
||||
# -----------------------------------------------------------------------------
|
||||
_C.MODEL.PRIORS = CN()
|
||||
_C.MODEL.PRIORS.FEATURE_MAPS = [38, 19, 10, 5, 3, 1]
|
||||
_C.MODEL.PRIORS.STRIDES = [8, 16, 32, 64, 100, 300]
|
||||
_C.MODEL.PRIORS.MIN_SIZES = [30, 60, 111, 162, 213, 264]
|
||||
_C.MODEL.PRIORS.MAX_SIZES = [60, 111, 162, 213, 264, 315]
|
||||
_C.MODEL.PRIORS.ASPECT_RATIOS = [[2], [2, 3], [2, 3], [2, 3], [2], [2]]
|
||||
# When has 1 aspect ratio, every location has 4 boxes, 2 ratio 6 boxes.
|
||||
# #boxes = 2 + #ratio * 2
|
||||
_C.MODEL.PRIORS.BOXES_PER_LOCATION = [4, 6, 6, 6, 4, 4] # number of boxes per feature map location
|
||||
_C.MODEL.PRIORS.CLIP = True
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Box Head
|
||||
# -----------------------------------------------------------------------------
|
||||
_C.MODEL.BOX_HEAD = CN()
|
||||
_C.MODEL.BOX_HEAD.NAME = 'SSDBoxHead'
|
||||
_C.MODEL.BOX_HEAD.PREDICTOR = 'SSDBoxPredictor'
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# INPUT
|
||||
# -----------------------------------------------------------------------------
|
||||
_C.INPUT = CN()
|
||||
# Image size
|
||||
_C.INPUT.IMAGE_SIZE = 300
|
||||
# Values to be used for image normalization, RGB layout
|
||||
_C.INPUT.PIXEL_MEAN = [123, 117, 104]
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Dataset
|
||||
# -----------------------------------------------------------------------------
|
||||
_C.DATASETS = CN()
|
||||
# List of the dataset names for training, as present in paths_catalog.py
|
||||
_C.DATASETS.TRAIN = ()
|
||||
# List of the dataset names for testing, as present in paths_catalog.py
|
||||
_C.DATASETS.TEST = ()
|
||||
_C.DATASETS.INF = ()
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# DataLoader
|
||||
# -----------------------------------------------------------------------------
|
||||
_C.DATA_LOADER = CN()
|
||||
# Number of data loading threads
|
||||
_C.DATA_LOADER.NUM_WORKERS = 8
|
||||
_C.DATA_LOADER.PIN_MEMORY = True
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Solver
|
||||
# ---------------------------------------------------------------------------- #
|
||||
_C.SOLVER = CN()
|
||||
# train configs
|
||||
_C.SOLVER.MAX_ITER = 120000
|
||||
_C.SOLVER.LR_STEPS = [80000, 100000]
|
||||
_C.SOLVER.GAMMA = 0.1
|
||||
_C.SOLVER.BATCH_SIZE = 4#32
|
||||
_C.SOLVER.LR = 1e-3
|
||||
_C.SOLVER.MOMENTUM = 0.9
|
||||
_C.SOLVER.WEIGHT_DECAY = 5e-4
|
||||
_C.SOLVER.WARMUP_FACTOR = 1.0 / 3
|
||||
_C.SOLVER.WARMUP_ITERS = 500
|
||||
|
||||
# ---------------------------------------------------------------------------- #
|
||||
# Specific test options
|
||||
# ---------------------------------------------------------------------------- #
|
||||
_C.TEST = CN()
|
||||
_C.TEST.NMS_THRESHOLD = 0.4 #0.45
|
||||
_C.TEST.CONFIDENCE_THRESHOLD = 0.3#0.01
|
||||
_C.TEST.MAX_PER_CLASS = -1
|
||||
_C.TEST.MAX_PER_IMAGE = 100
|
||||
_C.TEST.BATCH_SIZE = 1
|
||||
|
||||
_C.OUTPUT_DIR = 'outputs'
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
MODEL:
|
||||
NUM_CLASSES: 21
|
||||
BACKBONE:
|
||||
OUT_CHANNELS: (512, 1024, 512, 256, 256, 256, 256)
|
||||
PRIORS:
|
||||
FEATURE_MAPS: [64, 32, 16, 8, 4, 2, 1]
|
||||
STRIDES: [8, 16, 32, 64, 128, 256, 512]
|
||||
MIN_SIZES: [35.84, 76.8, 153.6, 230.4, 307.2, 384.0, 460.8]
|
||||
MAX_SIZES: [76.8, 153.6, 230.4, 307.2, 384.0, 460.8, 537.65]
|
||||
ASPECT_RATIOS: [[2], [2, 3], [2, 3], [2, 3], [2, 3], [2], [2]]
|
||||
BOXES_PER_LOCATION: [4, 6, 6, 6, 6, 4, 4]
|
||||
INPUT:
|
||||
IMAGE_SIZE: 512
|
||||
DATASETS:
|
||||
#TRAIN: ("voc_2007_birdtrain", "voc_2007_birdval")
|
||||
#TRAIN: ("voc_2007_trainval", )
|
||||
#TEST: ("voc_2007_test", )
|
||||
#TEST: ("vocbird_2019_test", )
|
||||
TRAIN: ("voc_3_train",)
|
||||
TEST: ("voc_3_test", )
|
||||
INF: ("inference_hatcher",)
|
||||
SOLVER:
|
||||
MAX_ITER: 175000
|
||||
|
||||
LR_STEPS: [80000, 100000]
|
||||
GAMMA: 0.1
|
||||
BATCH_SIZE: 16
|
||||
LR: 1e-5
|
||||
#1e-3
|
||||
OUTPUT_DIR: '/data1/Hatcher/model/data_MPKFNet/weigth/detection/vgg_ssd512_voc0712VOC3/'
|
||||
Executable
+114
@@ -0,0 +1,114 @@
|
||||
import os
|
||||
|
||||
|
||||
class DatasetCatalog:
|
||||
DATA_DIR = ''
|
||||
DATASETS = {
|
||||
'voc_ICCV_train': {
|
||||
"data_dir": "VOCiccvtrain",
|
||||
"split": "trainyolo"
|
||||
},
|
||||
'voc_ICCV_test': {
|
||||
"data_dir": "VOCiccvtest",
|
||||
"split": "testyolo"
|
||||
},
|
||||
'voc_2007_train': {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "train"
|
||||
},
|
||||
'voc_3_train': {
|
||||
"data_dir": "VOC3",
|
||||
"split": "train"
|
||||
},
|
||||
'voc_3_test': {
|
||||
"data_dir": "VOC3",
|
||||
"split": "test"
|
||||
},
|
||||
'voc_2007_val': {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "val"
|
||||
},
|
||||
'voc_2007_trainval': {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "trainval"
|
||||
},
|
||||
'voc_2007_test': {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "test"
|
||||
},
|
||||
'vocbird_2019_test': {
|
||||
"data_dir": "HatcherW",
|
||||
"split": "test"
|
||||
},
|
||||
'voc_2012_train': {
|
||||
"data_dir": "VOC2012",
|
||||
"split": "train"
|
||||
},
|
||||
'voc_2012_val': {
|
||||
"data_dir": "VOC2012",
|
||||
"split": "val"
|
||||
},
|
||||
'voc_2012_trainval': {
|
||||
"data_dir": "VOC2012",
|
||||
"split": "trainval"
|
||||
},
|
||||
'voc_2012_test': {
|
||||
"data_dir": "VOC2012",
|
||||
"split": "test"
|
||||
},
|
||||
'coco_2014_valminusminival': {
|
||||
"data_dir": "val2014",
|
||||
"ann_file": "annotations/instances_valminusminival2014.json"
|
||||
},
|
||||
'coco_2014_minival': {
|
||||
"data_dir": "val2014",
|
||||
"ann_file": "annotations/instances_minival2014.json"
|
||||
},
|
||||
'coco_2014_train': {
|
||||
"data_dir": "train2014",
|
||||
"ann_file": "annotations/instances_train2014.json"
|
||||
},
|
||||
'coco_2014_val': {
|
||||
"data_dir": "val2014",
|
||||
"ann_file": "annotations/instances_val2014.json"
|
||||
},
|
||||
"voc_2007_birdtest": {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "bird_test"
|
||||
},
|
||||
"voc_2007_birdval": {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "bird_trainval"
|
||||
},
|
||||
"voc_2007_birdtrain": {
|
||||
"data_dir": "VOC2007",
|
||||
"split": "bird_train"
|
||||
},
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def get(name):
|
||||
if "voc" in name:
|
||||
voc_root = DatasetCatalog.DATA_DIR
|
||||
if 'VOC_ROOT' in os.environ:
|
||||
voc_root = os.environ['VOC_ROOT']
|
||||
|
||||
attrs = DatasetCatalog.DATASETS[name]
|
||||
args = dict(
|
||||
data_dir=os.path.join(voc_root, attrs["data_dir"]),
|
||||
split=attrs["split"],
|
||||
)
|
||||
return dict(factory="VOCDataset", args=args)
|
||||
elif "coco" in name:
|
||||
coco_root = DatasetCatalog.DATA_DIR
|
||||
if 'COCO_ROOT' in os.environ:
|
||||
coco_root = os.environ['COCO_ROOT']
|
||||
|
||||
attrs = DatasetCatalog.DATASETS[name]
|
||||
args = dict(
|
||||
data_dir=os.path.join(coco_root, attrs["data_dir"]),
|
||||
ann_file=os.path.join(coco_root, attrs["ann_file"]),
|
||||
)
|
||||
return dict(factory="COCODataset", args=args)
|
||||
|
||||
raise RuntimeError("Dataset not available: {}".format(name))
|
||||
Reference in new issue
Block a user