File size: 1,392 Bytes
1567d28
f383982
1567d28
 
d233fa7
 
 
 
 
 
1567d28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d233fa7
1567d28
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import gradio as gr
from transformers import ViTImageProcessor, ViTForImageClassification
from PIL import Image
import requests
hotdog_url = 'https://potatorolls.com/wp-content/uploads/2020/10/Basic-Hot-Dogs-960x640.jpg'
hotdog_image = Image.open(requests.get(hotdog_url, stream=True).raw)
muffin_url = "https://www.recipetineats.com/wp-content/uploads/2023/05/Up-and-go-breakfast-muffins_9.jpg"
muffin_image = Image.open(requests.get(muffin_url, stream=True).raw)
juice_url = "https://recipes.net/wp-content/uploads/2024/01/how-to-drink-fresh-juice-1705739043.jpg"
juice_image = Image.open(requests.get(juice_url, stream=True).raw)

def snacks_classifier(input_image):

    # Init model, transforms
    processor = ViTImageProcessor.from_pretrained('yangswei/snacks_classification')
    model = ViTForImageClassification.from_pretrained('yangswei/snacks_classification')

    # inputs & outputs
    inputs = processor(images=input_image, return_tensors="pt")
    outputs = model(**inputs).logits.softmax(1)
    labels = model.config.id2label
    confidences = {labels[i]: outputs[0][i].item() for i in range(len(labels))}

    return confidences

with gr.Blocks(theme=gr.themes.Base()) as demo:
    gr.Interface(fn=snacks_classifier, inputs="image", outputs=gr.Label(num_top_classes=20, label="Prediction"),
                 examples=[hotdog_image, muffin_image, juice_image])

demo.launch()