dbetm's picture
add title and description
6b4d04d
import gradio as gr
from fastai.vision.all import load_learner
CATS_MAP = {
"picasso": "Pablo Picasso",
"vanGogh": "Vincent van Gogh",
"dali": "Salvador Dalí",
"daVinci": "Leonardo da Vinci",
"rembrandt": "Rembrandt",
}
CATS_MAP_V2 = {
"picasso": "Pablo Picasso",
"vanGogh": "Vincent van Gogh",
"dali": "Salvador Dalí",
"daVinci": "Leonard da Vinci",
"rembrandt": "Rembrandt",
"monet": "Claude Monet",
"caruso": "Santiago Caruso",
"renoir": "Pierre-Auguste Renoir",
"oKeeffe": "Georgia O’Keeffe",
"krasner": "Lee Krasner",
}
# load pre-trained model
model = load_learner("model_v2.pkl")
# get classes name in right order
full_name_cats = [CATS_MAP_V2[key_class] for key_class in model.dls.vocab]
def classify_image(img) -> dict:
category, idx, probs = model.predict(img)
return dict(zip(full_name_cats, map(float, probs)))
# Gradio control
image = gr.inputs.Image(shape=(224, 224))
label = gr.outputs.Label(num_top_classes=4)
examples = [
f"images_examples/{filename}"
for filename in ("mona_lisa.jpg", "starry_night.jpg", "persistence_memory.jpg")
]
gui = gr.Interface(
fn=classify_image,
inputs=image,
outputs=label,
examples=examples,
title="Detect the painter",
description=(
f"Detect if the given painting image is by a famous painter ({full_name_cats})."
)
)
gui.launch(inline=False)