yassonee commited on
Commit
35a3a73
·
verified ·
1 Parent(s): 952e5d1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -20
app.py CHANGED
@@ -170,14 +170,15 @@ def main():
170
 
171
  with st.container():
172
  st.write("### 📤 Röntgenbild hochladen")
173
- uploaded_file = st.file_uploader("", type=['png', 'jpg', 'jpeg'])
174
 
175
  col1, col2 = st.columns([2, 1])
176
  with col1:
177
  conf_threshold = st.slider(
178
  "Konfidenzschwelle",
179
  min_value=0.0, max_value=1.0,
180
- value=0.60, step=0.05
 
181
  )
182
  with col2:
183
  analyze_button = st.button("Analysieren")
@@ -196,13 +197,18 @@ def main():
196
  # KnochenWächter
197
  predictions_watcher = models["KnochenWächter"](image)
198
  has_fracture = False
 
 
 
199
  for pred in predictions_watcher:
200
  if pred['score'] >= conf_threshold:
201
  confidence_color = '#0066cc' if pred['score'] > 0.7 else '#ffa500'
202
- if 'fracture' in pred['label'].lower():
 
203
  has_fracture = True
 
204
  st.markdown(f"""
205
- <div class="result-box">
206
  <span style="color: {confidence_color}; font-weight: 500;">
207
  {pred['score']:.1%}
208
  </span> - {translate_label(pred['label'])}
@@ -210,40 +216,42 @@ def main():
210
  """, unsafe_allow_html=True)
211
 
212
  # RöntgenMeister
 
213
  predictions_master = models["RöntgenMeister"](image)
214
  for pred in predictions_master:
215
  if pred['score'] >= conf_threshold:
216
  confidence_color = '#0066cc' if pred['score'] > 0.7 else '#ffa500'
217
  st.markdown(f"""
218
- <div class="result-box">
219
  <span style="color: {confidence_color}; font-weight: 500;">
220
  {pred['score']:.1%}
221
  </span> - {translate_label(pred['label'])}
222
  </div>
223
  """, unsafe_allow_html=True)
224
 
225
- # Calculate and display fracture probability
226
- fracture_prob = max((p['score'] for p in predictions_watcher
227
- if 'fracture' in p['label'].lower()), default=0)
228
- no_fracture_prob = 1 - fracture_prob
229
-
230
- st.write("#### 📊 Wahrscheinlichkeit")
231
- st.markdown(f"""
232
- <div class="result-box">
233
- Knochenbruch: <strong>{fracture_prob:.1%}</strong><br>
234
- Kein Knochenbruch: <strong>{no_fracture_prob:.1%}</strong>
235
- </div>
236
- """, unsafe_allow_html=True)
237
 
238
  with col2:
239
- st.write("#### 🎯 Visualisierung")
240
  predictions = models["KnochenAuge"](image)
241
- filtered_preds = [p for p in predictions if p['score'] >= conf_threshold]
 
242
 
243
- if filtered_preds and has_fracture:
 
244
  result_image = draw_boxes(image, filtered_preds)
245
  st.image(result_image, use_container_width=True)
246
  else:
 
247
  st.image(image, use_container_width=True)
248
 
249
  if __name__ == "__main__":
 
170
 
171
  with st.container():
172
  st.write("### 📤 Röntgenbild hochladen")
173
+ uploaded_file = st.file_uploader("Bild auswählen", type=['png', 'jpg', 'jpeg'], label_visibility="collapsed")
174
 
175
  col1, col2 = st.columns([2, 1])
176
  with col1:
177
  conf_threshold = st.slider(
178
  "Konfidenzschwelle",
179
  min_value=0.0, max_value=1.0,
180
+ value=0.60, step=0.05,
181
+ label_visibility="visible"
182
  )
183
  with col2:
184
  analyze_button = st.button("Analysieren")
 
197
  # KnochenWächter
198
  predictions_watcher = models["KnochenWächter"](image)
199
  has_fracture = False
200
+ max_fracture_score = 0
201
+
202
+ st.write("#### 🛡️ KnochenWächter")
203
  for pred in predictions_watcher:
204
  if pred['score'] >= conf_threshold:
205
  confidence_color = '#0066cc' if pred['score'] > 0.7 else '#ffa500'
206
+ label_lower = pred['label'].lower()
207
+ if 'fracture' in label_lower:
208
  has_fracture = True
209
+ max_fracture_score = max(max_fracture_score, pred['score'])
210
  st.markdown(f"""
211
+ <div class="result-box" style="color: #1a1a1a;">
212
  <span style="color: {confidence_color}; font-weight: 500;">
213
  {pred['score']:.1%}
214
  </span> - {translate_label(pred['label'])}
 
216
  """, unsafe_allow_html=True)
217
 
218
  # RöntgenMeister
219
+ st.write("#### 🎓 RöntgenMeister")
220
  predictions_master = models["RöntgenMeister"](image)
221
  for pred in predictions_master:
222
  if pred['score'] >= conf_threshold:
223
  confidence_color = '#0066cc' if pred['score'] > 0.7 else '#ffa500'
224
  st.markdown(f"""
225
+ <div class="result-box" style="color: #1a1a1a;">
226
  <span style="color: {confidence_color}; font-weight: 500;">
227
  {pred['score']:.1%}
228
  </span> - {translate_label(pred['label'])}
229
  </div>
230
  """, unsafe_allow_html=True)
231
 
232
+ # Probabilités actualisées
233
+ if max_fracture_score > 0:
234
+ st.write("#### 📊 Wahrscheinlichkeit")
235
+ no_fracture_prob = 1 - max_fracture_score
236
+ st.markdown(f"""
237
+ <div class="result-box" style="color: #1a1a1a;">
238
+ Knochenbruch: <strong style="color: #0066cc">{max_fracture_score:.1%}</strong><br>
239
+ Kein Knochenbruch: <strong style="color: #ffa500">{no_fracture_prob:.1%}</strong>
240
+ </div>
241
+ """, unsafe_allow_html=True)
 
 
242
 
243
  with col2:
244
+ # Vérification et localisation des fractures
245
  predictions = models["KnochenAuge"](image)
246
+ filtered_preds = [p for p in predictions if p['score'] >= conf_threshold
247
+ and 'fracture' in p['label'].lower()]
248
 
249
+ if filtered_preds:
250
+ st.write("#### 🎯 Fraktur Lokalisation")
251
  result_image = draw_boxes(image, filtered_preds)
252
  st.image(result_image, use_container_width=True)
253
  else:
254
+ st.write("#### 🖼️ Röntgenbild")
255
  st.image(image, use_container_width=True)
256
 
257
  if __name__ == "__main__":