Esempio n. 1
0
        if config.DATASET == 'IOG':
            # load Label Encoder and mean files
            print('[INFO] loading label encoders and mean files...')
            age_le = pickle.loads(open(deploy.AGE_LABEL_ENCODER, 'rb').read())
            gender_le = pickle.loads(open(deploy.GENDER_LABEL_ENCODER, 'rb').read())
            age_means = json.loads(open(deploy.AGE_MEAN).read())
            gender_means = json.loads(open(deploy.GENDER_MEAN).read())

            # initialize image preprocessors
            age_mp = MeanPreprocessor(age_means['R'], age_means['G'], age_means['B'])
            gender_mp = MeanPreprocessor(gender_means['R'], gender_means['G'], gender_means['B'])

            age_preds, gender_preds = predict(face, sp, age_mp, gender_mp, cp, iap, deploy.AGE_NETWORK_PATH, deploy.GENDER_NETWORK_PATH, age_le, gender_le)

            # visualize age and gender predictions
            age_canvas = AgeGenderHelper.visualize_age(age_preds, age_le)
            gender_canvas = AgeGenderHelper.visualize_gender(gender_preds, gender_le)
            
        elif config.DATASET == 'ADIENCE':
            # age_preds_cross, gender_preds_cross = [], []

            i = 0
            # load Label Encoder and mean files
            print(f'[INFO] loading label encoders and mean files for cross validation {i}...')
            age_le = pickle.loads(open(deploy.AGE_LABEL_ENCODERS[i], 'rb').read())
            gender_le = pickle.loads(open(deploy.GENDER_LABEL_ENCODERS[i], 'rb').read())
            age_means = json.loads(open(deploy.AGE_MEANS[i]).read())
            gender_means = json.loads(open(deploy.GENDER_MEANS[i]).read())

            # initialize image preprocessors
            age_mp = MeanPreprocessor(age_means['R'], age_means['G'], age_means['B'])
Esempio n. 2
0
        # detect faces in grayscale image
        rects = detector(gray, 1)

        # loop over face detections
        for rect in rects:
            # determine facial landmarks for face region, then align face
            shape = predictor(gray, rect)
            face = fa.align(image, gray, rect)

            age_preds, gender_preds = prediction(config, face, sp, age_mp,
                                                 gender_mp, cp, age_model,
                                                 gender_model)

            # visualize age and gender predictions
            age_canvas = agh.visualize_age(age_preds, age_le)
            gender_canvas = agh.visualize_gender(gender_preds, gender_le)

            # draw bounding box around face
            clone = image.copy()
            x, y, w, h = face_utils.rect_to_bb(rect)
            cv2.rectangle(clone, (x, y), (x + w, y + h), (0, 255, 0), 2)

            # show output iamge
            cv2.imshow('Input', clone)
            cv2.imshow('Face', face)
            cv2.imshow('Age Probabilities', age_canvas)
            cv2.imshow('Gender Probabilities', gender_canvas)
            cv2.waitKey(0)

elif 'ADIENCE' in config.DATASET: