train_dataset


#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