|
import gradio as gr |
|
from fastai.vision.all import * |
|
import skimage |
|
import pathlib |
|
import pandas as pd |
|
|
|
plt = platform.system() |
|
if plt == 'Linux': pathlib.WindowsPath = pathlib.PosixPath |
|
title = "Face condition Analyzer" |
|
description = "A face condition detector trained on the custom dataset with fastai. Created using Gradio and HuggingFace Spaces." |
|
examples = [['harmonal_acne.jpg'],['forehead_wrinkles.jpg'],['oily_skin.jpg']] |
|
enable_queue=True |
|
|
|
with gr.Blocks(title=title,description=description,examples=examples,enable_queue=enable_queue) as demo: |
|
learn = load_learner('export.pkl') |
|
labels = learn.dls.vocab |
|
def predict(img): |
|
img = PILImage.create(img) |
|
pred,pred_idx,probs = learn.predict(img) |
|
return {labels[i]: float(probs[i]) for i in range(len(labels))} |
|
gr.Markdown("# Face Skin Analyzer") |
|
gr.Markdown("A face condition detector trained on the custom dataset with fastai. Created using Gradio and HuggingFace Spaces. Kindly upload a photo of your face.") |
|
with gr.Row(): |
|
inputs = gr.inputs.Image(shape=(512, 512)) |
|
outputs = gr.outputs.Label(num_top_classes=3) |
|
btn = gr.Button("Predict") |
|
btn.click(fn=predict, inputs=inputs, outputs=outputs) |
|
|
|
df=pd.read_excel("recommendation.xlsx") |
|
classes = df['class'].unique() |
|
with gr.Accordion("Find your skin condition using above analyzer and see the Recommended solutions",open=True): |
|
for c in classes: |
|
with gr.Accordion(c,open=False): |
|
df_temp = df[df['class']==c] |
|
with gr.Row(): |
|
for i,current_row in df_temp.iterrows(): |
|
with gr.Column(): |
|
html_box = gr.HTML("<a href='{}'><img src ='{}'></a>".format(current_row['profit_link'],current_row['product_image'])) |
|
demo.launch() |