File size: 3,311 Bytes
19a5591
 
 
 
 
 
7500ba9
 
 
 
 
 
 
 
 
 
 
 
 
 
19a5591
 
7500ba9
 
 
 
19a5591
7500ba9
19a5591
c691223
7500ba9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c691223
 
19a5591
7500ba9
 
 
 
 
 
19a5591
 
7500ba9
 
 
 
 
 
 
 
 
19a5591
7500ba9
 
 
 
 
 
 
 
 
19a5591
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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 = [
    'Acne / Rosacea', 'Actinic Keratosis / Basal Cell Carcinoma', 
    'Atopic Dermatitis', 'Bullous Disease', 
    'Cellulitis Impetigo (Bacterial Infections)', 
    'Eczema', 'Exanthems (Drug Eruptions)', 'Hair Loss (Alopecia)', 
    'Herpes HPV', 'Disorders of Pigmentation', 
    'Lupus ',
    'Melanoma (Skin Cancer)', 'Nail Fungus', 
    'Poison Ivy', 
    'Psoriasis (Lichen Planus)', 'Scabies Lyme', 
    'Seborrheic Keratoses', 'Systemic Disease', 
    'Tinea Ringworm (Fungal Infections)', 
    'Urticaria Hives', 'Vascular Tumors', 'Vasculitis', 'Warts Molluscum'
]

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"

description = (
    "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. Pérdida de Cabello (Alopecia)\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."
)

article = (
    "<p style='text-align: center'>"
    "<span style='font-size: 15pt;'>IADERM . Jeysshon Bustos . 2023.</span>"
    "</p>"
    "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.jpg'],
    ['./cherry-angioma-16.jpg'],
    ['./malignant-melanoma-16.jpg'],  
    ['./tinea-primary-lesion-15.jpg'],
    ['./congenital-nevus-35.jpg'],
    ['./tinea-body-137.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()