Spaces:
Sleeping
Sleeping
File size: 2,226 Bytes
59c748e 49ebad1 f1495be 49ebad1 f1495be 59c748e f1495be 59c748e 14c15c7 59c748e f1495be 59c748e 94c7394 49ebad1 c4e1faf 6750185 49ebad1 59442d5 c4e1faf 49ebad1 6750185 b388354 6750185 b388354 49ebad1 c4e1faf 49ebad1 b388354 49ebad1 b388354 49ebad1 c4e1faf |
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 57 58 59 60 61 62 63 64 65 66 |
# from PIL import Image
# from io import BytesIO
# from transformers import AutoImageProcessor, AutoModelForImageClassification
# # Load model
# processor = AutoImageProcessor.from_pretrained("taroii/pothole-detection-model")
# model = AutoModelForImageClassification.from_pretrained("taroii/pothole-detection-model")
# # Function to predict if an image contains a pothole
# def predict_pothole(image_url):
# image = Image.open(BytesIO(image_url))
# inputs = processor(images=image, return_tensors="pt")
# # Perform inference
# outputs = model(**inputs)
# logits = outputs.logits
# probabilities = logits.softmax(dim=1)
# # Get predicted class (0: No pothole, 1: Pothole)
# predicted_class = probabilities.argmax().item()
# confidence = probabilities[0, predicted_class].item()
# return predicted_class
import tensorflow as tf
from PIL import Image, ImageOps
import numpy as np
import requests
from io import BytesIO
def load_image_model(image):
# Disable scientific notation for clarity
np.set_printoptions(suppress=True)
# Load the model from the URL
model_url = "https://huggingface.co/spaces/Soham0708/pothole_detect/resolve/main/keras_model.h5"
model_path = tf.keras.utils.get_file("keras_model.h5", model_url)
# Load the model
model = tf.keras.models.load_model(model_path)
# Load the labels
class_names = open("labels.txt", "r").readlines()
# Create the array of the right shape to feed into the keras model
data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)
# Replace this with the path to your image
image = Image.open(image).convert("RGB")
# Resize and preprocess the image
image = ImageOps.fit(image, (224, 224), Image.ANTIALIAS)
image_array = np.asarray(image)
normalized_image_array = (image_array.astype(np.float32) / 127.5) - 1
data[0] = normalized_image_array
# Make prediction
prediction = model.predict(data)
index = np.argmax(prediction)
class_name = class_names[index]
confidence_score = prediction[0][index]
# Print prediction and confidence score
print("Class:", class_name[2:], end="")
print("Confidence Score:", confidence_score) |