Commit ·
7fcfaa9
1
Parent(s): 7ce37d1
add
Browse files
app.py
CHANGED
|
@@ -18,7 +18,7 @@ import uvicorn
|
|
| 18 |
BASE_DIR = Path(__file__).resolve().parent
|
| 19 |
MODEL_DIR = BASE_DIR / "models"
|
| 20 |
PYTORCH_PATH = MODEL_DIR / "pytorch_model.pth"
|
| 21 |
-
TENSORFLOW_PATH = MODEL_DIR / "model_best.keras"
|
| 22 |
|
| 23 |
CLASSES = ["buildings", "forest", "glacier", "mountain", "sea", "street"]
|
| 24 |
CONFIDENCE_THRESHOLD = 0.6
|
|
@@ -202,9 +202,17 @@ def predict(
|
|
| 202 |
raise HTTPException(status_code=400, detail=f"Impossible de lire l'image: {exc}")
|
| 203 |
else:
|
| 204 |
try:
|
| 205 |
-
|
| 206 |
-
|
| 207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
|
| 209 |
predicted_class, confidence, all_probs = classify(img, model_choice)
|
| 210 |
return {
|
|
|
|
| 18 |
BASE_DIR = Path(__file__).resolve().parent
|
| 19 |
MODEL_DIR = BASE_DIR / "models"
|
| 20 |
PYTORCH_PATH = MODEL_DIR / "pytorch_model.pth"
|
| 21 |
+
TENSORFLOW_PATH = MODEL_DIR / "model_best.keras"
|
| 22 |
|
| 23 |
CLASSES = ["buildings", "forest", "glacier", "mountain", "sea", "street"]
|
| 24 |
CONFIDENCE_THRESHOLD = 0.6
|
|
|
|
| 202 |
raise HTTPException(status_code=400, detail=f"Impossible de lire l'image: {exc}")
|
| 203 |
else:
|
| 204 |
try:
|
| 205 |
+
# Accepte URL HTTP/HTTPS, data URL (data:image/...;base64,...) ou base64 pur
|
| 206 |
+
if image_url.startswith("data:"):
|
| 207 |
+
img = load_image_from_url(image_url)
|
| 208 |
+
elif image_url.startswith(("http://", "https://")):
|
| 209 |
+
img = load_image_from_url(image_url)
|
| 210 |
+
else:
|
| 211 |
+
# Assume chaîne base64 pure
|
| 212 |
+
image_data = base64.b64decode(image_url)
|
| 213 |
+
img = Image.open(io.BytesIO(image_data)).convert("RGB")
|
| 214 |
+
except Exception as exc:
|
| 215 |
+
raise HTTPException(status_code=400, detail=f"Impossible de traiter l'image: {exc}")
|
| 216 |
|
| 217 |
predicted_class, confidence, all_probs = classify(img, model_choice)
|
| 218 |
return {
|