#Including Libraries
import numpy as np
from PIL import Image
from sklearn.preprocessing import LabelEncoder
import os
#Model Trained on These Types of Fruits cause of Limited GPU
classes = {"acerolas":1,"apples ":2,"apricots":3,"avocados":4,"bananas":5}
#Reading Image from Dataset Path
def read_image(path,image):
img= Image.open(os.path.join(path,image))
img=img.resize((224,224),Image.ANTIALIAS)
img=img.convert("RGB")
img=np.array(img)
img=img.astype('float32')
return img
#One Hot Encoding eg: [1 0 0 0 0]
def one_hot_encode(labels):
n_labels=len(labels)
n_unique_labels=len(np.unique(labels))
one_hot_encode=np.zeros((n_labels,n_unique_labels))
one_hot_encode[np.arange(n_labels),labels]=1
return one_hot_encode
#Reading Directory by Directory DataSet Images and Preprocess them and Return In Memory Numpy Array
def read_dataset(cw_dir):
os.chdir(cw_dir)
tr_dataset={"x":[],"y":[]}
for image_folder in os.listdir(cw_dir):
try:
for image in os.listdir(image_folder):
img = read_image(os.path.join(cw_dir,image_folder),image)
if img is not None:
label = int(image_folder)
tr_dataset["x"].append(img)
tr_dataset["y"].append(label)
else:
pass
except:
print("Error")
X=np.array(tr_dataset["x"],'float32')
y=tr_dataset["y"]
encoder=LabelEncoder()
encoder.fit(y)
y=encoder.transform(y)
Y=one_hot_encode(y)
return X,Y
#For Prediction Image Pre Processing
def read_prediction_images(cw_dir):
os.chdir(cw_dir)
pred_imgs=[]
for img in os.listdir(cw_dir):
pred_imgs.append(read_image(cw_dir,img))
return np.array(pred_imgs,dtype='float32')
#Collection of Prediction Images Preprocessing
def test_demo(cw_dir):
pred_imgs=[]
img= Image.open(cw_dir)
img=img.resize((224,224),Image.ANTIALIAS)
img=img.convert("RGB")
img=np.array(img)
img=img.astype('float32')
pred_imgs.append(img)
return np.array(pred_imgs,dtype='float32')
Back To Homepage
Comments
Post a Comment