CoolFace
Apppublic

hugginglearners/Multi-Object-Classification

sourceHugging Faceapache-2.0updated 4y agoView on Hugging Face
8likes
app.py44 linesDownload Raw Back to root
1import math
2import numpy as np
3import pandas as pd
4
5import gradio as gr
6from huggingface_hub import from_pretrained_fastai
7from fastai.vision.all import *
8
9
10def get_x(x):
11    return pascal_source/"train"/f'{x[0]}'
12
13def get_y(x):
14    return x[1].split(' ')
15
16pascal_source = '.'
17EXAMPLES_PATH = Path('./examples')
18repo_id = "hugginglearners/multi-object-classification"
19
20learner = from_pretrained_fastai(repo_id)
21labels = learner.dls.vocab
22
23def infer(img):
24    img = PILImage.create(img)
25    _pred, _pred_w_idx, probs = learner.predict(img)
26    # gradio doesn't support tensors, so converting to float
27    labels_probs = {labels[i]: float(probs[i]) for i, _ in enumerate(labels)}
28    return labels_probs
29    # return f"This grapevine leave is {_pred} with {100*probs[torch.argmax(probs)].item():.2f}% probability"
30
31# get the inputs
32inputs = gr.inputs.Image(shape=(192, 192))
33
34# the app outputs two segmented images
35output = gr.outputs.Label(num_top_classes=3)
36# it's good practice to pass examples, description and a title to guide users
37title = 'Multilabel Image classification'
38description = 'Detect which type of object appearing in the image'
39article = "Author: <a href=\"https://huggingface.co/geninhu\">Nhu Hoang</a>. "
40examples = [f'{EXAMPLES_PATH}/{f.name}' for f in EXAMPLES_PATH.iterdir()]
41
42gr.Interface(infer, inputs, output, examples= examples, allow_flagging='never',
43             title=title, description=description, article=article, live=False).launch(enable_queue=True, debug=False, inbrowser=False)
44