Spaces:
Sleeping
Sleeping
File size: 3,364 Bytes
8f69b5e |
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 |
import gradio as gr
from PIL import Image
import numpy as np
from fpdf import FPDF
import os
# Fonction de simulation pour les prédictions
def simulation_prediction(image):
# Simule une segmentation d'image (remplacer par un modèle réel)
segmented_image = np.array(image) # Image segmentée (pour la démo, la même image)
pred_class = "Mélanome (simulé)"
confidence = "95% (simulé)"
return segmented_image, pred_class, confidence
# Fonction pour générer un rapport de diagnostic en PDF
def generate_report(pred_class, confidence):
"""Génère un rapport PDF basé sur les prédictions."""
rapport = f"### Rapport de Diagnostic\n\n**Prédiction :** {pred_class}\n\n**Confiance :** {confidence}\n\n"
rapport += "Ceci est un rapport simulé. Dans la version finale, le modèle fournira des prédictions réelles."
# Créer un PDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.multi_cell(0, 10, rapport)
# Enregistrer le fichier PDF
pdf_filename = "rapport_diagnostic.pdf"
pdf.output(pdf_filename)
return rapport, pdf_filename # Retourner le rapport en texte et le nom du fichier PDF
# Créer l'interface Gradio
with gr.Blocks() as demo:
# Afficher le nom de l'application
gr.Markdown("<h1 style='text-align: center; font-size: 3em; font-weight: bold;'>DERMATO STUDIO</h1>")
# Ajouter une description de la plateforme, centrée
gr.Markdown("""
<div style='text-align: center;'>
"DERMATO STUDIO" est une plateforme innovante dédiée à l'analyse des lésions cutanées.
Grâce à des algorithmes avancés de détection et de classification,
nous offrons aux utilisateurs la possibilité de télécharger des images de lésions cutanées
et d'obtenir une analyse rapide et précise.
Notre objectif est de fournir un rapport de diagnostic complet qui aide à
sensibiliser et à guider les utilisateurs dans leurs démarches de santé.
</div>
""", elem_id="description")
# Section de téléchargement d'image
with gr.Row():
with gr.Column():
image_input = gr.Image(label="Téléchargez une image de lésion cutanée", type="pil")
analyze_button = gr.Button("Analyser")
with gr.Column():
result_label = gr.Label(label="Prédiction : ")
confidence_label = gr.Label(label="Confiance : ")
# Section pour afficher l'image segmentée
segmented_image_output = gr.Image(label="Image Segmentée")
# Section pour afficher le rapport de diagnostic
report_output = gr.Markdown(value="### Le rapport de diagnostic apparaîtra ici.")
download_report = gr.File(label="Télécharger le rapport", type="filepath")
# Simuler la prédiction, la segmentation d'image et la génération de rapport lorsque le bouton est cliqué
analyze_button.click(
fn=simulation_prediction,
inputs=image_input,
outputs=[segmented_image_output, result_label, confidence_label]
)
analyze_button.click(
fn=generate_report,
inputs=[result_label, confidence_label],
outputs=[report_output, download_report]
)
# Lancer l'interface de démonstration
demo.launch()
|