Exemplo n.º 1
0
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])
Exemplo n.º 3
0
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
        }])
Exemplo n.º 4
0
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])
Exemplo n.º 5
0
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])
Exemplo n.º 6
0
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])
Exemplo n.º 7
0
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])
Exemplo n.º 8
0
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
        }])
Exemplo n.º 9
0
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
        }])
Exemplo n.º 10
0
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}])
Exemplo n.º 11
0
    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'
            }
        ])
Exemplo n.º 12
0
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'
        }])
Exemplo n.º 13
0
 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
Exemplo n.º 14
0
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}])
Exemplo n.º 15
0
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
Exemplo n.º 16
0
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'
        }])
Exemplo n.º 17
0
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
Exemplo n.º 18
0
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 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
        }])
Exemplo n.º 21
0
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
Exemplo n.º 22
0
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
Exemplo n.º 23
0
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])
Exemplo n.º 24
0
 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])
Exemplo n.º 25
0
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])