Spaces:
Runtime error
Runtime error
update radio
Browse files- diabetes_model.sav +0 -0
- malaria.h5 +3 -0
- pneumonia.h5 +3 -0
- testegradio.py +159 -0
diabetes_model.sav
ADDED
Binary file (27.9 kB). View file
|
|
malaria.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6ee12e8fb492c2b9f14c9660ee0be8334a46a496a6800a8bc47883430d609f46
|
3 |
+
size 18426400
|
pneumonia.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:c1cf1045c14020d251ff54bbcea55adeba75ccb2648cc62ffb5886d389da351a
|
3 |
+
size 7686056
|
testegradio.py
ADDED
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
import numpy as np
|
3 |
+
from PIL import Image
|
4 |
+
from keras.models import load_model
|
5 |
+
import pickle
|
6 |
+
|
7 |
+
# Função de previsão de pneumonia
|
8 |
+
def predict_pneumonia(img):
|
9 |
+
img = Image.fromarray(np.uint8(img))
|
10 |
+
img = img.convert('L')
|
11 |
+
img = img.resize((36,36))
|
12 |
+
img = np.asarray(img)
|
13 |
+
img = img.reshape((1,36,36,1))
|
14 |
+
img = img / 255.0
|
15 |
+
model = load_model("/Users/thanizeassuncaorodrigues/Documents/GitHub/DiagnoSys/models/pneumonia.h5")
|
16 |
+
pred_probs = model.predict(img)[0]
|
17 |
+
pred_class = np.argmax(pred_probs)
|
18 |
+
pred_prob = pred_probs[pred_class]
|
19 |
+
if pred_class == 1:
|
20 |
+
pred_label = "Pneumonia"
|
21 |
+
else:
|
22 |
+
pred_label = "Saudável"
|
23 |
+
return pred_label, pred_prob
|
24 |
+
|
25 |
+
# Função de previsão de malária
|
26 |
+
def predict_malaria(img):
|
27 |
+
img = Image.fromarray(np.uint8(img))
|
28 |
+
img = img.resize((36,36))
|
29 |
+
img = np.asarray(img)
|
30 |
+
img = img.reshape((1,36,36,3))
|
31 |
+
img = img.astype(np.float64)
|
32 |
+
model = load_model("/Users/thanizeassuncaorodrigues/Documents/GitHub/DiagnoSys/models/malaria.h5")
|
33 |
+
pred_probs = model.predict(img)[0]
|
34 |
+
pred_class = np.argmax(pred_probs)
|
35 |
+
pred_prob = pred_probs[pred_class]
|
36 |
+
if pred_class == 1:
|
37 |
+
pred_label = "Infectado"
|
38 |
+
else:
|
39 |
+
pred_label = "Não está infectado"
|
40 |
+
return pred_label, pred_prob
|
41 |
+
|
42 |
+
with open('/Users/thanizeassuncaorodrigues/Documents/GitHub/DiagnoSys/models/diabetes_model.sav', 'rb') as file:
|
43 |
+
diabetes_model = pickle.load(file)
|
44 |
+
|
45 |
+
# Função de previsão de diabetes
|
46 |
+
def predict_diabetes(Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age):
|
47 |
+
user_input = [Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age]
|
48 |
+
user_input = [float(x) for x in user_input]
|
49 |
+
diab_prediction = diabetes_model.predict([user_input])
|
50 |
+
if diab_prediction[0] == 1:
|
51 |
+
diab_diagnosis = 'A pessoa é diabética'
|
52 |
+
else:
|
53 |
+
diab_diagnosis = 'A pessoa não é diabética'
|
54 |
+
return diab_diagnosis
|
55 |
+
|
56 |
+
# Função para exibir a página de Datasets Disponíveis
|
57 |
+
def display_datasets():
|
58 |
+
datasets = {
|
59 |
+
"Dataset de Malária": "https://www.kaggle.com/datasets/iarunava/cell-images-for-detecting-malaria",
|
60 |
+
"Dataset de Pneumonia": "https://www.kaggle.com/datasets/paultimothymooney/chest-xray-pneumonia",
|
61 |
+
"Dataset de Doenças Cardíacas": "https://github.com/siddhardhan23/multiple-disease-prediction-streamlit-app/blob/main/dataset/heart.csv",
|
62 |
+
"Dataset de Doenças Renais": "https://www.kaggle.com/datasets/mansoordaku/ckdisease",
|
63 |
+
"Dataset de Diabetes": "https://github.com/siddhardhan23/multiple-disease-prediction-streamlit-app/blob/main/dataset/diabetes.csv",
|
64 |
+
"Dataset de Doenças Hepáticas": "https://www.kaggle.com/datasets/uciml/indian-liver-patient-records",
|
65 |
+
"Dataset de Câncer de Mama": "https://www.kaggle.com/datasets/uciml/breast-cancer-wisconsin-data"
|
66 |
+
}
|
67 |
+
|
68 |
+
markdown_content = "# Datasets Disponíveis\n\n"
|
69 |
+
markdown_content += "Esta página contém links para download e visualização de datasets utilizados na aplicação.\n\n"
|
70 |
+
|
71 |
+
for dataset_name, dataset_url in datasets.items():
|
72 |
+
markdown_content += f"**{dataset_name}:** [Download {dataset_name}]({dataset_url})\n\n"
|
73 |
+
|
74 |
+
return markdown_content
|
75 |
+
|
76 |
+
# Criar a interface Gradio com guias (Tabs)
|
77 |
+
tabbed_interface = gr.TabbedInterface(
|
78 |
+
[
|
79 |
+
# Guia 1: Página Inicial
|
80 |
+
gr.Interface(
|
81 |
+
fn=lambda: """
|
82 |
+
# Bem-vindo à Aplicação de Previsão de Anomalias Médicas
|
83 |
+
|
84 |
+
Este é um projeto de previsão de diversas anomalias médicas usando modelos de deep learning e machine learning.
|
85 |
+
|
86 |
+
É importante observar que os modelos utilizados nesta aplicação foram obtidos de repositórios públicos na internet e, portanto, sua confiabilidade pode variar.
|
87 |
+
|
88 |
+
Embora tenham sido treinados em grandes conjuntos de dados médicos, é fundamental lembrar que todas as previsões devem ser verificadas por profissionais de saúde qualificados.
|
89 |
+
|
90 |
+
## Perguntas Frequentes
|
91 |
+
|
92 |
+
### Como a previsão de anomalias é feita?
|
93 |
+
A detecção de pneumonia e malária é feita usando uma rede neural convolucional (CNN), enquanto a seção de diabetes é detectada por um modelo Random Forest.
|
94 |
+
|
95 |
+
### Os modelos são precisos?
|
96 |
+
Os modelos foram treinados em grandes conjuntos de dados médicos, mas lembre-se de que todas as previsões devem ser verificadas por profissionais de saúde qualificados.
|
97 |
+
|
98 |
+
### Qual é o propósito desta aplicação?
|
99 |
+
Esta aplicação foi desenvolvida para auxiliar na detecção de diversas anomalias médicas em imagens de diferentes partes do corpo.
|
100 |
+
|
101 |
+
### Quais tipos de anomalias médicas podem ser detectadas?
|
102 |
+
Os modelos podem detectar várias anomalias, incluindo pneumonia, malária e diabetes.
|
103 |
+
""",
|
104 |
+
inputs=[],
|
105 |
+
outputs="markdown",
|
106 |
+
title="Página Inicial",
|
107 |
+
description="Página inicial da aplicação de previsão de anomalias médicas."
|
108 |
+
),
|
109 |
+
|
110 |
+
# Guia 2: Previsão de Pneumonia
|
111 |
+
gr.Interface(
|
112 |
+
predict_pneumonia,
|
113 |
+
inputs=gr.inputs.Image(label="Imagem para Predição de Pneumonia"),
|
114 |
+
outputs=["text", "text"],
|
115 |
+
title="Previsão de Pneumonia",
|
116 |
+
description="Faça o upload de uma imagem para prever se há pneumonia."
|
117 |
+
),
|
118 |
+
|
119 |
+
# Guia 3: Previsão de Malária
|
120 |
+
gr.Interface(
|
121 |
+
predict_malaria,
|
122 |
+
inputs=gr.inputs.Image(label="Imagem para Predição de Malária"),
|
123 |
+
outputs=["text", "text"],
|
124 |
+
title="Previsão de Malária",
|
125 |
+
description="Faça o upload de uma imagem para prever se há malária."
|
126 |
+
),
|
127 |
+
|
128 |
+
# Guia 4: Previsão de Diabetes
|
129 |
+
gr.Interface(
|
130 |
+
predict_diabetes,
|
131 |
+
inputs=[
|
132 |
+
gr.Textbox(label="Número de Gestações"),
|
133 |
+
gr.Textbox(label="Nível de Glicose"),
|
134 |
+
gr.Textbox(label="Valor da Pressão Arterial"),
|
135 |
+
gr.Textbox(label="Valor da Espessura da Pele"),
|
136 |
+
gr.Textbox(label="Nível de Insulina"),
|
137 |
+
gr.Textbox(label="Valor do IMC"),
|
138 |
+
gr.Textbox(label="Valor da Função de Pedigree de Diabetes"),
|
139 |
+
gr.Textbox(label="Idade da Pessoa")
|
140 |
+
],
|
141 |
+
outputs="text",
|
142 |
+
title="Previsão de Diabetes",
|
143 |
+
description="Insira os dados do paciente para prever se ele tem diabetes."
|
144 |
+
),
|
145 |
+
|
146 |
+
# Guia 5: Datasets Disponíveis
|
147 |
+
gr.Interface(
|
148 |
+
fn=display_datasets,
|
149 |
+
inputs=[],
|
150 |
+
outputs="markdown",
|
151 |
+
title="Datasets Disponíveis",
|
152 |
+
description="Esta página contém links para download e visualização de datasets utilizados na aplicação."
|
153 |
+
)
|
154 |
+
],
|
155 |
+
tab_names=["Página Inicial", "Previsão de Pneumonia", "Previsão de Malária", "Previsão de Diabetes", "Datasets Disponíveis"]
|
156 |
+
)
|
157 |
+
|
158 |
+
# Lançar a interface com guias
|
159 |
+
tabbed_interface.launch()
|