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)
|