Spaces:
Build error
Build error
| import tensorflow as tf | |
| from keras.utils import custom_object_scope | |
| import gradio as gr | |
| from PIL import Image | |
| import numpy as np | |
| # Defina a camada personalizada FixedDropout | |
| class FixedDropout(tf.keras.layers.Dropout): | |
| def __init__(self, rate, **kwargs): | |
| super().__init__(rate, **kwargs) | |
| self._rate = rate | |
| def call(self, inputs): | |
| return tf.nn.dropout(inputs, self._rate) | |
| # Registre a camada personalizada FixedDropout com o TensorFlow | |
| with custom_object_scope({'FixedDropout': FixedDropout}): | |
| # Carregue o modelo | |
| loaded_model = tf.keras.models.load_model('modelo_treinado.h5') | |
| # Crie uma lista de classes | |
| class_names = ["Normal", "Catarata"] | |
| # Defina a função de classificação | |
| def classify_image(inp): | |
| # Redimensione a imagem para o formato esperado pelo modelo (192x256) | |
| img = Image.fromarray(inp).resize((256, 192)) | |
| # Converta a imagem para um array numpy e normalize-a (escala de 0 a 1) | |
| img = np.array(img) / 255.0 | |
| # Faça uma previsão usando o modelo treinado | |
| prediction = loaded_model.predict(np.expand_dims(img, axis=0)).flatten() | |
| # Obtém a classe prevista | |
| predicted_class = class_names[np.argmax(prediction)] | |
| return predicted_class | |
| # Formate a interface Gradio com HTML e informações em português | |
| iface = gr.Interface( | |
| fn=classify_image, | |
| inputs=gr.inputs.Image(shape=(192, 256)), | |
| outputs=gr.outputs.HTML("<h2>Resultado da Classificação</h2><p><strong>Categoria Predita:</strong> {}</p>"), # Saída formatada com HTML | |
| live=True, | |
| title="Classificador de Catarata", | |
| description="Este é um classificador de imagens médicas para detectar catarata. Faça o upload de uma imagem e clique em 'Classificar' para obter a categoria predita.", | |
| allow_screenshot=False, # Desativar a captura de tela | |
| allow_flagging=False, # Desativar a opção de sinalizar | |
| gr.Interface.Label("Faça o upload de uma imagem para classificar:") | |
| ) | |
| # Inicie a interface Gradio | |
| iface.launch() | |