import gradio as gr from fastai.vision.all import * import skimage learn = load_learner('export.pkl') labels = learn.dls.vocab def predict(img): img = PILImage.create(img) pred,pred_idx,probs = learn.predict(img) prediction = str(pred) # Provide explanation based on the prediction if pred == "Cancer_positive": explanation = "The model predicts that the image shows signs of cancer." elif pred == "Cancer_negative": explanation = "The model predicts that the image does not show signs of cancer." elif pred == "implant_cancer_positive": explanation = "The model predicts that the image shows signs of implant-related cancer." elif pred == "implant_cancer_negative": explanation = "The model predicts that the image does not show signs of implant-related cancer." else: explanation = "Unknown prediction." return prediction, explanation # Create the Gradio interface inputs = gr.inputs.Image(label="Upload an image") outputs = [ gr.outputs.Textbox(label="Prediction"), gr.outputs.Textbox(label="Explanation") ] title = "Breast cancer detection with AI(Deep Transfer Learning)" description = "
As a radiologist or oncologist, it is crucial to know what is wrong with a breast x-ray image.
Upload the breast X-ray image to know what is wrong with a patients breast with or without inplant
" article="
Web app is built and managed by Addai Fosberg
" examples = ['img1.jpeg', 'img2.jpeg'] enable_queue=True gr.Interface(fn=predict,inputs=gr.inputs.Image(shape=(512, 512)),outputs=gr.outputs.Label(num_top_classes=3),title=title,description=description,article=article,examples=examples,enable_queue=enable_queue).launch()