def prepare_all():
    print("loading faceboxes model!!")
    faceboxes = FaceBoxesDetect(cfg)
    faceboxes.prepare()
    print('faceboxes loaded!!\n')

    print("prepare Arc model!!!")
    conf = get_config(False)
    conf.use_mobilfacenet = True

    learner = face_learner(conf, inference=True)
    learner.threshold = conf.threshold
    if conf.device.type == 'cpu':
        learner.load_state(conf, 'cpu_final.pth', True, True)
    else:
        learner.load_state(conf,
                           '0.884.pth',
                           from_save_folder=False,
                           model_only=True)
    learner.model.eval()
    print('Arc loaded\n')

    if conf.update:
        targets, names = prepare_facebank(conf,
                                          learner.model,
                                          faceboxes,
                                          tta=conf.tta)
        print('facebank updated')
    else:
        targets, names = load_facebank(conf)
        print('facebank loaded')
    return conf, faceboxes, learner, targets, names
示例#2
0
def prepare_arc(): 
    conf = get_config(False)
    conf.use_mobilfacenet = True

    learner = face_learner(conf, inference=True)
    learner.threshold = conf.threshold
    learner.load_state(conf, conf.arc_model, from_save_folder=False, model_only=True)
    
    learner.model.eval()
    print('Arc loaded\n')

    print('begin load facebank!')
    targets, names = load_facebank(conf)
    print('facebank loaded')
    return conf, learner, targets, names
                        default=96,
                        type=int)
    parser.add_argument("-w",
                        "--num_workers",
                        help="workers number",
                        default=3,
                        type=int)
    parser.add_argument("-d",
                        "--data_mode",
                        help="use which database, [vgg, ms1m, emore, concat]",
                        default='emore',
                        type=str)
    args = parser.parse_args()

    conf = get_config()

    if args.net_mode == 'mobilefacenet':
        conf.use_mobilfacenet = True
    else:
        conf.net_mode = args.net_mode
        conf.net_depth = args.net_depth

    conf.lr = args.lr
    conf.batch_size = args.batch_size
    conf.num_workers = args.num_workers
    conf.data_mode = args.data_mode
    learner = face_learner(conf)

    log_lrs, losses = learner.find_lr(conf)
    learner.train(conf, args.epochs)
示例#4
0
                        "--update",
                        help="whether perform update the facebank",
                        action="store_true")
    parser.add_argument("-tta",
                        "--tta",
                        help="whether test time augmentation",
                        action="store_true")

    args = parser.parse_args()

    conf = get_config(False)

    mtcnn = MTCNN()
    print('mtcnn loaded')

    learner = face_learner(conf, True)
    learner.threshold = args.threshold
    if conf.device.type == 'cpu':
        learner.load_state(conf, 'cpu_final.pth', False, True)
    else:
        learner.load_state(conf, 'final.pth', False, True)
    learner.model.eval()
    print('learner loaded')

    if args.update:
        # for path in conf.facebank_path.iterdir():
        targets, names = prepare_facebank(conf,
                                          learner.model,
                                          mtcnn,
                                          tta=args.tta)
        print('facebank updated')