def get_configuration(): # load configs for detector, base network and data set from FasterRCNN_config import cfg as detector_cfg from utils.configs.VGG16_config import cfg as network_cfg from utils.configs.Building100_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration_resnet50(EPOCH): # load configs for detector, base network and data set from utils.configs.FasterRCNN_config import cfg as detector_cfg from utils.configs.ResNet50_config import cfg as network_cfg from user_config import cfg as dataset_cfg detector_cfg["CNTK"].E2E_MAX_EPOCHS=EPOCH dataset_cfg["DATA"].NUM_TRAIN_IMAGES=count("../"+dataset_cfg["DATA"].TRAIN_MAP_FILE) return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def getConfiguration(detector_name): from FasterRCNN.FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Prometheus_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': detector_name }])
def get_configuration(): # load configs for detector, base network and data set from FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg from utils.configs.GoogleQuickDraw import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration(): # load configs for detector, base network and data set from FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg # for the Grocery data set use: from utils.configs.Grocery_config import cfg as dataset_cfg from utils.configs.Grocery_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration(): # load configs for detector, base network and data set from FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for NO3310 data set use: from utils.configs.NO3310_config import cfg as dataset_cfg from utils.configs.NO3310_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration(): # load configs for detector, base network and data set from uploads.core.FastRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg # for the Grocery data set use: from utils.configs.Grocery_config import cfg as dataset_cfg from utils.configs.Grocery_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration(detector_name): # load configs for detector, base network and data set from FasterRCNN.FasterRCNN_config import cfg as detector_cfg # AlexNet base model from utils.configs.AlexNet_config import cfg as network_cfg # BU (Beijing University) data set from utils.configs.BU_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': detector_name }])
def get_configuration(detector_name): # load configs for detector, base network and data set from FasterRCNN.FasterRCNN_config import cfg as detector_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for the Fire data set use: from utils.configs.Prometheus_config import cfg as dataset_cfg from utils.configs.Prometheus_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': detector_name }])
def getConfiguration(detector_name): # load configs for detector, base network and data set if detector_name == "FastRCNN": from FastRCNN.FastRCNN_config import cfg as detector_cfg elif detector_name == "FasterRCNN": from FasterRCNN.FasterRCNN_config import cfg as detector_cfg else: print('Unknown detector: {}'.format(detector_name)) from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Prometheus_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg, {'DETECTOR': detector_name}])
def get_configuration(classes): # load configs for detector, base network and data set from FasterRCNN.FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg dataset_cfg = generate_data_cfg(classes) return merge_configs([ detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': 'FasterRCNN' } ])
def get_configuration(): from FasterRCNN.FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg from utils.configs.GoogleQuickDraw_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': 'FasterRCNN' }])
def __init__(self, model_type): self.cfg = merge_configs([ detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': 'FasterRCNN' } ]) self.name = "TNC_faster_rcnn_eval_AlexNet_e2e_native.model" self.model_type = '' self.model_path = '' self.model_file = '' self.en_zh_file = '' self.en_zh_dict = {} self.eval_model = None self.evaluator = None self.set_model_type(model_type) return
def get_configuration(detector_name): # load configs for detector, base network and data set if detector_name == "FastRCNN": from FastRCNN.FastRCNN_config import cfg as detector_cfg elif detector_name == "FasterRCNN": from FasterRCNN.FasterRCNN_config import cfg as detector_cfg else: print('Unknown detector: {}'.format(detector_name)) # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg # for the Grocery data set use: from utils.configs.Grocery_config import cfg as dataset_cfg from utils.configs.Grocery_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg, {'DETECTOR': detector_name}])
def test_fastrcnnpy_grocery_training(device_id): if cntk_device(device_id).type() != DeviceKind_GPU: pytest.skip('test only runs on GPU') # it runs very slow in CPU try_set_default_device(cntk_device(device_id)) from utils.config_helpers import merge_configs from FastRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Grocery_config import cfg as dataset_cfg cfg = merge_configs([detector_cfg, network_cfg, dataset_cfg]) cfg["CNTK"].FORCE_DETERMINISTIC = True cfg["CNTK"].DEBUG_OUTPUT = False cfg["CNTK"].MAKE_MODE = False cfg["CNTK"].FAST_MODE = False cfg["CNTK"].MAX_EPOCHS = 4 cfg.IMAGE_WIDTH = 600 cfg.IMAGE_HEIGHT = 600 cfg.NUM_ROI_PROPOSALS = 200 cfg.USE_GPU_NMS = False cfg.VISUALIZE_RESULTS = False cfg["DATA"].MAP_FILE_PATH = grocery_path externalData = 'CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY' in os.environ if externalData: extPath = os.environ['CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY'] cfg['BASE_MODEL_PATH'] = os.path.join(extPath, "PreTrainedModels", "AlexNet", "v1", "AlexNet_ImageNet_Caffe.model") else: cfg['BASE_MODEL_PATH'] = os.path.join( abs_path, *"../../../../PretrainedModels/AlexNet_ImageNet_Caffe.model".split( "/")) from FastRCNN_train import prepare, train_fast_rcnn from FastRCNN_eval import compute_test_set_aps prepare(cfg, False) np.random.seed(seed=3) trained_model = train_fast_rcnn(cfg) eval_results = compute_test_set_aps(trained_model, cfg) meanAP = np.nanmean(list(eval_results.values())) print('meanAP={}'.format(meanAP)) assert meanAP > 0.01
def get_configuration(): # load configs for detector, base network and data set from FasterRCNN.FasterRCNN_config import cfg as detector_cfg # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg # for the Grocery data set use: from utils.configs.Grocery_config import cfg as dataset_cfg # from utils.configs.Grocery_config import cfg as dataset_cfg ################################################################### # Custom Dataset NO3310 from utils.configs.NO3310_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': 'FasterRCNN' }])
def run_fasterrcnn_grocery_training(e2e): from FasterRCNN_eval import compute_test_set_aps from utils.config_helpers import merge_configs from FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Grocery_config import cfg as dataset_cfg cfg = merge_configs([detector_cfg, network_cfg, dataset_cfg]) cfg["CNTK"].FORCE_DETERMINISTIC = True cfg["CNTK"].DEBUG_OUTPUT = False cfg["CNTK"].MAKE_MODE = False cfg["CNTK"].FAST_MODE = False cfg.CNTK.E2E_MAX_EPOCHS = 3 cfg.CNTK.RPN_EPOCHS = 2 cfg.CNTK.FRCN_EPOCHS = 2 cfg.IMAGE_WIDTH = 400 cfg.IMAGE_HEIGHT = 400 cfg["CNTK"].TRAIN_E2E = e2e cfg.USE_GPU_NMS = False cfg.VISUALIZE_RESULTS = False cfg["DATA"].MAP_FILE_PATH = grocery_path externalData = 'CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY' in os.environ if externalData: extPath = os.environ['CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY'] model_file = os.path.join(extPath, "PreTrainedModels", "AlexNet", "v1", "AlexNet_ImageNet_Caffe.model") else: model_file = os.path.join( abs_path, *"../../../../PretrainedModels/AlexNet_ImageNet_Caffe.model".split( "/")) from FasterRCNN_train import prepare, train_faster_rcnn np.random.seed(seed=3) prepare(cfg, False) cfg['BASE_MODEL_PATH'] = model_file trained_model = train_faster_rcnn(cfg) eval_results = compute_test_set_aps(trained_model, cfg) meanAP = np.nanmean(list(eval_results.values())) print('meanAP={}'.format(meanAP)) assert meanAP > 0.01 return trained_model, meanAP, cfg
def evaluate(model_path): # ProposalLayer currently only runs on the CPU eval_device = C.cpu() model = C.Function.load(model_path, device=eval_device) from FasterRCNN.FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Grocery_config import cfg as dataset_cfg from utils.config_helpers import merge_configs from FasterRCNN.FasterRCNN_train import prepare from FasterRCNN.FasterRCNN_eval import compute_test_set_aps cfg = merge_configs([detector_cfg, network_cfg, dataset_cfg]) cfg["CNTK"].FORCE_DETERMINISTIC = True prepare(cfg, False) eval_results = compute_test_set_aps(model, cfg) meanAP = np.nanmean(list(eval_results.values())) return meanAP
def get_configuration(detector_name): # load configs for detector, base network and data set if detector_name == "FastRCNN": from FastRCNN.FastRCNN_config import cfg as detector_cfg elif detector_name == "FasterRCNN": from FasterRCNN.FasterRCNN_config import cfg as detector_cfg else: print('Unknown detector: {}'.format(detector_name)) # for VGG16 base model use: from utils.configs.VGG16_config import cfg as network_cfg # for AlexNet base model use: from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.AlexNet_config import cfg as network_cfg # for Pascal VOC 2007 data set use: from utils.configs.Pascal_config import cfg as dataset_cfg # for the Grocery data set use: from utils.configs.Grocery_config import cfg as dataset_cfg from utils.configs.Grocery_config import cfg as dataset_cfg return merge_configs( [detector_cfg, network_cfg, dataset_cfg, { 'DETECTOR': detector_name }])
def run_fasterrcnn_grocery_training(e2e): from FasterRCNN_eval import compute_test_set_aps from utils.config_helpers import merge_configs from FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Grocery_config import cfg as dataset_cfg cfg = merge_configs([detector_cfg, network_cfg, dataset_cfg]) cfg["CNTK"].FORCE_DETERMINISTIC = True cfg["CNTK"].DEBUG_OUTPUT = False cfg["CNTK"].MAKE_MODE = False cfg["CNTK"].FAST_MODE = False cfg.CNTK.E2E_MAX_EPOCHS = 3 cfg.CNTK.RPN_EPOCHS = 2 cfg.CNTK.FRCN_EPOCHS = 2 cfg.IMAGE_WIDTH = 400 cfg.IMAGE_HEIGHT = 400 cfg["CNTK"].TRAIN_E2E = e2e cfg.USE_GPU_NMS = False cfg.VISUALIZE_RESULTS = False cfg["DATA"].MAP_FILE_PATH = grocery_path externalData = 'CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY' in os.environ if externalData: extPath = os.environ['CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY'] model_file = os.path.join(extPath, "PreTrainedModels", "AlexNet", "v1", "AlexNet_ImageNet_Caffe.model") else: model_file = os.path.join(abs_path, *"../../../../PretrainedModels/AlexNet_ImageNet_Caffe.model".split("/")) from FasterRCNN_train import prepare, train_faster_rcnn np.random.seed(seed=3) prepare(cfg, False) cfg['BASE_MODEL_PATH'] = model_file trained_model = train_faster_rcnn(cfg) eval_results = compute_test_set_aps(trained_model, cfg) meanAP = np.nanmean(list(eval_results.values())) print('meanAP={}'.format(meanAP)) assert meanAP > 0.01 return trained_model, meanAP, cfg
def test_fastrcnnpy_grocery_training(device_id): if cntk_device(device_id).type() != DeviceKind_GPU: pytest.skip('test only runs on GPU') # it runs very slow in CPU try_set_default_device(cntk_device(device_id)) from utils.config_helpers import merge_configs from FastRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.Grocery_config import cfg as dataset_cfg cfg = merge_configs([detector_cfg, network_cfg, dataset_cfg]) cfg["CNTK"].FORCE_DETERMINISTIC = True cfg["CNTK"].DEBUG_OUTPUT = False cfg["CNTK"].MAKE_MODE = False cfg["CNTK"].FAST_MODE = False cfg["CNTK"].MAX_EPOCHS = 4 cfg.IMAGE_WIDTH = 600 cfg.IMAGE_HEIGHT = 600 cfg.NUM_ROI_PROPOSALS = 200 cfg.USE_GPU_NMS = False cfg.VISUALIZE_RESULTS = False cfg["DATA"].MAP_FILE_PATH = grocery_path externalData = 'CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY' in os.environ if externalData: extPath = os.environ['CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY'] cfg['BASE_MODEL_PATH'] = os.path.join(extPath, "PreTrainedModels", "AlexNet", "v1", "AlexNet_ImageNet_Caffe.model") else: cfg['BASE_MODEL_PATH'] = os.path.join(abs_path, *"../../../../PretrainedModels/AlexNet_ImageNet_Caffe.model".split("/")) from FastRCNN_train import prepare, train_fast_rcnn from FastRCNN_eval import compute_test_set_aps prepare(cfg, False) np.random.seed(seed=3) trained_model = train_fast_rcnn(cfg) eval_results = compute_test_set_aps(trained_model, cfg) meanAP = np.nanmean(list(eval_results.values())) print('meanAP={}'.format(meanAP)) assert meanAP > 0.01
def get_configuration(): from FasterRCNN_config import cfg as detector_cfg from utils.configs.VGG16_config import cfg as network_cfg from utils.configs.Custom_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def get_configuration(): from utils.config_helpers import merge_configs from FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from utils.configs.custom_image_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])
def set_vars(): global args parser = argparse.ArgumentParser() parser.add_argument('-c', '--config', help='Config file in YAML format', required=True, default=None) args = vars(parser.parse_args()) # trains and evaluates a Fast R-CNN model. if __name__ == '__main__': set_vars() yaml_config = cfg_from_file(args['config']) cfg = merge_configs([detector_cfg, yaml_config]) prepare(cfg, False) setup(cfg) cntk.device.try_set_default_device(cntk.device.gpu(cfg.GPU_ID)) # train and test trained_model = train_faster_rcnn(cfg) eval_results = compute_test_set_aps(trained_model, cfg) # write AP results to output for class_name in eval_results: print('AP for {:>15} = {:.4f}'.format(class_name, eval_results[class_name])) print('Mean AP = {:.4f}'.format(np.nanmean(list(eval_results.values())))) # copy trained model to specified location in config YAML file
def get_configuration_alexnet(): # load configs for detector, base network and data set from utils.configs.FasterRCNN_config import cfg as detector_cfg from utils.configs.AlexNet_config import cfg as network_cfg from user_config import cfg as dataset_cfg return merge_configs([detector_cfg, network_cfg, dataset_cfg])