rlrocha's picture
remove os impoort
37f0b2b
import sys
sys.path.append('src/') # Add src to path
from elm import ELMClassifier
import gradio as gr
import joblib
from utils import visual_words
class_names = ['Arnold Schwarzenegger', 'Silvester Stallone', 'Taylor Swift']
examples = ['imgs/arnold01.jpg',
'imgs/arnold02.jpg',
'imgs/arnold03.jpg',
'imgs/stallone01.jpg',
'imgs/stallone02.jpg',
'imgs/stallone03.jpg',
'imgs/taylor01.jpg',
'imgs/taylor02.jpg',
'imgs/taylor03.jpg']
bovw = joblib.load('bovw.joblib') # Load the bag of visual words
clf = joblib.load('elm.joblib') # Load the ELM classifier
def predict_image(img):
h, w = img.shape
img = img.reshape(-1, h, w) # Reshape image to (1, h, w)
X = visual_words(img, bovw) # Extract visual words
prediction = clf.predict_proba(X)[0]
dict_result = {class_names[i]: float(prediction[i]) for i in range(len(class_names))}
return dict_result
image = gr.components.Image(image_mode='L') # Grayscale
label = gr.components.Label(num_top_classes=len(class_names))
demo = gr.Interface(fn=predict_image,
inputs=image,
outputs=label,
examples=examples,
title="Bag of Visual Words Classifier",
description="Image classification using Bag of Visual Words (BoVW) and Extreme Learning Machine (ELM) classifier.",)
demo.launch()