Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| from PIL import Image | |
| import cv2 | |
| import time | |
| import skops.io as sio | |
| def single_image(image,mode): | |
| img = image.resize((128, 128)) | |
| if mode=="rgb": | |
| return np.array(img).flatten() | |
| elif mode=="hsv": | |
| return np.array(img.convert('HSV')).flatten() | |
| else: | |
| kmeans = sio.load('Models/kmeans.skops') | |
| num_clusters=kmeans.n_clusters | |
| sift = cv2.SIFT_create() | |
| img = np.array(img.convert("L")) | |
| keypoints, descriptors = sift.detectAndCompute(img, None) | |
| words = kmeans.predict(descriptors) | |
| hist, _ = np.histogram(words, bins=num_clusters, range=(0, num_clusters)) | |
| return np.array(hist) | |
| def Classify(img, pre,model): | |
| start_time = time.time() | |
| image = Image.open(img) | |
| file="Models/"+model+'_'+pre+'.skops' | |
| loaded_model = sio.load(file) | |
| predictions = loaded_model.predict(single_image(image,pre).reshape(1,-1))[0] | |
| end_time = time.time() | |
| elapsed_time_microseconds = (end_time - start_time) * 1_000 | |
| return predictions,(end_time - start_time) * 1_000 | |
| interface = gr.Interface( | |
| fn=Classify, | |
| inputs=[ | |
| gr.Image(type="filepath"), | |
| gr.Radio( | |
| ["rgb", "hsv", "sift"], | |
| label="Preprocessing", | |
| info="Choose one" | |
| ) , gr.Radio( | |
| ["dt", "rf", "gb"], | |
| label="ML Model (Dicision Tree, Random Forest, Gradient Boosting)", | |
| info="Choose one" | |
| ) | |
| ], | |
| outputs=[ | |
| gr.Textbox(label="Class"), | |
| gr.Textbox(label="Time (milliseconds)") | |
| ] | |
| ) | |
| # Launch the interface | |
| interface.launch() |