Spaces:
Runtime error
Runtime error
File size: 1,383 Bytes
d02fd5f 4e4a30c 8ff40df d02fd5f 4e4a30c d02fd5f a2a302d d02fd5f 4e4a30c d02fd5f 4e4a30c d02fd5f 4e4a30c d02fd5f 4e4a30c d02fd5f 4e4a30c d02fd5f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
from fastai.vision.all import *
import gradio as gr
import cv2
classifier = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
def label_func(fname):
if int(str(fname)[str(fname).index('_')+1]) == 0:
return "Male"
return "Female"
def get_age(fname):
return int(str(fname).split('/')[1].split('_')[0])
def detect_face(img):
faces = classifier.detectMultiScale(img)
x, y, w, h = faces[0]
cropped_img = img[y:y+h, x:x+w]
return cropped_img
learn_gender = load_learner('gender.pkl')
learn_age = load_learner('age.pkl')
categories = ('Female', 'Male')
def predict_age(img):
detected_face = detect_face(img)
pred,_,_ = learn_age.predict(detected_face)
return str(pred[0]), detected_face
def classify_image(img):
pred, idx, probs = learn_gender.predict(img)
return dict(zip(categories, map(float, probs)))
def process_image(img):
gender = classify_image(img)
age, face = predict_age(img)
return gender, age, face
image = gr.inputs.Image(shape=(192,192))
gender_output = gr.outputs.Label()
age_output = gr.outputs.Textbox(label='Predicted Age')
detected_face_output = gr.outputs.Image(type='numpy', label='Detected Face')
examples = ['Male.jpg', 'Female.png']
iface = gr.Interface(fn=process_image, inputs=image, outputs=[gender_output, age_output, detected_face_output], examples=examples)
iface.launch() |