Spaces:
Runtime error
Runtime error
Upload app.py
Browse files
app.py
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from huggingface_hub import from_pretrained_keras
|
3 |
+
import numpy as np
|
4 |
+
|
5 |
+
reloaded_model = from_pretrained_keras('jmparejaz/Facial_Age-gender-eth_Recognition')
|
6 |
+
reloaded_model_eth = from_pretrained_keras('jmparejaz/Facial_eth_recognition')
|
7 |
+
|
8 |
+
def rgb2gray(rgb):
|
9 |
+
return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
|
10 |
+
|
11 |
+
|
12 |
+
def predict_model(x_, model_1, model_2):
|
13 |
+
pred = model_1.predict(X_test.reshape(x_.shape[0], 48, 48, 1))
|
14 |
+
pred_eth=model_2.predict(x_.reshape(x_.shape[0], 48, 48, 1))
|
15 |
+
pred_gender=[round(pred[0][x][0]) for x in range(x_.shape[0])]
|
16 |
+
pred_age=[round(pred[1][x][0]) for x in range(x_.shape[0])]
|
17 |
+
pred_eth=[np.argmax(pred_eth[x]) for x in range(x_.shape[0])]
|
18 |
+
|
19 |
+
return pred_gender, pred_age, pred_eth
|
20 |
+
|
21 |
+
|
22 |
+
def image_classifier(input_img):
|
23 |
+
gray=rgb2gray(input_img)
|
24 |
+
g,a,e=predict_model(gray.reshape(1, 48, 48, 1),reloaded_model,reloaded_model_eth)
|
25 |
+
|
26 |
+
dict_gender={ 0: 'Male', 1:'Female'}
|
27 |
+
g=dict_gender[g]
|
28 |
+
dict_eth={0:"White", 1:"Black", 2:"Asian", 3:"Indian", 4:"Hispanic"}
|
29 |
+
e=dict_eth[e]
|
30 |
+
return ("The predicted gender is {} , predicted age is {} and the predicted ethnicity is {}".format(g,a,e))
|
31 |
+
|
32 |
+
|
33 |
+
|
34 |
+
|
35 |
+
iface = gr.Interface(
|
36 |
+
image_classifier,
|
37 |
+
gr.inputs.Image(shape=(48, 48),),
|
38 |
+
outputs=['text']
|
39 |
+
capture_session=True,
|
40 |
+
interpretation="default",
|
41 |
+
)
|
42 |
+
|
43 |
+
if __name__ == "__main__":
|
44 |
+
iface.launch(share=True)
|