Spaces:
Build error
Build error
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 classify_image(inp): | |
inp = inp.reshape((-1, config["size"], config["size"], 3)) | |
prediction = new_model.predict(inp).flatten() | |
print(prediction) | |
if len(prediction) > 1: | |
probability = 100 * math.exp(prediction[0]) / (math.exp(prediction[0]) + math.exp(prediction[1])) | |
else: | |
probability = round(100. / (1 + math.exp(-prediction[0])), 2) | |
if probability > 45: | |
return "Glaucoma", probability | |
if probability > 25: | |
return "Unclear", probability | |
return "Not glaucoma", probability | |
gr.Interface( | |
fn=classify_image, | |
inputs=gr.inputs.Image(shape=(config["size"], config["size"])), | |
outputs=[ | |
gr.outputs.Textbox(label="Label"), | |
gr.outputs.Textbox(label="Glaucoma probability (0 - 100)"), | |
], | |
description="Detecte o glaucoma com precisão usando um aplicativo inovador\ | |
baseado em Deep Learning. Ao analisar imagens OCT do olho, obtidas por meio da \ | |
Tomografia de Coerência Óptica, o aplicativo identifica de forma precisa padrões e \ | |
características associadas ao glaucoma. Com um simples upload da imagem OCT,\ | |
você receberá resultados rápidos e confiáveis sobre a presença ou ausência da condição, \ | |
permitindo um diagnóstico precoce e preciso. Cuide da sua saúde ocular de maneira conveniente, \ | |
confiando na tecnologia avançada deste aplicativo que combina a precisão do Deep Learning \ | |
com a alta resolução das imagens OCT.\n\n | |
'akiec': Ceratose actínica intraepitelial (AKIEC) é uma lesão pré-cancerígena da pele exposta ao sol.\ | |
'bcc': Carcinoma basocelular (BCC) é o tipo mais comum de câncer de pele.\ | |
'bkl': Lesão benigna da pele (BKL) refere-se a várias lesões não cancerosas.\ | |
'df': Dermatofibroma (DF) é uma protuberância benigna na pele.\ | |
'mel': Melanoma (MEL) é um câncer de pele agressivo.\ | |
'nv': Nevo melanocítico (NV) é um crescimento benigno na pele, como uma pinta.\ | |
'vasc': Lesão vascular (VASC) envolve anormalidades dos vasos sanguíneos na pele." | |
examples=["001.jpg", "002.jpg", "225.jpg"], | |
flagging_options=["Correct label", "Incorrect label"], | |
allow_flagging="manual", | |
).launch() |