DawnC commited on
Commit
32370c8
·
1 Parent(s): 7587a5c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -12
app.py CHANGED
@@ -302,12 +302,10 @@ async def predict(image):
302
  # dogs_info += buttons_html
303
 
304
 
305
- dogs_info = ""
 
306
 
307
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
308
- # 每次迭代重新初始化 buttons_html
309
- buttons_html = ""
310
-
311
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
312
  color = color_list[i % len(color_list)]
313
  draw.rectangle(box, outline=color, width=3)
@@ -318,21 +316,21 @@ async def predict(image):
318
  dogs_info += f'<h2>Dog {i+1}</h2>'
319
 
320
  if top1_prob >= 0.45:
321
- # 信心較高,顯示首選品種並提供描述
322
  breed = topk_breeds[0]
323
  description = get_dog_description(breed)
324
  dogs_info += format_description_html(description, breed)
325
 
326
  elif combined_confidence >= 0.15:
327
- # 這裡保留與 >= 0.45 相同的顯示邏輯,只是增加按鈕功能
328
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
329
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
330
- # 保持顯示正常的方式,避免附加多餘字串
331
- prob = float(prob.replace('%', '')) # 去掉百分比符號,轉換為浮點數
332
  dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)</li>"
333
  dogs_info += "</ul>"
334
 
335
- # 生成按鈕區塊
336
  buttons_html = '<div class="breed-buttons">'
337
  for breed in topk_breeds[:3]:
338
  button_id = f"Dog {i+1}: More about {breed}"
@@ -343,9 +341,10 @@ async def predict(image):
343
  else:
344
  dogs_info += "<p>The image is unclear or the breed is not in the dataset. Please upload a clearer image.</p>"
345
 
346
- dogs_info += buttons_html # 確保按鈕附加在該狗的結果中
347
- dogs_info += '</div>' # 關閉該狗的資訊區塊
348
-
 
349
 
350
  html_output = f"""
351
  <style>
 
302
  # dogs_info += buttons_html
303
 
304
 
305
+ dogs_info = "" # 初始化dogs_info
306
+ buttons_html = "" # 初始化buttons_html
307
 
308
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
 
 
 
309
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
310
  color = color_list[i % len(color_list)]
311
  draw.rectangle(box, outline=color, width=3)
 
316
  dogs_info += f'<h2>Dog {i+1}</h2>'
317
 
318
  if top1_prob >= 0.45:
319
+ # 當信心 >= 0.45 顯示單一品種
320
  breed = topk_breeds[0]
321
  description = get_dog_description(breed)
322
  dogs_info += format_description_html(description, breed)
323
 
324
  elif combined_confidence >= 0.15:
325
+ # 這裡保留多品種推測的邏輯
326
  dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
327
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
328
+ # 將每個品種的信心值顯示出來,避免品種名稱的冗餘附加
329
+ prob = float(prob.replace('%', '')) # 去掉百分比符號並轉換為浮點數
330
  dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)</li>"
331
  dogs_info += "</ul>"
332
 
333
+ # 按鈕生成邏輯
334
  buttons_html = '<div class="breed-buttons">'
335
  for breed in topk_breeds[:3]:
336
  button_id = f"Dog {i+1}: More about {breed}"
 
341
  else:
342
  dogs_info += "<p>The image is unclear or the breed is not in the dataset. Please upload a clearer image.</p>"
343
 
344
+ # 將按鈕區域放到 `dogs_info` 的外部,避免品種重複顯示
345
+ dogs_info += buttons_html
346
+ dogs_info += '</div>' # 結束該狗的描述區塊
347
+
348
 
349
  html_output = f"""
350
  <style>