Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from PIL import Image | |
from tensorflow.keras import models | |
from tensorflow.keras.preprocessing.image import load_img | |
import tensorflow as tf | |
from hugsvision.inference.TorchVisionClassifierInference import TorchVisionClassifierInference | |
models_name = [ | |
"VGG16", | |
"DenseNet121", | |
"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): | |
# model create by keras | |
if model_name == "DenseNet": | |
image = np.array(image) / 255 | |
image = np.expand_dims(image, axis=0) | |
model = model = models.load_model("./models/" + model_name + "/model.h5") | |
pred = model.predict(image) | |
pred = dict((labels[i], "%.2f" % pred[0][i]) for i in range(len(labels))) | |
# model create by HugsVision | |
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/" + p + ".jpg"] for p in labels] | |
interface = gr.Interface( | |
fn=predict_image, | |
inputs=[image, radio], | |
outputs=label, | |
capture_session=True, | |
allow_flagging=False, | |
title="🦈 Shark image classifier", | |
description="Made with HugsVision & ❤️", | |
examples=samples, | |
theme=None | |
) | |
interface.launch() |