# Whenever an argument can be either used for training or for testing, the # corresponding name will be post-fixed by a _TRAIN for a training parameter, # or _TEST for a test-specific parameter. # For example, the number of images during training will be # IMAGES_PER_BATCH_TRAIN, while the number of images for testing will be # IMAGES_PER_BATCH_TEST # ----------------------------------------------------------------------------- # Config definition # ----------------------------------------------------------------------------- _C = CN() # The version number, to upgrade from old configs to new ones if any # changes happen. It's recommended to keep a VERSION in your config file. _C.VERSION = 2 _C.MODEL = CN() _C.MODEL.LOAD_PROPOSALS = False _C.MODEL.MASK_ON = False _C.MODEL.KEYPOINT_ON = False _C.MODEL.DEVICE = "cuda" _C.MODEL.META_ARCHITECTURE = "GeneralizedRCNN" # Path (possibly with schema like catalog:// or detectron2://) to a checkpoint file # to be loaded to the model. You can find available models in the model zoo. _C.MODEL.WEIGHTS = "" # Values to be used for image normalization (BGR order, since INPUT.FORMAT defaults to BGR). # To train on images of different number of channels, just set different mean & std. # Default values are the mean pixel value from ImageNet: [103.53, 116.28, 123.675]
def get_adept_cfg(dataset_basename): _C = CfgNode() _C.TYPE = "adept" _C.DEBUG = False _C.VERSION = "paper-adept" #options: "paper-adept", "intphys-adept" _C.RESUME = False _C.RESUME_DIR = "" _C.SEED = -1 _C.CUDNN_BENCHMARK = False _C.DEBUG_VIDEOS = [ ] #["output/intphys/.data_tmp/adept_jsons/pred_attr_82649/intphys_dev_O1/video_00054.json"] _C.ANALYZE_RESULTS_FOLDER = "None" #"output/intphys/adept/bk_distributed_exp" #"/home/aldo/cora-derender/output/adept/adept/bk_distributed_exp" #"/all/home/aldo/cora-derenderer/output/adept/adept/distributed_exp/" #'/all/home/aldo/cora-derenderer/output/intphys/adept/distributed_exp_complete_bk' #"None" #"output/intphys/adept/exp_00025" # ----------------------------------------------------------------------------- # Datasets # ----------------------------------------------------------------------------- _C.DATASETS = CfgNode() _C.DATASETS.BASE_NAME = dataset_basename if _C.DATASETS.BASE_NAME == "intphys": ####### INTPHYS ########### _C.ATTRIBUTES_KEYS = ( "pred_attr_82649", # "pred_attr_03227", # "pred_attr_06472", # "pred_attr_12664", # "pred_attr_22318", # "pred_attr_41337", ) _C.DATASETS.TEST = ( "intphys_dev_O1", "intphys_dev_O2", "intphys_dev_O3", # "intphys_dev-meta_O1", # "intphys_dev-meta_O2", # "intphys_dev-meta_O3" ) elif _C.DATASETS.BASE_NAME == "adept": _C.ATTRIBUTES_KEYS = ( # "attributes", "pred_attr_43044", # "pred_attr_00650", # 'pred_attr_10580', # "pred_attr_18377", # "pred_attr_34216" ) _C.DATASETS.TEST = ( # "adept_val", # "adept_train", #TODO get back to only test "adept_human_create", "adept_human_vanish", "adept_human_short-overturn", "adept_human_long-overturn", "adept_human_visible-discontinuous", "adept_human_invisible-discontinuous", "adept_human_delay", "adept_human_block", ) # ----------------------------------------------------------------------------- # Model # ----------------------------------------------------------------------------- _C.MODEL = CfgNode() _C.MODEL.META_ARCHITECTURE = "PARTICLE_FILTER" # Particles to be used in the particle filter _C.MODEL.N_PARTICLES = 128 # Threshold for minimal area for an objects to be considered visible _C.MODEL.AREA_THRESHOLD = 200. # ----------------------------------------------------------------------------- # Dynamics Model # ----------------------------------------------------------------------------- _C.MODEL.STEP = CfgNode() _C.MODEL.STEP.PERTURBATION = CfgNode() # Whether to perturb the objects _C.MODEL.STEP.PERTURBATION.TO_PERTURB = True # Sigma in the velocity term _C.MODEL.STEP.PERTURBATION.VELOCITY_SIGMA = [.01, .06] _C.MODEL.STEP.PERTURBATION.SCALE_SIGMA = .0005 # Sigma in the location term _C.MODEL.STEP.PERTURBATION.LOCATION_SIGMA = [.01, .06] # Sigma in the velocity term, multiplicative _C.MODEL.STEP.PERTURBATION.VELOCITY_LAMBDA = [.01, .06] # ----------------------------------------------------------------------------- # Magic in the dynamics model # ----------------------------------------------------------------------------- _C.MODEL.STEP.MAGIC = CfgNode() # Whether to use magic _C.MODEL.STEP.MAGIC.USE_MAGIC = True # The probability to disappear _C.MODEL.STEP.MAGIC.DISAPPEAR_PROBABILITY = .02 # The penalty for magically disappearing _C.MODEL.STEP.MAGIC.DISAPPEAR_PENALTY = 10. # The probability for magically stopping _C.MODEL.STEP.MAGIC.STOP_PROBABILITY = .02 # The penalty for magically stopping _C.MODEL.STEP.MAGIC.STOP_PENALTY = 1. # The probability for magically accelerating _C.MODEL.STEP.MAGIC.ACCELERATE_PROBABILITY = .04 # The penalty for magically accelerating _C.MODEL.STEP.MAGIC.ACCELERATE_PENALTY = 1. # The magnitude for magically accelerating _C.MODEL.STEP.MAGIC.ACCELERATE_LAMBDA = 1.5 # ----------------------------------------------------------------------------- # Particle filter # ----------------------------------------------------------------------------- # The period for particle filter to resample _C.MODEL.RESAMPLE = CfgNode() # Resample every period _C.MODEL.RESAMPLE.PERIOD = 1 # Scaling on nll _C.MODEL.RESAMPLE.FACTOR = 1. # ----------------------------------------------------------------------------- # Mass sampler # ----------------------------------------------------------------------------- _C.MODEL.MASS = CfgNode() # Whether to sample mass _C.MODEL.MASS.TO_SAMPLE_MASS = False # The log mean of mass _C.MODEL.MASS.LOG_MASS_MU = 0 # The log stdev of mass _C.MODEL.MASS.LOG_MASS_SIGMA = 1 # ----------------------------------------------------------------------------- # Observation Model # ----------------------------------------------------------------------------- _C.MODEL.UPDATING = CfgNode() _C.MODEL.UPDATING.MATCHED = CfgNode() # Loss for matched object updating _C.MODEL.UPDATING.MATCHED.LOSS = "Smoothed_L_Half" # Sigma in the location term _C.MODEL.UPDATING.MATCHED.LOCATION_SIGMA = .2 # Sigma in the velocity term _C.MODEL.UPDATING.MATCHED.VELOCITY_SIGMA = .2 _C.MODEL.UPDATING.MATCHED.SCALE_SIGMA = .05 _C.MODEL.UPDATING.UNMATCHED_BELIEF = CfgNode() # Base Penalty coefficient for unseen object _C.MODEL.UPDATING.UNMATCHED_BELIEF.BASE_PENALTY = 1. # Penalty coefficient for unseen object w.r.t. mask area shown _C.MODEL.UPDATING.UNMATCHED_BELIEF.MASK_PENALTY = .0001 _C.MODEL.UPDATING.UNMATCHED_OBSERVATION = CfgNode() # Penalty for object appearing _C.MODEL.UPDATING.UNMATCHED_OBSERVATION.PENALTY = .02 _C.MODEL.UPDATING.UNMATCHED_OBSERVATION.MAX_PENALTY = 12. _C.MODEL.MATCHER = CfgNode() # PENALTY FOR MISMATCHED OBJECT TYPES, ONLY BETWEEN OCCLUDER AND OTHER _C.MODEL.MATCHER.TYPE_PENALTY = 10. # PENALTY FOR MISMATCHED OBJECT COLOR _C.MODEL.MATCHER.COLOR_PENALTY = 12. # PENALTY FOR MISMATCHED OBJECT WHEN THEY ARE AFAR _C.MODEL.MATCHER.DISTANCE_PENALTY = 14. if _C.VERSION == "intphys-adept" else 20. # THE THRESHOLD FOR OBJECT BEING AFAR _C.MODEL.MATCHER.DISTANCE_THRESHOLD = 2. # THE BASE PENALTY BETWEEN PLACEHOLDER AND OBJECTS _C.MODEL.MATCHER.BASE_PENALTY = 8. # when more than 5 objects creating more objects should not happen _C.MODEL.MATCHER.BASE_PENALTY_HIGH = 16 return _C