Esempio n. 1
0
def alternate_train(args, ctx, pretrained, epoch, rpn_epoch, rcnn_epoch):
    # set up logger
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)

    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    logging.info('########## TRAIN RPN WITH IMAGENET INIT')
    train_rpn(args, ctx, pretrained, epoch, 'model/rpn1', begin_epoch, rpn_epoch)

    logging.info('########## GENERATE RPN DETECTION')
    test_rpn(args, ctx[0], 'model/rpn1', rpn_epoch)

    logging.info('########## TRAIN RCNN WITH IMAGENET INIT AND RPN DETECTION')
    train_rcnn(args, ctx, pretrained, epoch, 'model/rcnn1', begin_epoch, rcnn_epoch)

    logging.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args, ctx, 'model/rcnn1', rcnn_epoch, 'model/rpn2', begin_epoch, rpn_epoch,
              finetune=True)

    logging.info('########## GENERATE RPN DETECTION')
    test_rpn(args, ctx[0], 'model/rpn2', rpn_epoch)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn1', rcnn_epoch, 'model/rcnn2', 0)

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_rcnn(args, ctx, 'model/rcnn2', 0, 'model/rcnn2', begin_epoch, rcnn_epoch,
               finetune=True)

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn2', rcnn_epoch, 'model/final', 0)
Esempio n. 2
0
def alternate_train(args, ctx, pretrained, epoch,
                    rpn_epoch, rpn_lr, rpn_lr_step,
                    rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    # basic config
    begin_epoch = 8
    config.TRAIN.BG_THRESH_LO = 0.0

    # model path
    model_path = args.prefix
    '''
    logging.info('########## TRAIN RPN WITH IMAGENET INIT')
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, pretrained, epoch, model_path+'/rpn1', begin_epoch, rpn_epoch,
              train_shared=False, lr=rpn_lr, lr_step=rpn_lr_step)
    
    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], model_path+'/rpn1', rpn_epoch,
                 vis=False, shuffle=False, thresh=0)
    '''
    '''
    logging.info('########## TRAIN RCNN WITH IMAGENET INIT AND RPN DETECTION')
    train_maskrcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, pretrained, epoch, model_path+'/rcnn1', begin_epoch, rcnn_epoch,
               train_shared=False, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn', maskrcnn_stage='rcnn1')
    '''
    logging.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, model_path+'/rcnn1', rcnn_epoch, model_path+'/rpn2', begin_epoch, rpn_epoch,
              train_shared=True, lr=rpn_lr, lr_step=rpn_lr_step)

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], model_path+'/rpn2', rpn_epoch,
                 vis=False, shuffle=False, thresh=0)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model(model_path+'/rpn2', rpn_epoch, model_path+'/rcnn1', rcnn_epoch, model_path+'/rcnn2', 0)

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_maskrcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, model_path+'/rcnn2', 0, model_path+'/rcnn2', begin_epoch, rcnn_epoch,
               train_shared=True, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn', maskrcnn_stage='rcnn2')

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model(model_path+'/rpn2', rpn_epoch, model_path+'/rcnn2', rcnn_epoch, model_path+'/final', 0)
Esempio n. 3
0
def alternate_train(args, ctx, pretrained, epoch, rpn_epoch, rpn_lr,
                    rpn_lr_step, rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    # logging.basicConfig(filename="mask_rcnn_alternate_train_%d.log" % int(time.time()))
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    # model path
    model_path = args.prefix

    logging.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args.network,
              args.dataset,
              args.image_set,
              args.root_path,
              args.dataset_path,
              args.frequent,
              args.kvstore,
              args.work_load_list,
              args.no_flip,
              args.no_shuffle,
              args.resume,
              ctx,
              model_path + '/rcnn1',
              rcnn_epoch,
              model_path + '/rpn2',
              begin_epoch,
              rpn_epoch,
              train_shared=True,
              lr=rpn_lr,
              lr_step=rpn_lr_step)

    os.environ['MXNET_CUDNN_AUTOTUNE_DEFAULT'] = '1'

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network,
                 args.dataset,
                 image_set,
                 args.root_path,
                 args.dataset_path,
                 ctx,
                 model_path + '/rpn2',
                 rpn_epoch,
                 vis=False,
                 shuffle=False,
                 thresh=0)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model(model_path + '/rpn2', rpn_epoch, model_path + '/rcnn1',
                  rcnn_epoch, model_path + '/rcnn2', 0)
Esempio n. 4
0
def alternate_train(args, ctx, pretrained, epoch,
                    rpn_epoch, rpn_lr, rpn_lr_step,
                    rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)

    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    logging.info('########## TRAIN RPN WITH IMAGENET INIT')
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, pretrained, epoch, 'model/rpn1', begin_epoch, rpn_epoch,
              train_shared=False, lr=rpn_lr, lr_step=rpn_lr_step)

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], 'model/rpn1', rpn_epoch,
                 vis=False, shuffle=False, thresh=0)

    logging.info('########## TRAIN RCNN WITH IMAGENET INIT AND RPN DETECTION')
    train_rcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, pretrained, epoch, 'model/rcnn1', begin_epoch, rcnn_epoch,
               train_shared=False, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn')

    logging.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, 'model/rcnn1', rcnn_epoch, 'model/rpn2', begin_epoch, rpn_epoch,
              train_shared=True, lr=rpn_lr, lr_step=rpn_lr_step)

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], 'model/rpn2', rpn_epoch,
                 vis=False, shuffle=False, thresh=0)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn1', rcnn_epoch, 'model/rcnn2', 0)

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_rcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, 'model/rcnn2', 0, 'model/rcnn2', begin_epoch, rcnn_epoch,
               train_shared=True, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn')

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn2', rcnn_epoch, 'model/final', 0)
Esempio n. 5
0
def alternate_train(args, ctx, pretrained, epoch,
                    rpn_epoch, rpn_lr, rpn_lr_step,
                    rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    logger.info('########## TRAIN RPN WITH IMAGENET INIT')
    """
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, pretrained, epoch, 'model/rpn1', begin_epoch, rpn_epoch,
              train_shared=False, lr=rpn_lr, lr_step=rpn_lr_step)
    """

    logger.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], 'model/blouse', 0,
                 vis=True, shuffle=False, thresh=0.97)

    logger.info('########## TRAIN RCNN WITH IMAGENET INIT AND RPN DETECTION')
    train_rcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, pretrained, epoch, 'model/rcnn1', begin_epoch, rcnn_epoch,
               train_shared=False, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn')

    logger.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
              args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
              ctx, 'model/rcnn1', rcnn_epoch, 'model/rpn2', begin_epoch, rpn_epoch,
              train_shared=True, lr=rpn_lr, lr_step=rpn_lr_step)

    logger.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network, args.dataset, image_set, args.root_path, args.dataset_path,
                 ctx[0], 'model/rpn2', rpn_epoch,
                 vis=False, shuffle=False, thresh=0)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn1', rcnn_epoch, 'model/rcnn2', 0)

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_rcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
               args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
               ctx, 'model/rcnn2', 0, 'model/rcnn2', begin_epoch, rcnn_epoch,
               train_shared=True, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn')

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn2', rcnn_epoch, 'model/final', 0)
def alternate_combine(args, ctx, pretrained, epoch, rpn_epoch, rpn_lr,
                      rpn_lr_step, rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    # model path
    model_path = args.prefix

    try:
        logger.info('########## COMBINE RPN1 WITH RCNN1')
        logger.info('rpn_epoch %d, rcnn_epoch %d' % (rpn_epoch, rcnn_epoch))
        combine_model(model_path + '/rpn1', rpn_epoch, model_path + '/rcnn1',
                      rcnn_epoch, model_path + '/pre', 0)

        logger.info('########## COMBINE RPN2 WITH RCNN1')
        combine_model(model_path + '/rpn2', rpn_epoch, model_path + '/rcnn1',
                      rcnn_epoch, model_path + '/rcnn2', 0)

        logger.info('########## COMBINE RPN2 WITH RCNN2')
        combine_model(model_path + '/rpn1', rpn_epoch, model_path + '/rcnn1',
                      rcnn_epoch, model_path + '/final', 0)
    except:
        print("Didn't finish training")
def alternate_train(args, ctx, pretrained, epoch,
                    rpn_epoch, rpn_lr, rpn_lr_step,
                    rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    # logging.basicConfig(filename="mask_rcnn_alternate_train_%d.log" % int(time.time()))
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    # model path
    model_path = args.prefix

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_maskrcnn(args.network, args.dataset, args.image_set, args.root_path, args.dataset_path,
                   args.frequent, args.kvstore, args.work_load_list, args.no_flip, args.no_shuffle, args.resume,
                   ctx, model_path + '/rcnn2', 0, model_path + '/rcnn2', begin_epoch, rcnn_epoch,
                   train_shared=True, lr=rcnn_lr, lr_step=rcnn_lr_step, proposal='rpn', maskrcnn_stage='rcnn2')

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model(model_path + '/rpn2', rpn_epoch, model_path + '/rcnn2', rcnn_epoch, model_path + '/final', 0)
Esempio n. 8
0
def alternate_train(args, ctx, pretrained, epoch, rpn_epoch, rpn_lr,
                    rpn_lr_step, rcnn_epoch, rcnn_lr, rcnn_lr_step):
    # set up logger
    logging.basicConfig()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)

    # basic config
    begin_epoch = 0
    config.TRAIN.BG_THRESH_LO = 0.0

    logging.info('########## TRAIN RPN WITH IMAGENET INIT')
    train_rpn(args.network,
              args.dataset,
              args.image_set,
              args.root_path,
              args.dataset_path,
              args.frequent,
              args.kvstore,
              args.work_load_list,
              args.no_flip,
              args.no_shuffle,
              args.resume,
              ctx,
              pretrained,
              epoch,
              'model/rpn1',
              begin_epoch,
              rpn_epoch,
              train_shared=False,
              lr=rpn_lr,
              lr_step=rpn_lr_step,
              use_data_augmentation=args.use_data_augmentation)

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network,
                 args.dataset,
                 image_set,
                 args.root_path,
                 args.dataset_path,
                 ctx[0],
                 'model/rpn1',
                 rpn_epoch,
                 vis=False,
                 shuffle=False,
                 thresh=0)

    logging.info('########## TRAIN RCNN WITH IMAGENET INIT AND RPN DETECTION')
    train_rcnn(args.network,
               args.dataset,
               args.image_set,
               args.root_path,
               args.dataset_path,
               args.frequent,
               args.kvstore,
               args.work_load_list,
               args.no_flip,
               args.no_shuffle,
               args.resume,
               ctx,
               pretrained,
               epoch,
               'model/rcnn1',
               begin_epoch,
               rcnn_epoch,
               train_shared=False,
               lr=rcnn_lr,
               lr_step=rcnn_lr_step,
               proposal='rpn',
               use_data_augmentation=args.use_data_augmentation,
               use_global_context=args.use_global_context,
               use_roi_align=args.use_roi_align)

    logging.info('########## TRAIN RPN WITH RCNN INIT')
    train_rpn(args.network,
              args.dataset,
              args.image_set,
              args.root_path,
              args.dataset_path,
              args.frequent,
              args.kvstore,
              args.work_load_list,
              args.no_flip,
              args.no_shuffle,
              args.resume,
              ctx,
              'model/rcnn1',
              rcnn_epoch,
              'model/rpn2',
              begin_epoch,
              rpn_epoch,
              train_shared=True,
              lr=rpn_lr,
              lr_step=rpn_lr_step,
              use_data_augmentation=args.use_data_augmentation)

    logging.info('########## GENERATE RPN DETECTION')
    image_sets = [iset for iset in args.image_set.split('+')]
    for image_set in image_sets:
        test_rpn(args.network,
                 args.dataset,
                 image_set,
                 args.root_path,
                 args.dataset_path,
                 ctx[0],
                 'model/rpn2',
                 rpn_epoch,
                 vis=False,
                 shuffle=False,
                 thresh=0)

    logger.info('########## COMBINE RPN2 WITH RCNN1')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn1', rcnn_epoch,
                  'model/rcnn2', 0)

    logger.info('########## TRAIN RCNN WITH RPN INIT AND DETECTION')
    train_rcnn(args.network,
               args.dataset,
               args.image_set,
               args.root_path,
               args.dataset_path,
               args.frequent,
               args.kvstore,
               args.work_load_list,
               args.no_flip,
               args.no_shuffle,
               args.resume,
               ctx,
               'model/rcnn2',
               0,
               'model/rcnn2',
               begin_epoch,
               rcnn_epoch,
               train_shared=True,
               lr=rcnn_lr,
               lr_step=rcnn_lr_step,
               proposal='rpn',
               use_data_augmentation=args.use_data_augmentation,
               use_global_context=args.use_global_context,
               use_roi_align=args.use_roi_align)

    logger.info('########## COMBINE RPN2 WITH RCNN2')
    combine_model('model/rpn2', rpn_epoch, 'model/rcnn2', rcnn_epoch,
                  'model/final', 0)