Thanize commited on
Commit
ed488d3
1 Parent(s): 1294835

update radio

Browse files
Files changed (4) hide show
  1. diabetes_model.sav +0 -0
  2. malaria.h5 +3 -0
  3. pneumonia.h5 +3 -0
  4. 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()