Spaces:
Sleeping
Sleeping
File size: 1,651 Bytes
df7792c 710e406 677a491 4102c8a df7792c 38cc02e df7792c 9294ca1 9b2517d 6edd3ec df7792c 3a8393e df7792c 477fdb5 2d2a8e5 42fad01 477fdb5 3a8393e 477fdb5 3a8393e df7792c 3a8393e df7792c 4e0aadf df7792c 4e0aadf df7792c 64aad2e 4e0aadf 3a8393e df7792c 3a8393e df7792c |
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 |
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() |