Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
import tensorflow as tf | |
from hugsvision.inference.TorchVisionClassifierInference import TorchVisionClassifierInference | |
models_name = [ | |
"VGG16", | |
"mobilenet_v2", | |
"DenseNet" | |
] | |
# open categories.txt in read mode | |
categories = open("categories.txt", "r") | |
labels = categories.readline().split(";") | |
# create a radio | |
radio = gr.inputs.Radio(models_name, default="DenseNet", type="value") | |
def predict_image(image, model_name): | |
print("======================") | |
print(type(image)) | |
print(type(model_name)) | |
print("==========") | |
print(image) | |
print(model_name) | |
print("======================") | |
if model_name == "DenseNet": | |
image = np.array(image) / 255 | |
image = np.expand_dims(image, axis=0) | |
model = "./models/" + model_name + "model.h5" | |
pred = model.predict(image) | |
pred = dict((labels[i], "%.2f" % pred[0][i]) for i in range(len(labels))) | |
else: | |
image = Image.fromarray(np.uint8(image)).convert('RGB') | |
classifier = TorchVisionClassifierInference( | |
model_path = "./models/" + model_name | |
) | |
pred = classifier.predict_image(img=image, return_str=False) | |
for key in pred.keys(): | |
pred[key] = pred[key]/100 | |
print(pred) | |
return pred | |
image = gr.inputs.Image(shape=(300, 300), label="Upload Your Image Here") | |
label = gr.outputs.Label(num_top_classes=len(labels)) | |
samples = ['samples/basking.jpg', 'samples/blacktip.jpg', 'samples/blue.jpg', 'samples/bull.jpg', 'samples/hammerhead.jpg', | |
'samples/lemon.jpg', 'samples/mako.jpg', 'samples/nurse.jpg', 'samples/sand tiger.jpg', 'samples/thresher.jpg', | |
'samples/tigre.jpg', 'samples/whale.jpg', 'samples/white.jpg', 'samples/whitetip.jpg'] | |
interface = gr.Interface( | |
fn=predict_image, | |
inputs=image, | |
outputs=label, | |
capture_session=True, | |
allow_flagging=False, | |
examples=samples | |
) | |
interface.launch() |