import gradio as gr
from fastai.learner import load_learner
from fastai.vision.core import PILImage
learn_inf = load_learner("recycling_classifier_12class.pkl")
categories = learn_inf.dls.vocab
def classify_image(img):
pred, idx, probs = learn_inf.predict(img)
return {categories[i]: float(probs[i]) for i in range(len(categories))}
title = "Recycling Waste Classifier (12 Classes)"
description = (
"Upload a photo of waste and the model will classify it as one of: "
+ ", ".join(categories)
+ ".
Powered by fastai + Gradio.
"
"Example classes: battery, biological, brown-glass, cardboard, clothes, green-glass, metal, paper, plastic, shoes, trash, white-glass."
)
gr.Interface(
fn=classify_image,
inputs=gr.Image(type="pil"),
outputs=gr.Label(num_top_classes=3),
title=title,
description=description,
allow_flagging="never"
).launch()