DawnC commited on
Commit
3a760b0
·
1 Parent(s): 32370c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -11
app.py CHANGED
@@ -302,10 +302,10 @@ async def predict(image):
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,21 +316,20 @@ async def predict(image):
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}"
@@ -338,11 +337,12 @@ async def predict(image):
338
  buttons.append(button_id)
339
  buttons_html += '</div>'
340
 
 
 
 
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
 
 
302
  # dogs_info += buttons_html
303
 
304
 
305
+ dogs_info = ""
 
306
 
307
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
308
+ # 每次迭代初始化
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
+ # 信心較高顯示單一品種
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
+ prob = float(prob.replace('%', '')) # 去掉百分比符號並轉為浮點數
 
329
  dogs_info += f"<li><strong>{breed}</strong> ({prob:.2f}% confidence)</li>"
330
  dogs_info += "</ul>"
331
+
332
+ # 單獨生成按鈕邏輯,不將其加到 dogs_info 中
333
  buttons_html = '<div class="breed-buttons">'
334
  for breed in topk_breeds[:3]:
335
  button_id = f"Dog {i+1}: More about {breed}"
 
337
  buttons.append(button_id)
338
  buttons_html += '</div>'
339
 
340
+ # 返回按鈕區塊作為分離的部分
341
+ dogs_info += buttons_html
342
+
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 += '</div>' # 結束該狗的描述區塊
347
 
348