Spaces:
Runtime error
Runtime error
import gradio | |
import cv2 | |
from sklearn.naive_bayes import BernoulliNB | |
import pickle | |
import numpy as np | |
# multiclass_model = pickle.load(open('models/MulticlassModel_200x200', 'rb')) | |
ensemble_model = pickle.load(open('EnsembleModels_200x200', 'rb')) | |
examples = ['images/test2.jpg','images/test4.jpg','images/test6.jpg', | |
"images/Incom.jpg", "images/DLC.jpg", 'images/EHD.jpg', | |
'images/IDR.jpg','images/PPD.jpg','images/PSLF.jpg' ,'images/SCD.jpg', | |
'images/TLF.jpg'] | |
def preprocess(img): | |
img = cv2.resize(img, (200,200)) | |
img = cv2.adaptiveThreshold(cv2.cvtColor(img, cv2.COLOR_BGR2GRAY),255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2) | |
img = np.reshape(img, (1,200*200))/255 | |
return img | |
def predict(img): | |
img = preprocess(img) | |
categories = { | |
"Inco": 2, | |
"Teac": 1, | |
"Cons": 0, | |
"Publ": 4, | |
"Econ": 3, | |
"Reaf": 5} | |
proba = np.zeros((6)) | |
for key in categories.keys(): | |
proba[categories[key]] = ensemble_model[key].predict_proba(img)[:,0] | |
return proba | |
def generate_results(proba): | |
categories = [ | |
"DLC", | |
"TLF", | |
"IDR", | |
"EHD", | |
"PLSF", | |
"REA", | |
"UNKNOWN"] | |
scores = [0,0,0,0,0,0,0] | |
choice = np.where(proba == np.amin(proba))[0] | |
if len(choice)>1: | |
choice = 6 | |
scores[int(choice)] = 1 | |
results = dict(zip(categories, scores)) | |
return results | |
def inference(img): | |
proba = predict(img) | |
results = generate_results(proba) | |
return results | |
demo = gradio.Interface( | |
fn=inference, | |
inputs=gradio.Image(), | |
outputs=gradio.Label(), | |
title='Document Classification', | |
description='Loan Document Classification Using A Naive Bayes Classifier Ensemble', | |
article='The purpose of this demo was to provide a simple baseline for the classification of document images. View the complete write up here https://github.com/PatrickTyBrown/document_classification/blob/main/project_writeup.pdf\n\n\nLinkedin: https://www.linkedin.com/in/patrick-ty-brown/\nGithub: https://github.com/PatrickTyBrown/document_classification\nPortfolio: https://sites.google.com/view/patrick-brown/home', | |
examples=examples) | |
demo.launch() | |