| 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() |