Spaces:
Sleeping
Sleeping
File size: 2,427 Bytes
59c748e 49ebad1 f1495be 49ebad1 f1495be 59c748e f1495be 59c748e 14c15c7 59c748e f1495be 59c748e 94c7394 49ebad1 bfa893d 49ebad1 bfa893d c4e1faf bfa893d 49ebad1 80940eb de600c4 49ebad1 bfa893d 49ebad1 bfa893d 49ebad1 de600c4 49ebad1 3c93956 49ebad1 de600c4 49ebad1 de600c4 49ebad1 de600c4 49ebad1 de600c4 49ebad1 4dc6bee |
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 67 68 69 70 71 72 73 74 75 |
# 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
from keras.models import load_model
def load_image_model(image):
# Disable scientific notation for clarity
np.set_printoptions(suppress=True)
# Load the model from the URL
model = load_model("keras_model.h5", compile=False)
# Load the labels
class_names = open("labels.txt", "r").readlines()
# Create the array of the right shape to feed into the keras model
# The 'length' or number of images you can put into the array is
# determined by the first position in the shape tuple, in this case 1
data = np.ndarray(shape=(1, 224, 224, 3), dtype=np.float32)
# Replace this with the path to your image
image = Image.open(BytesIO(image)).convert("RGB")
# resizing the image to be at least 224x224 and then cropping from the center
size = (224, 224)
image = ImageOps.fit(image, size, Image.Resampling.LANCZOS)
# turn the image into a numpy array
image_array = np.asarray(image)
# Normalize the image
normalized_image_array = (image_array.astype(np.float32) / 127.5) - 1
# Load the image into the array
data[0] = normalized_image_array
# Predicts the model
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)
return class_name |