radpid / app.py
yassonee's picture
Create app.py
a326b94 verified
raw
history blame
1.54 kB
import streamlit as st
from transformers import AutoProcessor, AutoModelForImageClassification
from PIL import Image
import requests
# Titre de l'application
st.title("RADPID: Assistant de diagnostic radiologique")
st.markdown("**Chargez une radiographie et sélectionnez la tâche souhaitée :**")
# Sélection des tâches
task = st.radio("Sélectionnez une tâche", ["Fracture Detection", "Pneumothorax Detection", "Pneumonia Detection"])
# Modèles
models = {
"Fracture Detection": "facebook/detr-resnet-50",
"Pneumothorax Detection": "RGDancer/Pneumothorax_detection",
"Pneumonia Detection": "wanghaoy/Chest_XRay_Pneumonia",
}
# Charger le modèle et le processeur correspondant
model_name = models[task]
processor = AutoProcessor.from_pretrained(model_name)
model = AutoModelForImageClassification.from_pretrained(model_name)
# Upload de l'image
uploaded_file = st.file_uploader("Upload your Chest X-Ray image", type=["png", "jpg", "jpeg"])
if uploaded_file is not None:
# Charger l'image
image = Image.open(uploaded_file).convert("RGB")
st.image(image, caption="Image Uploadée", use_column_width=True)
# Effectuer la prédiction
st.markdown("### Résultat de la prédiction :")
with st.spinner("Analyse en cours..."):
inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)
predictions = outputs.logits.softmax(dim=-1).tolist()
# Afficher les scores
st.write(f"Scores pour la tâche '{task}':")
st.json(predictions)