Spaces:
Runtime error
Runtime error
import gradio as gr | |
from tensorflow.keras.models import load_model | |
import numpy as np # linear algebra | |
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) | |
from sklearn.metrics import roc_curve,auc,classification_report,confusion_matrix | |
import matplotlib.pyplot as plt | |
import matplotlib.image as mpimg | |
from PIL import Image | |
import cv2 | |
import keras | |
from keras.utils import np_utils | |
from tensorflow.keras.models import Sequential | |
from tensorflow.keras.layers import Conv2D,MaxPooling2D,Dense,Flatten,Dropout | |
from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint,ReduceLROnPlateau | |
from tensorflow.keras.models import Model | |
from tensorflow.keras.optimizers import Adam,SGD,RMSprop,Adamax | |
from tensorflow.keras.models import Model, Sequential | |
from tensorflow.keras.callbacks import ReduceLROnPlateau | |
from sklearn.model_selection import StratifiedKFold | |
from tensorflow.keras.applications import MobileNetV2 | |
from random import shuffle | |
from tqdm import tqdm | |
import scipy | |
import skimage | |
from skimage.transform import resize | |
import random | |
import os | |
from io import BytesIO | |
import h5py | |
model_file_path = "mobile_net_occ.h5" | |
plt. figure(figsize=(10,9)) | |
def occ_predict(img_content): | |
im = [] | |
image=cv2.imread(img_content) | |
print(type(image)) | |
imgplot = plt.imshow(image) | |
plt.show() | |
img = Image.fromarray(image, 'RGB') | |
resize_image = img.resize((50, 50)) | |
im.append(np.array(resize_image)) | |
fv = np.array(im) | |
np_array_img = fv.astype('float32') / 255 | |
model_gcs = h5py.File(model_file_path, 'r') | |
print(model_file_path) | |
myModel = load_model(model_gcs) | |
prediction = myModel.predict(np_array_img) | |
score = prediction[0][0].item() | |
thresh = 0.5 | |
if score > thresh: | |
return "The house is "+"Not Occluded "+" and the occlusion Score is "+str(round(score,2)) | |
else: | |
return "The house is "+"Occluded "+"and the occlusion Score is "+str(round(score,2)) | |
#predicted_label, score = occ_predict("img1.jpg") | |
inputs = gr.inputs.Image(type = 'filepath') | |
#label = gr.outputs.Label(num_top_classes=2) | |
EXAMPLES = ["img1.png","img2.png","img3.png","img15.png","img11.png","img12.png","img18.png","img20.png"] | |
DESCRIPTION = """An image is occluded if the image is blocked by any object. | |
For example if an electric pole is filled with bushes,the image is occluded since it is not clear and blocked. | |
Mobil-net is used to train a model with occluded and non occluded images, so that it can correctly classify the images. | |
Occlusion detection can be used to filter unclear images and take safety measures.""" | |
demo_app = gr.Interface( | |
fn=occ_predict, | |
inputs=inputs, | |
outputs= "text", | |
title = "Prediction of Occluded or not Occluded Image", | |
description = DESCRIPTION, | |
examples = EXAMPLES, | |
#cache_example = True, | |
#live = True, | |
theme = 'huggingface' | |
) | |
demo_app.launch() |