Spaces:
Sleeping
Sleeping
File size: 2,463 Bytes
59c748e 49ebad1 f1495be 49ebad1 f1495be 59c748e f1495be 59c748e 14c15c7 59c748e f1495be 59c748e 94c7394 49ebad1 e6030dc 49ebad1 c4e1faf 49ebad1 80940eb de600c4 49ebad1 e6030dc 49ebad1 e6030dc 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 |
# 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
from keras.models import load_model # TensorFlow is required for Keras to work
from PIL import Image, ImageOps # Install pillow instead of PIL
import numpy as np
from io import BytesIO
def load_image_model(image):
# Disable scientific notation for clarity
np.set_printoptions(suppress=True)
# Load the model
model = load_model("model\keras_model.h5", compile=False)
# Load the labels
class_names = open("model\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 |