detect-bacteria / app.py
dbetm's picture
first version
1ac122c
import gradio as gr
from fastai.vision.all import load_learner
# PIL ANTES: 8.2.0
CATS_MAP = {
"eColi": "E. coli",
"staphylococcusAureus": "Staphylococcus aureus",
"streptococcusPyogenes": "Streptococcus pyogenes",
"pseudomonasAeruginosa": "Pseudomonas aeruginosa",
"salmonellaSpp": "Salmonella spp",
"klebsiellaPneumoniae": "Klebsiella pneumoniae",
"proteusMirabilis": "Proteus mirabilis",
"enterococcusFaecalis": "Enterococcus faecalis",
"lactobacillus": "Lactobacillus",
}
# load pre-trained model
model = load_learner("model.pkl")
# get classes name in right order
full_name_cats = [CATS_MAP[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 ("klebsiella.jpg", "enterococcus.jpg", "salmonella.jpg")
]
gui = gr.Interface(
fn=classify_image,
inputs=image,
outputs=label,
examples=examples,
title="Detect bacterias - first version",
description=(
f"Detect if the given Petri dish culture image belongs to one of those: ({full_name_cats})."
)
)
gui.launch(inline=False)