|
import gradio as gr |
|
from fastai.vision.all import * |
|
import skimage |
|
|
|
def get_x(r): return "" |
|
|
|
def get_y(r): return r['diagnosis'] |
|
|
|
learn = load_learner('model.pkl') |
|
labels = learn.dls.vocab |
|
|
|
|
|
label_descriptions = { |
|
0: "No DR", |
|
1: "Mild", |
|
2: "Moderate", |
|
3: "Severe", |
|
4: "Proliferative DR" |
|
} |
|
|
|
def predict(img): |
|
img = PILImage.create(img) |
|
pred,pred_idx,probs = learn.predict(img) |
|
|
|
return {label_descriptions[labels[i]]: float(probs[i]) for i in range(len(labels))} |
|
|
|
title = "Proliferative Retinopathy Detection" |
|
description = """Detects severity of diabetic retinopathy - |
|
|
|
0 - No DR |
|
|
|
1 - Mild |
|
|
|
2 - Moderate |
|
|
|
3 - Severe |
|
|
|
4 - Proliferative DR |
|
""" |
|
article="<p style='text-align: center'><a href='https://www.kaggle.com/code/josemauriciodelgado/proliferative-retinopathy' target='_blank'>Notebook</a></p>" |
|
|
|
|
|
test_folder = "test" |
|
image_paths = [os.path.join(test_folder, img) for img in os.listdir(test_folder) if img.endswith(('.png', '.jpg', '.jpeg'))] |
|
|
|
gr.Interface( |
|
fn=predict, |
|
inputs=gr.Image(), |
|
outputs=gr.Label(num_top_classes=5), |
|
examples=image_paths, |
|
article=article, |
|
title=title, |
|
description=description, |
|
).launch() |