Spaces:
Build error
Build error
| # Imporiting Necessary Libraries | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| # Cleanig image | |
| def clean_image(image): | |
| image = np.array(image) | |
| # Resizing the image | |
| image = np.array(Image.fromarray( | |
| image).resize((512, 512), Image.ANTIALIAS)) | |
| # Adding batch dimensions to the image | |
| # YOu are seeting :3, that's becuase sometimes user upload 4 channel image, | |
| image = image[np.newaxis, :, :, :3] | |
| # So we just take first 3 channels | |
| return image | |
| def get_prediction(model, image): | |
| datagen = tf.keras.preprocessing.image.ImageDataGenerator( | |
| rescale=1./255) | |
| # Inputting the image to keras generators | |
| test = datagen.flow(image) | |
| # Predict from the image | |
| predictions = model.predict(test) | |
| predictions_arr = np.array(np.argmax(predictions)) | |
| return predictions, predictions_arr | |
| # Making the final results | |
| def make_results(predictions, predictions_arr): | |
| result = {} | |
| if int(predictions_arr) == 0: | |
| result = {"status": " is Healthy ", | |
| "prediction": f"{int(predictions[0][0].round(2)*100)}%"} | |
| if int(predictions_arr) == 1: | |
| result = {"status": ' has Multiple Diseases ', | |
| "prediction": f"{int(predictions[0][1].round(2)*100)}%"} | |
| if int(predictions_arr) == 2: | |
| result = {"status": ' has Rust ', | |
| "prediction": f"{int(predictions[0][2].round(2)*100)}%"} | |
| if int(predictions_arr) == 3: | |
| result = {"status": ' has Scab ', | |
| "prediction": f"{int(predictions[0][3].round(2)*100)}%"} | |
| return result | |