Spaces:
Runtime error
Runtime error
| import subprocess | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| import io | |
| from flask import Flask, request, jsonify | |
| # Function to install a package using pip | |
| def install_package(package): | |
| try: | |
| subprocess.check_call(['pip', 'install', package]) | |
| except subprocess.CalledProcessError as e: | |
| print(f"Error installing {package}: {e}") | |
| # List of libraries to install | |
| libraries = [ | |
| 'gradio', | |
| 'tensorflow', | |
| 'numpy', | |
| 'Pillow', | |
| 'opencv-python-headless', | |
| 'Flask', | |
| 'joblib' | |
| ] | |
| # Install each library using pip | |
| for library in libraries: | |
| install_package(library) | |
| # Attempt to import required libraries after installation | |
| try: | |
| import joblib | |
| except ImportError: | |
| print("Error: joblib failed to install or import.") | |
| exit(1) | |
| # Load the pre-trained TensorFlow model | |
| model = tf.keras.models.load_model("imageclassifier.h5") | |
| # Save the model as .pkl file | |
| joblib.dump(model, "imageclassifier.pkl") | |
| # Initialize Flask application | |
| app = Flask(__name__) | |
| # Load the model from .pkl file | |
| model = joblib.load("imageclassifier.pkl") | |
| # Define the function to predict the teeth health | |
| def predict_teeth_health(image): | |
| # Convert the PIL image object to a numpy array | |
| image = np.array(image) | |
| # Perform any necessary preprocessing (resizing, normalization, etc.) here if needed | |
| # Make a prediction | |
| prediction = model.predict(image.reshape(1, -1)) | |
| # Assuming binary classification, adjust as per your model's output | |
| probability_good = prediction[0] # Assuming it's a binary classification | |
| # Define the prediction result | |
| result = { | |
| "prediction": "Your Teeth are Good & You Don't Need To Visit Doctor" if probability_good > 0.5 else "Your Teeth are Bad & You Need To Visit Doctor" | |
| } | |
| return result | |
| # Define route to accept image and return prediction | |
| def predict(): | |
| # Ensure an image was properly uploaded to our endpoint | |
| if request.method == 'POST': | |
| file = request.files['image'] | |
| if file: | |
| # Read the image using PIL | |
| img = Image.open(file.stream) | |
| # Perform prediction | |
| prediction = predict_teeth_health(img) | |
| return jsonify(prediction) | |
| if __name__ == '__main__': | |
| app.run(debug=True) | |