Spaces:
Sleeping
Sleeping
from fastapi import FastAPI, HTTPException | |
from transformers import pipeline | |
from PIL import Image | |
import io | |
app = FastAPI() | |
# Load the image classification pipeline | |
pipe = pipeline("image-classification", model="mateoluksenberg/dit-base-Classifier_CM05") | |
# Sample image path (for testing) | |
image_path = 'cm5.jpg' | |
# Async function to classify an image | |
async def classify_image(image_path: str): | |
try: | |
image = Image.open(image_path).convert('RGB') | |
image_bytes = io.BytesIO() | |
image.save(image_bytes, format='JPEG') | |
image_bytes = image_bytes.getvalue() | |
# Perform image classification | |
result = pipe(image_bytes) | |
return result[0] # Return the top prediction | |
except Exception as e: | |
# Handle exceptions, for example: file not found, image format issues, etc. | |
raise HTTPException(status_code=500, detail=f"Error processing image: {str(e)}") | |
async def home(image_path: str = image_path): | |
try: | |
result = await classify_image(image_path) | |
return {"message": "Hello World", "classification_result": result} | |
except HTTPException as e: | |
raise e | |
except Exception as e: | |
raise HTTPException(status_code=500, detail=f"Error classifying image: {str(e)}") | |