Spaces:
No application file
No application file
| from fastapi import FastAPI, UploadFile, File | |
| import tensorflow as tf | |
| import numpy as np | |
| from PIL import Image | |
| import io | |
| import easyocr | |
| app = FastAPI() | |
| # Load the model | |
| model = tf.keras.models.load_model("prescription_model.h5") | |
| ocr_reader = easyocr.Reader(['en']) # English OCR model | |
| async def predict(file: UploadFile = File(...)): | |
| image = Image.open(io.BytesIO(await file.read())).convert('L').resize((128, 128)) # Convert to grayscale | |
| img_array = np.array(image) / 255.0 | |
| img_array = np.expand_dims(img_array, axis=(0, -1)) | |
| # Get predictions | |
| prediction = model.predict(img_array) | |
| # Use OCR for text recognition | |
| text_prediction = ocr_reader.readtext(np.array(image)) | |
| text_result = " ".join([text[1] for text in text_prediction]) | |
| return {"prediction": prediction.tolist(), "ocr_text": text_result} | |