File size: 1,650 Bytes
adf2111
9c07890
75fd37c
3cba85b
0f820f2
08cbfae
9c07890
 
 
 
 
 
 
 
 
 
 
 
 
08cbfae
7708ef9
 
08cbfae
7708ef9
 
df12e30
 
 
 
 
ffc1de3
7708ef9
a2419a7
c8fb571
ecd73fd
 
 
6205a65
 
aeb98b8
 
c8fb571
6205a65
7708ef9
08cbfae
7708ef9
ffc1de3
df12e30
08cbfae
8d9c7cb
7708ef9
65cc174
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import tensorflow as tf
from keras.utils import custom_object_scope
import gradio as gr
from PIL import Image, ImageDraw
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", "Cataract"]

# 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)]

    # Redimensione a imagem de entrada para um tamanho menor (64x64) e aumente a resolução
    inp = Image.fromarray(inp).resize((64, 64), Image.BICUBIC)

    return np.array(inp), predicted_class


# Crie uma interface Gradio
iface = gr.Interface(
    fn=classify_image,
    inputs=gr.inputs.Image(shape=(192, 256)),
    outputs=[gr.outputs.Image(type="numpy"), "label"],
)

# Inicie a interface Gradio
iface.launch(debug=True)