import gradio as gr import tensorflow as tf import numpy as np from tensorflow.keras.models import load_model import tensorflow_addons as tfa import os import numpy as np # labels= {'Burger King': 0, 'KFC': 1,'McDonalds': 2,'Other': 3,'Starbucks': 4,'Subway': 5} HEIGHT,WIDTH=224,224 NUM_CLASSES=6 model=load_model('best_model.h5') # def classify_image(inp): # np.random.seed(143) # inp = inp.reshape((-1, HEIGHT,WIDTH, 3)) # inp = tf.keras.applications.nasnet.preprocess_input(inp) # prediction = model.predict(inp) # ###label = dict((v,k) for k,v in labels.items()) # predicted_class_indices=np.argmax(prediction,axis=1) # result = {} # for i in range(len(predicted_class_indices)): # if predicted_class_indices[i] < NUM_CLASSES: # result[labels[predicted_class_indices[i]]]= float(predicted_class_indices[i]) # return result def classify_image(inp): np.random.seed(143) labels = {'Burger King': 0, 'KFC': 1, 'McDonalds': 2, 'Other': 3, 'Starbucks': 4, 'Subway': 5} NUM_CLASSES = 6 inp = inp.reshape((-1, HEIGHT, WIDTH, 3)) inp = tf.keras.applications.nasnet.preprocess_input(inp) prediction = model.predict(inp) predicted_class_indices = np.argmax(prediction, axis=1) result = {} # for i in range(len(predicted_class_indices)): # if predicted_class_indices[i] < NUM_CLASSES: # try: # label = labels[predicted_class_indices[i]] # result[label] = float(predicted_class_indices[i]) # except KeyError: # print(f"KeyError: Label not found for index {predicted_class_indices[i]}") label_order = ["Burger King", "KFC", "McDonalds", "Other", "Starbucks", "Subway"] # Assuming prediction is a dictionary with label keys result = [f"{label}: {prediction[label]:.2f}" for label in label_order] return ", ".join(result) # result = [f"{label}: {prediction:.2f}" for label, prediction in labels.items()] # return ", ".join(result) image = gr.Image(shape=(HEIGHT,WIDTH),label='Input') label = gr.Textbox() gr.Interface(fn=classify_image, inputs=image, outputs=label, title='Brand Logo Detection').launch(debug=False)