Team_odyssey / Predictive.py
appledog00's picture
Update Predictive.py
4e39ceb verified
import numpy as np
import cv2
import glob
from tensorflow.keras.models import Sequential, load_model
from sklearn.preprocessing import LabelBinarizer
from sklearn.model_selection import train_test_split
from tensorflow.keras.utils import to_categorical # Correct import for TensorFlow 2.4.0
global size
size = 100
model = Sequential()
model = load_model('samplee.h5')
# Load Testing data: non-pothole
nonPotholeTestImages = glob.glob("D:/Downloads/potholes/plain/*.jpg")
test2 = [cv2.imread(img, 0) for img in nonPotholeTestImages]
for i in range(0, len(test2)):
test2[i] = cv2.resize(test2[i], (size, size))
temp4 = np.asarray(test2)
# Load Testing data: potholes
potholeTestImages = glob.glob("D:/Downloads/potholes/pot/*.jpg")
test1 = [cv2.imread(img, 0) for img in potholeTestImages]
for i in range(0, len(test1)):
test1[i] = cv2.resize(test1[i], (size, size))
temp3 = np.asarray(test1)
X_test = []
X_test.extend(temp3)
X_test.extend(temp4)
X_test = np.asarray(X_test)
X_test = X_test.reshape(X_test.shape[0], size, size, 1)
# Prepare labels for testing data
y_test1 = np.ones([temp3.shape[0]], dtype=int)
y_test2 = np.zeros([temp4.shape[0]], dtype=int)
y_test = []
y_test.extend(y_test1)
y_test.extend(y_test2)
y_test = np.asarray(y_test)
y_test = to_categorical(y_test) # Use to_categorical for label encoding
# Predict the classes
tests = model.predict(X_test)
tests = np.argmax(tests, axis=1) # Convert probabilities to class labels (0 or 1)
for i in range(len(X_test)):
print(">>> Predicted=%s" % (tests[i]))
# Optionally, evaluate the model
# metrics = model.evaluate(X_test, y_test)
# for metric_i in range(len(model.metrics_names)):
# metric_name = model.metrics_names[metric_i]
# metric_value = metrics[metric_i]
# print('{}: {}'.format(metric_name, metric_value))