File size: 1,301 Bytes
8cc2f16
 
 
d9fd056
8cc2f16
 
 
 
 
 
 
 
d9fd056
8cc2f16
 
 
399498c
 
 
519b727
8cc2f16
399498c
8cc2f16
399498c
519b727
399498c
519b727
399498c
 
519b727
399498c
8cc2f16
399498c
8cc2f16
399498c
 
8cc2f16
 
399498c
 
8cc2f16
 
399498c
519b727
 
d9fd056
399498c
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
import math
import gradio as gr
import tensorflow as tf

configs = [
    {
        "model": "my_model_2.h5", "size": 512
    },
    {
        "model": "my_model.h5", "size": 224
    },
]

config = configs[0]
new_model = tf.keras.models.load_model(config["model"])

def classificar_imagem(entrada):
    entrada = entrada.reshape((-1, config["size"], config["size"], 3))
    prediction = new_model.predict(entrada).flatten()

    if len(prediction) > 1:
        probabilidade = 100 * math.exp(prediction[0]) / (math.exp(prediction[0]) + math.exp(prediction[1]))
    else:
        probabilidade = round(100. / (1 + math.exp(-prediction[0])), 2)

    if probabilidade > 45:
        label = "Glaucoma"
    elif probabilidade > 25:
        label = "Incerto"
    else:
        label = "N茫o glaucoma"

    return {"R贸tulo": label, "Probabilidade de glaucoma (0 - 100)": probabilidade}

interface = gr.Interface(
    fn=classificar_imagem, 
    inputs=gr.inputs.Image(shape=(config["size"], config["size"])),
    outputs=[
        gr.outputs.Textbox(label="R贸tulo"),
        gr.outputs.Textbox(label="Probabilidade de glaucoma (0 - 100)")
    ],
    examples=["001.jpg", "002.jpg", "225.jpg"],
    flagging_options=["R贸tulo correto", "R贸tulo incorreto"],
    allow_flagging="manual"
)

interface.launch()