File size: 2,560 Bytes
caf6be1
 
 
 
 
 
4f94c4a
caf6be1
 
 
 
4f94c4a
 
 
 
 
 
 
 
 
caf6be1
4f94c4a
caf6be1
 
 
 
70e5abd
 
b4bd918
e57b948
94c8d66
fb0b4f0
5c87807
b4bd918
7f9320e
 
 
 
b4bd918
 
e57b948
b4bd918
94c8d66
e57b948
052354a
98af2c3
 
 
 
 
 
4f94c4a
98af2c3
 
 
 
a78c9cf
 
5c87807
 
d5f7570
 
 
 
 
70e5abd
8129089
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import torch

model = torch.hub.load('pytorch/vision:v0.6.0', 'resnet18', pretrained=True).eval()


import requests
import PIL
from torchvision import transforms

# Download human-readable labels for ImageNet.
response = requests.get("https://git.io/JJkYN")
labels   = response.text.split("\n")

def classify_image(image_filepath):
  PIL_image     = PIL.Image.open(image_filepath).convert('RGB')
  transformations = transforms.Compose([
    transforms.Resize(size = (224,224)),
    transforms.ToTensor(),
  ])
  image_tensors = transformations(PIL_image).unsqueeze(0)
  with torch.no_grad():
    prediction = torch.nn.functional.softmax(model(image_tensors)[0], dim=0)
    confidences = {labels[i]: float(prediction[i]) for i in range(1000)}
  return confidences


import gradio as gr

def welcome(name, model_details):
    return f"Your model details are: {model_details}"

with gr.Blocks(title="Image Classification for 1000 Objects", css=".gradio-container {background:#FFD1DC;}") as demo:
    gr.HTML("""<div style="font-family:'Calibri', 'Serif'; font-size:16pt; font-weight:bold; text-align:center; color:black;">Image Classification for 1000 Objects</div>""")
    
    gr.Markdown(
    """
    # Welcome to Image Classification Demo
    Start typing below to see the output.
    """
    )
    
    inp_model_details = gr.Textbox(placeholder="Enter model details")
    out = gr.Textbox()
    inp_name.change( inp_model_details, welcome, out)
    
    
    with gr.Row(): 
        input_image  = gr.Image(type="filepath", image_mode="L")        
        output_label = gr.Label(label="Probabilities", num_top_classes=3)
    
    send_btn = gr.Button("Infer")
    send_btn.click(fn=classify_image, inputs=input_image, outputs=output_label)
    
    with gr.Row():
        gr.Examples(['./lion.jpg']   , label='Sample images : Lion', inputs=input_image)
        gr.Examples(['./cheetah.jpg'], label='Cheetah'             , inputs=input_image)
        gr.Examples(['./eagle.jpg'], label='Eagle'             , inputs=input_image)
        gr.Examples(['./indigobird.jpg'], label='Indigo Bird'             , inputs=input_image)
        gr.Examples(['./aircraftcarrier.jpg'], label='Aircraft Carrier'             , inputs=input_image)
        gr.Examples(['./acousticguitar.jpg'], label='Acoustic Guitar'             , inputs=input_image)

# gr.Interface(fn=predict,
#              inputs=gr.Image(type="pil"),
#              outputs=gr.Label(num_top_classes=3),
#              examples=["lion.jpg", "cheetah.jpg"]).launch()

demo.launch(debug=True, share=True)