Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -2,7 +2,6 @@ import gradio as gr
|
|
2 |
import numpy as np
|
3 |
from tensorflow.keras.preprocessing import image
|
4 |
from tensorflow.keras.models import load_model
|
5 |
-
import matplotlib.pyplot as plt
|
6 |
from PIL import Image as PILImage
|
7 |
import io
|
8 |
|
@@ -10,50 +9,32 @@ import io
|
|
10 |
model = load_model('model_1.0000.h5')
|
11 |
|
12 |
def predict_and_invert(input_image):
|
13 |
-
# Redimensionar a imagem para (224, 224) - o tamanho esperado pelo modelo
|
14 |
input_image = input_image.resize((224, 224))
|
15 |
-
|
16 |
-
# Converter a imagem para o formato correto
|
17 |
-
img = image.img_to_array(input_image)
|
18 |
-
img = img / 255.0 # Normalizar a imagem (como fizemos durante o treinamento)
|
19 |
-
|
20 |
-
# Ajustar a imagem para o tamanho correto (224, 224, 3)
|
21 |
img = np.expand_dims(img, axis=0)
|
22 |
-
img = img[:, :224, :224, :]
|
23 |
|
24 |
prediction = model.predict(img)
|
25 |
|
26 |
-
# Interpretar o resultado
|
27 |
if prediction[0][0] > 0.5:
|
28 |
-
result = "
|
29 |
else:
|
30 |
-
result = "
|
31 |
|
32 |
-
# Inverter a imagem
|
33 |
-
img_inverted = 1 - img # Inverter a imagem
|
34 |
|
35 |
-
|
36 |
-
img_inverted_pil = PILImage.fromarray(np.uint8(img_inverted[0] * 255))
|
37 |
img_inverted_bytes = io.BytesIO()
|
38 |
img_inverted_pil.save(img_inverted_bytes, format='PNG')
|
39 |
|
40 |
return result, img_inverted_pil
|
41 |
|
42 |
-
# Criar
|
43 |
-
|
44 |
-
fn=predict_and_invert,
|
45 |
-
inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
|
46 |
-
outputs=["text", "image"], # Agora temos duas saídas: texto e imagem
|
47 |
-
title="Modelo de Classificação de Anomalias Cardíacas - Interface 1"
|
48 |
-
)
|
49 |
-
|
50 |
-
iface2 = gr.Interface(
|
51 |
fn=predict_and_invert,
|
52 |
inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
|
53 |
-
outputs=["text", "image"]
|
54 |
-
title="Modelo de Classificação de Anomalias Cardíacas - Interface 2"
|
55 |
)
|
56 |
|
57 |
-
# Executar
|
58 |
-
|
59 |
-
iface2.launch()
|
|
|
2 |
import numpy as np
|
3 |
from tensorflow.keras.preprocessing import image
|
4 |
from tensorflow.keras.models import load_model
|
|
|
5 |
from PIL import Image as PILImage
|
6 |
import io
|
7 |
|
|
|
9 |
model = load_model('model_1.0000.h5')
|
10 |
|
11 |
def predict_and_invert(input_image):
|
|
|
12 |
input_image = input_image.resize((224, 224))
|
13 |
+
img = image.img_to_array(input_image) / 255.0
|
|
|
|
|
|
|
|
|
|
|
14 |
img = np.expand_dims(img, axis=0)
|
15 |
+
img = img[:, :224, :224, :]
|
16 |
|
17 |
prediction = model.predict(img)
|
18 |
|
|
|
19 |
if prediction[0][0] > 0.5:
|
20 |
+
result = "Anomalia cardíaca (Doente)"
|
21 |
else:
|
22 |
+
result = "Normal (Sem anomalia)"
|
23 |
|
24 |
+
img_inverted = 1 - img[0] # Inverter a imagem
|
|
|
25 |
|
26 |
+
img_inverted_pil = PILImage.fromarray(np.uint8(img_inverted * 255))
|
|
|
27 |
img_inverted_bytes = io.BytesIO()
|
28 |
img_inverted_pil.save(img_inverted_bytes, format='PNG')
|
29 |
|
30 |
return result, img_inverted_pil
|
31 |
|
32 |
+
# Criar uma interface Gradio
|
33 |
+
iface = gr.Interface(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
fn=predict_and_invert,
|
35 |
inputs=gr.inputs.Image(type="pil", label="Carregar uma imagem"),
|
36 |
+
outputs=["text", "image"]
|
|
|
37 |
)
|
38 |
|
39 |
+
# Executar a interface Gradio
|
40 |
+
iface.launch()
|
|