Daniel00611 commited on
Commit
595f3fc
verified
1 Parent(s): 63dda1e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -20
app.py CHANGED
@@ -39,9 +39,9 @@ def preprocess_image(img, target_size=(299, 299)):
39
  img_array = preprocess_input(img_array)
40
  return img_array
41
 
42
- # Modelo para recibir la imagen en formato Base64
43
- class ImageBase64(BaseModel):
44
- image_base64: str
45
 
46
  # Ruta para im谩genes subidas como archivo
47
  @app.post("/predict/")
@@ -68,28 +68,31 @@ async def predict(file: UploadFile = File(...)):
68
 
69
  # Ruta para im谩genes en formato Base64
70
  @app.post("/predict_base64/")
71
- async def predict_base64(image_data: ImageBase64):
 
72
  try:
73
- # Decodificar la imagen Base64
74
- image_bytes = base64.b64decode(image_data.image_base64)
75
- img = Image.open(io.BytesIO(image_bytes))
76
- img_array = preprocess_image(img)
77
-
78
- # Realizar predicci贸n
79
- predictions = model.predict(img_array)[0]
 
 
 
 
 
 
 
 
 
 
80
 
81
- # Obtener el top 10 de predicciones
82
- top_10_indices = predictions.argsort()[-10:][::-1]
83
- top_10_classes = [class_names[i] for i in top_10_indices]
84
- top_10_probabilities = predictions[top_10_indices]
85
-
86
- # Formar respuesta en formato JSON
87
- result = [{"class": top_10_classes[i], "probability": float(top_10_probabilities[i])} for i in range(10)]
88
- return {"predictions": result}
89
 
90
  except Exception as e:
91
  return {"error": str(e)}
92
-
93
  @app.get("/")
94
  def greet_json():
95
  return {"Hello": "World!"}
 
39
  img_array = preprocess_input(img_array)
40
  return img_array
41
 
42
+ # Modelo para recibir m煤ltiples im谩genes en Base64
43
+ class ImagesBase64(BaseModel):
44
+ images_base64: list[str] # Lista de im谩genes en formato Base64
45
 
46
  # Ruta para im谩genes subidas como archivo
47
  @app.post("/predict/")
 
68
 
69
  # Ruta para im谩genes en formato Base64
70
  @app.post("/predict_base64/")
71
+ async def predict_base64(image_data: ImagesBase64):
72
+ results = {}
73
  try:
74
+ for index, image_base64 in enumerate(image_data.images_base64):
75
+ # Decodificar cada imagen Base64
76
+ image_bytes = base64.b64decode(image_base64)
77
+ img = Image.open(io.BytesIO(image_bytes))
78
+ img_array = preprocess_image(img)
79
+
80
+ # Realizar predicci贸n
81
+ predictions = model.predict(img_array)[0]
82
+
83
+ # Obtener el top 10 de predicciones
84
+ top_10_indices = predictions.argsort()[-10:][::-1]
85
+ top_10_classes = [class_names[i] for i in top_10_indices]
86
+ top_10_probabilities = predictions[top_10_indices]
87
+
88
+ # Formar respuesta para la imagen actual
89
+ image_result = [{"class": top_10_classes[i], "probability": float(top_10_probabilities[i])} for i in range(10)]
90
+ results[f"imagen{index + 1}"] = image_result
91
 
92
+ return results
 
 
 
 
 
 
 
93
 
94
  except Exception as e:
95
  return {"error": str(e)}
 
96
  @app.get("/")
97
  def greet_json():
98
  return {"Hello": "World!"}