Spaces:
Build error
Build error
# -*- coding: utf-8 -*- | |
""" | |
Created on Thu Jun 11 22:34:20 2020 | |
@author: Krish Naik | |
""" | |
from __future__ import division, print_function | |
# coding=utf-8 | |
import sys | |
import os | |
import glob | |
import re | |
import numpy as np | |
import tensorflow as tf | |
import tensorflow as tf | |
from tensorflow.compat.v1 import ConfigProto | |
from tensorflow.compat.v1 import InteractiveSession | |
config = ConfigProto() | |
config.gpu_options.per_process_gpu_memory_fraction = 0.2 | |
config.gpu_options.allow_growth = True | |
session = InteractiveSession(config=config) | |
# Keras | |
from tensorflow.keras.applications.resnet50 import preprocess_input | |
from tensorflow.keras.models import load_model | |
from tensorflow.keras.preprocessing import image | |
# Flask utils | |
from flask import Flask, redirect, url_for, request, render_template | |
from werkzeug.utils import secure_filename | |
#from gevent.pywsgi import WSGIServer | |
# Define a flask app | |
app = Flask(__name__) | |
# Model saved with Keras model.save() | |
MODEL_PATH ='model_resnet152V2.h5' | |
# Load your trained model | |
model = load_model(MODEL_PATH) | |
def model_predict(img_path, model): | |
print(img_path) | |
img = image.load_img(img_path, target_size=(224, 224)) | |
# Preprocessing the image | |
x = image.img_to_array(img) | |
# x = np.true_divide(x, 255) | |
## Scaling | |
x=x/255 | |
x = np.expand_dims(x, axis=0) | |
# Be careful how your trained model deals with the input | |
# otherwise, it won't make correct prediction! | |
# x = preprocess_input(x) | |
preds = model.predict(x) | |
preds=np.argmax(preds, axis=1) | |
if preds==0: | |
preds="The leaf is diseased cotton leaf" | |
elif preds==1: | |
preds="The leaf is diseased cotton plant" | |
elif preds==2: | |
preds="The leaf is fresh cotton leaf" | |
else: | |
preds="The leaf is fresh cotton plant" | |
return preds | |
def index(): | |
# Main page | |
return render_template('index.html') | |
def upload(): | |
if request.method == 'POST': | |
# Get the file from post request | |
f = request.files['file'] | |
# Save the file to ./uploads | |
basepath = os.path.dirname(__file__) | |
file_path = os.path.join( | |
basepath, 'uploads', secure_filename(f.filename)) | |
f.save(file_path) | |
# Make prediction | |
preds = model_predict(file_path, model) | |
result=preds | |
return result | |
return None | |
if __name__ == '__main__': | |
app.run(port=5001,debug=True) | |