face_type / app.py
wyyadd's picture
update log
bc3e6ef
from io import BytesIO
from typing import Annotated
import gradio as gr
import numpy as np
from deepface import DeepFace
def get_face_type(file):
try:
attribute = DeepFace.analyze(
img_path=file,
actions=['age', 'gender'],
)
gender = attribute[0]['dominant_gender']
age = attribute[0]['age']
if gender == 'Man':
if age < 10:
face_type = 7
elif age < 20:
face_type = 3
elif age < 30:
face_type = 12
elif age < 40:
face_type = 1
elif age < 50:
face_type = 15
elif age < 60:
face_type = 5
elif age < 70:
face_type = 10
else:
face_type = 8
elif gender == 'Woman':
if age < 10:
face_type = 14
elif age < 20:
face_type = 0
elif age < 30:
face_type = 4
elif age < 40:
face_type = 6
elif age < 50:
face_type = 13
elif age < 60:
face_type = 2
elif age < 70:
face_type = 9
else:
face_type = 11
else:
return "Face could not be detected."
return f"face type:{face_type}---gender:{gender}---age:{age}"
except Exception as e:
print(e)
return f"Face could not be detected."
if __name__ == '__main__':
demo = gr.Interface(fn=get_face_type, inputs="image", outputs="label")
demo.launch(share=False)