Spaces:
Running
Running
import gradio as gr | |
import tensorflow as tf | |
path_to_model = "./skin_model_23_75.18.h5" | |
model = tf.keras.models.load_model(path_to_model) | |
labels = [ | |
'Acné / Rosácea', 'Queratosis Actínica / Carcinoma Basocelular', | |
'Dermatitis Atópica', 'Enfermedad Bullosa', | |
'Celulitis Impétigo (Infecciones Bacterianas)', | |
'Eczema', 'Exanthems (Erupciones Cutáneas por Medicamentos)', 'Pérdida de Cabello (Alopecia)', | |
'Herpes HPV', 'Trastornos de Pigmentación', | |
'Lupus', | |
'Melanoma (Cáncer de Piel)', 'Hongos en las Uñas', | |
'Hiedra Venenosa', | |
'Psoriasis (Lichen Planus)', 'Sarna Lyme', | |
'Queratosis Seborreica', 'Enfermedad Sistémica', | |
'Tinea Ringworm (Infecciones Fúngicas)', | |
'Urticaria Ronchas', 'Tumores Vasculares', 'Vasculitis', 'Verrugas Molusco' | |
] | |
def classify_image(photos): | |
photos = photos.reshape((-1, 224, 224, 3)) | |
prediction = model.predict(photos).flatten() | |
confidences = {labels[i]: float(prediction[i]) for i in range(23)} | |
return confidences | |
title = "IA-DERM DETECTION PFIZER" | |
article = ( | |
"Se propone un sistema automatizado para el diagnóstico de las 23 enfermedades comunes de la piel:\n\n" | |
"1. Acné / Rosácea\n" | |
"2. Queratosis Actínica / Carcinoma Basocelular\n" | |
"3. Dermatitis Atópica\n" | |
"4. Enfermedades Bullosas\n" | |
"5. Celulitis / Impétigo (Infecciones Bacterianas)\n" | |
"6. Eccema\n" | |
"7. Exantemas (Erupciones Cutáneas por Medicamentos)\n" | |
"8. (areata)\n" | |
"9. Herpes / VPH\n" | |
"10. Trastornos de la Pigmentación\n" | |
"11. Lupus\n" | |
"12. Melanoma (Cáncer de Piel)\n" | |
"13. Hongos en las Uñas\n" | |
"14. Hiedra Venenosa\n" | |
"15. Psoriasis (liquen plano)\n" | |
"16. Sarna / Enfermedad de Lyme\n" | |
"17. Queratosis Seborreica\n" | |
"18. Enfermedad Sistémica\n" | |
"19. Tiña / Tiña (Infecciones Fúngicas)\n" | |
"20. Urticaria / Ronchas\n" | |
"21. Tumores Vasculares\n" | |
"22. Vasculitis\n" | |
"23. Verrugas / Molusco\n\n" | |
"Este sistema automatizado se basa en un modelo preentrenado EfficientNetB7, capaz de diagnosticar 23 enfermedades cutáneas comunes. La interfaz te permite cargar una imagen y obtener las probabilidades de cada enfermedad detectada." | |
"<p style='text-align: center'>" | |
"<span style='font-size: 15pt;'>IADERM . Jeysshon Bustos . 2023.</span>" | |
"</p>" | |
) | |
description= ( | |
"Utilizamos la interfaz de usuario generada por Gradio para ingresar imágenes a nuestra red neuronal convolucional, la cual ha sido entrenada con el propósito de realizar clasificaciones de imágenes. Esta red neuronal demostró su capacidad al lograr una precisa categorización de la imagen proporcionada. En ocasiones, resulta beneficioso ajustar el tamaño de la imagen mediante la interfaz de Gradio para potenciar aún más su rendimiento." | |
) | |
examples = [ | |
['./123.jpg'], | |
['./acne-closed-comedo-2.jpg'], | |
['./distal-subungual-onychomycosis-86.jpeg'], | |
['./cherry-angioma-16.jpg'], | |
['./malignant-melanoma-16.jpg'], | |
['./tinea-primary-lesion-15.jpeg'], | |
['./congenital-nevus-35.jpg'], | |
['./tinea-body-137.jpg'], | |
['./atopic-13.jpg'], | |
['./atopic-7.jpg'] | |
] | |
gr.Interface( | |
fn=classify_image, | |
title=title, | |
article=article, | |
description=description, | |
inputs=gr.inputs.Image(shape=(224, 224)), | |
outputs=gr.outputs.Label(num_top_classes=4), | |
examples=examples | |
).launch() | |