|
import gradio as gr |
|
import tensorflow as tf |
|
import numpy as np |
|
import cv2 |
|
|
|
new_model = tf.keras.models.load_model('/content/drive/MyDrive/1.h5') |
|
new_model_severite = tf.keras.models.load_model('/content/drive/MyDrive/model_severite_sckin.h5') |
|
|
|
def classify_image(file_name,choix): |
|
if choix == "Categorisation": |
|
img1 = cv2.imread(file_name.name.replace("\\",'/'),0) |
|
img = cv2.resize(img1, (256,256)) |
|
img = img.reshape(img.shape[0],img.shape[1],1) |
|
pred = new_model.predict(np.array([img])) |
|
pred_arg = pred.argmax() |
|
pred_coef = pred[0][pred.argmax()] |
|
if pred_arg == 0: |
|
pred = "MEL avec une précision de " + str(pred_coef) |
|
elif pred_arg == 1: |
|
pred= "NV avec une précision de " + str(pred_coef) |
|
elif pred_arg == 2: |
|
pred= "BCC avec une précision de "+ str(pred_coef) |
|
elif pred_arg == 3: |
|
pred= "AKIEC avec une précision de "+ str(pred_coef) |
|
elif pred_arg == 4: |
|
pred= "BKL avec une précision de "+ str(pred_coef) |
|
elif pred_arg == 5: |
|
pred= "DF avec une précision de "+ str(pred_coef) |
|
elif pred_arg == 6: |
|
pred= "VASC avec une précision de "+ str(pred_coef) |
|
return pred |
|
else: |
|
img = cv2.imread('/content/2.jpg',cv2.IMREAD_UNCHANGED) |
|
resized_image = cv2.resize(img, (256, 256), interpolation=cv2.INTER_AREA) |
|
pred = new_model_severite.predict(np.expand_dims(resized_image, 0)) |
|
if pred[0][0]==0: |
|
pred = "Malin" |
|
else: |
|
pred = "Benin" |
|
return pred |
|
image = gr.inputs.File( file_count="single",type="file", label="Fichier à Traiter") |
|
rad = gr.Radio(["Severité", "Categorisation"], label="Choix de mode de traitement", info="Que voulez-vous faire?") |
|
gr.Interface( |
|
fn=classify_image, |
|
inputs=[image,rad], |
|
outputs="text", |
|
interpretation="default", |
|
theme="dark-peach", |
|
title="API SkinNet de Test de diagnostique du Cancer de peau", |
|
description="Cette API est utilisé pour dire si le Cancer de sein est Maline ou Pas" |
|
).launch() |