jbobym commited on
Commit
1737a47
·
verified ·
1 Parent(s): ead325d

Rewrite UI text in plain language for clinical audience; strip em dashes from interface

Browse files
Files changed (1) hide show
  1. app.py +49 -42
app.py CHANGED
@@ -53,12 +53,12 @@ SPACE_URL = "https://huggingface.co/spaces/jbobym/wound-classifier"
53
 
54
  TITLE: dict[str, str] = {
55
  "en": (
56
- "# Chronic Wound Classifier — 4-class AZH demo\n"
57
  "*Developed, trained, and deployed by **John Boby Mesadieu**.*\n\n"
58
  f"**Share this demo:** [{SPACE_URL}]({SPACE_URL})"
59
  ),
60
  "fr": (
61
- "# Classification des plaies chroniques — démo AZH 4 classes\n"
62
  "*Conçu, entraîné et déployé par **John Boby Mesadieu**.*\n\n"
63
  f"**Partager cette démo :** [{SPACE_URL}]({SPACE_URL})"
64
  ),
@@ -67,44 +67,49 @@ TITLE: dict[str, str] = {
67
  DESCRIPTION: dict[str, str] = {
68
  "en": """\
69
  Upload a close-up photo of a chronic wound and the model returns its best guess at the wound type
70
- (diabetic ulcer, pressure ulcer, surgical wound, or venous ulcer) with per-class probabilities.
71
-
72
- **Before you upload — a few things worth knowing:**
73
-
74
- - **Frame the wound in the center.** The model resizes and center-crops to 224×224 pixels, so a wound
75
- off in the corner of a high-resolution phone photo will get cropped out. Close-up clinical-style
76
- framing (the wound fills most of the frame) gives the cleanest predictions.
77
- - **JPEG or PNG works fine.** Anything PIL can open.
78
- - **There is no "not a wound" option.** Upload a face, a sandwich, a sunset — the model will
79
- confidently place it into one of the four wound classes anyway. The low-confidence warning below
80
- is the only signal you'll get that the image probably isn't what the model was trained on.
81
- - **Pressure-ulcer predictions are weakest** (~41% accuracy on the held-out test set). When the model
82
- says "Pressure ulcer," treat the call with extra skepticism.
83
-
84
- **This is a research demo, not a medical device.** It does not diagnose, triage, or replace clinician
85
- judgement. See *Approach* below for methodology and headline accuracy.
 
 
 
86
  """,
87
  "fr": """\
88
  Téléversez une photo en gros plan d'une plaie chronique : le modèle propose son meilleur diagnostic
89
- parmi quatre types de plaies (ulcère diabétique, escarre, plaie chirurgicale, ulcère veineux) avec
90
- les probabilités par classe.
91
 
92
  **À lire avant de téléverser :**
93
 
94
- - **Cadrez la plaie au centre de l'image.** Le modèle redimensionne et recadre au centre à 224×224 pixels :
95
- une plaie située dans un coin d'une photo haute résolution sera coupée. Un cadrage clinique rapproché
96
- (la plaie occupe la majeure partie du cadre) donne les prédictions les plus propres.
97
- - **JPEG ou PNG conviennent.** Tout format que PIL sait ouvrir.
98
- - **Il n'y a pas d'option « ce n'est pas une plaie ».** Téléversez un visage, un sandwich, un coucher
99
- de soleil : le modèle classera l'image dans l'une des quatre classes de plaies, et avec confiance.
100
- L'avertissement de faible confiance ci-dessous est le seul signal indiquant que l'image n'est
101
- probablement pas conforme aux données d'entraînement.
102
- - **Les prédictions d'escarre sont les moins fiables** (~41 % d'exactitude sur le jeu de test).
103
- Lorsque le modèle indique « Escarre », à interpréter avec une prudence accrue.
104
-
105
- **Ceci est une démonstration de recherche, et non un dispositif médical.** Le modèle n'établit aucun
106
- diagnostic, ne fait pas de triage et ne remplace en rien le jugement clinique. Voir *Approche*
107
- ci-dessous pour la méthodologie et l'exactitude principale.
 
 
108
  """,
109
  }
110
 
@@ -164,26 +169,28 @@ NOTE_LOW_CONFIDENCE: dict[str, str] = {
164
  "**Low confidence** (top class {top_label} at {top_pct}). "
165
  "This often means the photo isn't a clear close-up of a wound, or the wound type "
166
  'isn\'t one of the four the model was trained on. The model has no "not a wound" '
167
- "option it will always pick one of D / P / S / V even when the image isn't a wound."
 
168
  ),
169
  "fr": (
170
  "**Faible confiance** (classe principale {top_label} à {top_pct}). "
171
  "Cela indique souvent que la photo n'est pas un gros plan clair d'une plaie, ou "
172
  "que le type de plaie ne fait pas partie des quatre sur lesquels le modèle a été entraîné. "
173
- "Le modèle n'a pas d'option « ce n'est pas une plaie » il choisira toujours D / P / S / V "
174
- "même si l'image n'est pas une plaie."
175
  ),
176
  }
177
 
178
  NOTE_PRESSURE: dict[str, str] = {
179
  "en": (
180
- "**Pressure-class predictions are the model's weak spot** "
181
- "(~0.41 accuracy on the held-out test set). Treat this prediction with extra skepticism."
 
182
  ),
183
  "fr": (
184
- "**Les prédictions d'escarre sont le point faible du modèle** "
185
- "(~0,41 d'exactitude sur le jeu de test retenu). Interpréter cette prédiction avec une "
186
- "prudence accrue."
187
  ),
188
  }
189
 
 
53
 
54
  TITLE: dict[str, str] = {
55
  "en": (
56
+ "# Chronic Wound Classifier\n"
57
  "*Developed, trained, and deployed by **John Boby Mesadieu**.*\n\n"
58
  f"**Share this demo:** [{SPACE_URL}]({SPACE_URL})"
59
  ),
60
  "fr": (
61
+ "# Classification des plaies chroniques\n"
62
  "*Conçu, entraîné et déployé par **John Boby Mesadieu**.*\n\n"
63
  f"**Partager cette démo :** [{SPACE_URL}]({SPACE_URL})"
64
  ),
 
67
  DESCRIPTION: dict[str, str] = {
68
  "en": """\
69
  Upload a close-up photo of a chronic wound and the model returns its best guess at the wound type
70
+ (diabetic ulcer, pressure ulcer, surgical wound, or venous ulcer) along with how confident it is in
71
+ each option.
72
+
73
+ **A few things worth knowing before you upload:**
74
+
75
+ - **Frame the wound in the center of the photo.** The model focuses on a square in the middle of
76
+ the image, so anything in the corners gets cut off. A close-up where the wound fills most of the
77
+ photo works best.
78
+ - **JPEG or PNG work fine.**
79
+ - **Don't upload anything that isn't a wound.** The model can only choose between the four wound
80
+ types. If you give it a photo of something else (a face, an object, a landscape), it will still
81
+ pick one of the four. It has no way to say "this is not a wound." Watch the confidence number: if
82
+ it comes back below 50%, there's a good chance the photo isn't something the model knows how to
83
+ handle.
84
+ - **Pressure-ulcer predictions are the least reliable.** The model gets pressure ulcers right about
85
+ 4 times out of 10 in our testing. If it says Pressure ulcer, treat the answer with care.
86
+
87
+ **This is a research demo, not a medical device.** It does not diagnose, triage, or replace
88
+ clinician judgement. See *Approach* below for the methodology and headline accuracy.
89
  """,
90
  "fr": """\
91
  Téléversez une photo en gros plan d'une plaie chronique : le modèle propose son meilleur diagnostic
92
+ parmi quatre types de plaies (ulcère diabétique, escarre, plaie chirurgicale, ulcère veineux) ainsi
93
+ que son degré de confiance pour chaque option.
94
 
95
  **À lire avant de téléverser :**
96
 
97
+ - **Cadrez la plaie au centre de la photo.** Le modèle se concentre sur un carré au milieu de
98
+ l'image, donc tout ce qui se trouve dans les coins est coupé. Un gros plan où la plaie occupe la
99
+ majeure partie de la photo donne le meilleur résultat.
100
+ - **JPEG ou PNG conviennent.**
101
+ - **Ne téléversez rien qui ne soit pas une plaie.** Le modèle ne peut choisir qu'entre les quatre
102
+ types de plaies. Si vous lui donnez la photo d'autre chose (un visage, un objet, un paysage), il
103
+ choisira quand même l'une des quatre. Il n'a aucun moyen de dire « ce n'est pas une plaie ».
104
+ Surveillez le pourcentage de confiance : s'il est sous 50 %, il y a de fortes chances que la
105
+ photo ne soit pas quelque chose que le modèle sait reconnaître.
106
+ - **Les prédictions d'escarre sont les moins fiables.** Le modèle reconnaît correctement les
107
+ escarres environ 4 fois sur 10 dans nos tests. S'il indique Escarre, prenez la réponse avec
108
+ précaution.
109
+
110
+ **Ceci est une démonstration de recherche, et non un dispositif médical.** Le modèle n'établit
111
+ aucun diagnostic, ne fait pas de triage et ne remplace en rien le jugement clinique. Voir
112
+ *Approche* ci-dessous pour la méthodologie et l'exactitude principale.
113
  """,
114
  }
115
 
 
169
  "**Low confidence** (top class {top_label} at {top_pct}). "
170
  "This often means the photo isn't a clear close-up of a wound, or the wound type "
171
  'isn\'t one of the four the model was trained on. The model has no "not a wound" '
172
+ "option, so it will always pick one of the four wound types even when the image isn't "
173
+ "a wound."
174
  ),
175
  "fr": (
176
  "**Faible confiance** (classe principale {top_label} à {top_pct}). "
177
  "Cela indique souvent que la photo n'est pas un gros plan clair d'une plaie, ou "
178
  "que le type de plaie ne fait pas partie des quatre sur lesquels le modèle a été entraîné. "
179
+ "Le modèle n'a pas d'option « ce n'est pas une plaie », donc il choisira toujours l'un "
180
+ "des quatre types de plaies même si l'image n'est pas une plaie."
181
  ),
182
  }
183
 
184
  NOTE_PRESSURE: dict[str, str] = {
185
  "en": (
186
+ "**Pressure-ulcer predictions are the least reliable.** "
187
+ "The model gets pressure ulcers right about 4 times out of 10 in our testing. "
188
+ "Treat this prediction with care."
189
  ),
190
  "fr": (
191
+ "**Les prédictions d'escarre sont les moins fiables.** "
192
+ "Le modèle reconnaît correctement les escarres environ 4 fois sur 10 dans nos tests. "
193
+ "Interprétez cette prédiction avec précaution."
194
  ),
195
  }
196