Spaces:
Sleeping
Sleeping
File size: 2,797 Bytes
d698b38 5693311 6e83a12 06381b2 3ccaa2b ebf9275 8f4b931 ebf9275 8f4b931 ebf9275 3ccaa2b d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 9c8a778 94c8c3a 9c8a778 9ff7681 94c8c3a 9ff7681 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 d698b38 5693311 bc0647c 5693311 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
from flask import Flask, request, jsonify
from tensorflow.keras.preprocessing import image
import numpy as np
from tensorflow.keras.models import load_model
from PIL import Image
from io import BytesIO
app = Flask(__name__)
# Load the trained models
# model_female_leg = load_model('trained_model_female_leg.h5')
# model_female_arm = load_model('trained_model_female_arm.h5')
# model_male_arm = load_model('trained_model_male_arm.h5')
#model_male_leg = load_model('YourModelName.h5')
#model_male_arm = load_model('YourModelName.h5')
#model_female_arm = load_model('YourModelName.h5')
#model_female_leg = load_model('model.h5')
#model_male_leg = load_model('trained_model_male_leg.h5')
model_male_leg = load_model('model.h5')
model_male_arm = load_model('model.h5')
model_female_leg = load_model('YourModelName.h5')
model_female_arm = load_model('model.h5')
# Define class labels for each model
class_label_male_leg = ['High', 'Moderate', 'Low']
class_label_male_arm = ['High', 'Moderate', 'Low']
class_labels_female_leg = ['High', 'Moderate', 'Low']
class_labels_female_arm = ['High', 'Moderate', 'Low']
# Define route for model prediction for model 1
@app.route('/predict_model_male_leg', methods=['POST'])
def predict_model1():
return predict(request.files['file'], model_male_leg, class_label_male_leg)
# Define route for model prediction for model 2
@app.route('/predict_model_male_arm', methods=['POST'])
def predict_model2():
return predict(request.files['file'], model_male_arm, class_label_male_arm)
# Define route for model prediction for model 3
@app.route('/predict_model_female_leg', methods=['POST'])
def predict_model3():
return predict(request.files['file'], model_female_leg, class_labels_female_leg)
# Define route for model prediction for model 4
@app.route('/predict_model_female_arm', methods=['POST'])
def predict_model4():
return predict(request.files['file'], model_female_arm, class_labels_female_arm)
# Define route for ping
@app.route('/', methods=['GET'])
def ping():
return jsonify({'PING': 'Success!'})
def predict(file, model, class_labels):
# Check if file is provided
if not file:
return jsonify({'error': 'No file provided'})
# Load and preprocess the image
img = Image.open(BytesIO(file.read())) # Convert FileStorage to io.BytesIO
img = img.resize((150, 150)) # Resize image to match model's input shape
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array /= 255.0
# Make prediction
prediction = model.predict(img_array)
# Interpret the result
predicted_class = np.argmax(prediction)
predicted_label = class_labels[predicted_class]
return jsonify( predicted_label)
# if __name__ == '__main__':
# app.run(debug=True)
|