Spaces:
Build error
Build error
# Data Handling | |
from huggingface_hub import from_pretrained_keras | |
import numpy as np | |
import cv2 | |
import imutils | |
import tensorflow as tf | |
from tensorflow import keras | |
import gradio as gr | |
from tensorflow.keras.models import load_model | |
model = load_model('./augmented_unet_pretrained.h5', compile=False) | |
def segmentation(inp): | |
#inp = cv2.cvtColor(inp, cv2.COLOR_BGR2RGB) # Input image | |
inp = cv2.resize(inp, (256, 256)) # Resize | |
inp = (inp.astype('float32')) / 255. | |
test_input = inp | |
# (Must Add cropping for real time images) | |
# Predictions | |
prediction_on_test = np.expand_dims(test_input, 0) | |
prediction_on_test = model.predict(prediction_on_test) | |
prediction_on_test = prediction_on_test > 0.5 | |
predicted_img = prediction_on_test[0,:,:,0] | |
# EXTRACTING CONTOURS | |
predicted = predicted_img.astype(np.uint8) | |
cnts = cv2.findContours(image=predicted, mode=cv2.RETR_TREE, method=cv2.CHAIN_APPROX_NONE) | |
contours = imutils.grab_contours(cnts) | |
contoured = test_input.copy() | |
contoured = (contoured * 255).astype(np.uint8) | |
cv2.drawContours(image=contoured, contours=contours, contourIdx=-1, color=(255, 0, 0), thickness=1, lineType=cv2.LINE_AA) | |
# Circumference of detected Mask | |
if contours : | |
a = "Polynya Detected" | |
for i in range(len(contours)): | |
circum = cv2.arcLength(contours[i], True) | |
circum = round(circum,2) | |
b = str(circum) + '\t' + "px" | |
else: | |
a = "No Polynya Detected" | |
b = "0.0 px" | |
return(contoured, a, b) | |
image = gr.Image(label = 'Input Image') | |
out1 = gr.Image(label = 'Result') | |
out2 = gr.Textbox(label = 'Label') | |
out3 = gr.Textbox(label = 'Circumference in Pixel Unit') | |
interface = gr.Interface(fn = segmentation, inputs = image, outputs = [out1, out2, out3], | |
title= 'Polynya Detection', | |
description= 'Let the system detect if there is a Polynya in your image or not.', | |
share=True) | |
interface.launch() |