Update app.py
Browse files
app.py
CHANGED
|
@@ -11,28 +11,26 @@ app = FastAPI()
|
|
| 11 |
# Chargement des modèles
|
| 12 |
def load_models():
|
| 13 |
return {
|
| 14 |
-
"chest_classifier": pipeline("image-classification", model="codewithdark/vit-chest-xray"
|
| 15 |
}
|
| 16 |
|
| 17 |
models = load_models()
|
| 18 |
|
| 19 |
# Liste des maladies dans l'ordre des labels du modèle
|
| 20 |
-
LABEL_MAP =
|
| 21 |
-
'Kardiomegalie', # Élargissement du cœur
|
| 22 |
-
'Ödem', # Œdème
|
| 23 |
-
'Konsolidierung', # Consolidation
|
| 24 |
-
'Lungenentzündung', # Pneumonie
|
| 25 |
-
'Kein Befund' # Aucune anomalie
|
| 26 |
-
|
| 27 |
|
| 28 |
-
def translate_label(
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
except (ValueError, IndexError):
|
| 35 |
-
return f"Unbekannt ({index})"
|
| 36 |
return translations.get(label, label)
|
| 37 |
|
| 38 |
def image_to_base64(image):
|
|
@@ -257,7 +255,7 @@ async def analyze_file(file: UploadFile = File(...)):
|
|
| 257 |
results_html += f"""
|
| 258 |
<div>
|
| 259 |
<span class="{confidence_class}">{pred['score']:.1%}</span> -
|
| 260 |
-
{translate_label(pred['label']
|
| 261 |
</div>
|
| 262 |
"""
|
| 263 |
|
|
|
|
| 11 |
# Chargement des modèles
|
| 12 |
def load_models():
|
| 13 |
return {
|
| 14 |
+
"chest_classifier": pipeline("image-classification", model="codewithdark/vit-chest-xray")
|
| 15 |
}
|
| 16 |
|
| 17 |
models = load_models()
|
| 18 |
|
| 19 |
# Liste des maladies dans l'ordre des labels du modèle
|
| 20 |
+
LABEL_MAP = {
|
| 21 |
+
'LABEL_0': 'Kardiomegalie', # Élargissement du cœur
|
| 22 |
+
'LABEL_1': 'Ödem', # Œdème
|
| 23 |
+
'LABEL_2': 'Konsolidierung', # Consolidation
|
| 24 |
+
'LABEL_3': 'Lungenentzündung', # Pneumonie
|
| 25 |
+
'LABEL_4': 'Kein Befund' # Aucune anomalie
|
| 26 |
+
}
|
| 27 |
|
| 28 |
+
def translate_label(label):
|
| 29 |
+
# Si le label est au format "LABEL_X", on le traduit
|
| 30 |
+
if isinstance(label, str) and label in LABEL_MAP:
|
| 31 |
+
return LABEL_MAP[label]
|
| 32 |
+
# Sinon on retourne le label original avec un avertissement
|
| 33 |
+
return f"Unbekannt ({label})"
|
|
|
|
|
|
|
| 34 |
return translations.get(label, label)
|
| 35 |
|
| 36 |
def image_to_base64(image):
|
|
|
|
| 255 |
results_html += f"""
|
| 256 |
<div>
|
| 257 |
<span class="{confidence_class}">{pred['score']:.1%}</span> -
|
| 258 |
+
{translate_label(pred['label'])}
|
| 259 |
</div>
|
| 260 |
"""
|
| 261 |
|