DawnC commited on
Commit
d5e1d94
·
1 Parent(s): 3d64639

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -11
app.py CHANGED
@@ -620,36 +620,37 @@ async def predict(image):
620
  dogs = await detect_multiple_dogs(image)
621
 
622
  color_list = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#00FFFF', '#FF00FF', '#800080', '#FFA500']
 
623
  dogs_info = ""
624
- buttons = []
625
- annotated_image = image.copy()
626
- draw = ImageDraw.Draw(annotated_image)
627
- font = ImageFont.load_default()
628
-
629
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
630
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
631
  color = color_list[i % len(color_list)]
632
  draw.rectangle(box, outline=color, width=3)
633
  draw.text((box[0] + 5, box[1] + 5), f"Dog {i+1}", fill=color, font=font)
634
-
635
  combined_confidence = detection_confidence * top1_prob
636
- dogs_info += f'<div class="dog-info" style="border-left: 5px solid {color}; margin-bottom: 20px; padding: 15px; border: 1px solid #ddd; border-radius: 5px;">'
637
- dogs_info += f'<h2 style="background-color: #f0f0f0; padding: 10px; margin: -15px -15px 15px -15px; border-radius: 5px 5px 0 0;">Dog {i+1}</h2>'
638
-
 
 
639
  if top1_prob >= 0.45:
640
  breed = topk_breeds[0]
 
641
  description = get_dog_description(breed)
642
  dogs_info += format_description_html(description, breed)
643
  elif combined_confidence >= 0.15:
644
- dogs_info += f"<p>Top 3 possible breeds:</p><ul>"
645
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
646
  dogs_info += f"<li><strong>{breed}</strong> ({prob} confidence)</li>"
 
647
  dogs_info += "</ul>"
648
  dogs_info += '<div class="breed-buttons">'
649
  for breed in topk_breeds[:3]:
650
  button_id = f"Dog {i+1}: More about {breed}"
651
  dogs_info += f'<button class="breed-button" onclick="handle_button_click(\'{button_id}\')">{breed}</button>'
652
- buttons.append(button_id)
653
  dogs_info += '</div>'
654
  else:
655
  dogs_info += "<p>The image is unclear or the breed is not in the dataset. Please upload a clearer image.</p>"
 
620
  dogs = await detect_multiple_dogs(image)
621
 
622
  color_list = ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#00FFFF', '#FF00FF', '#800080', '#FFA500']
623
+
624
  dogs_info = ""
625
+ all_breeds = set() # 使用集合來避免重複
626
+
 
 
 
627
  for i, (cropped_image, detection_confidence, box) in enumerate(dogs):
628
  top1_prob, topk_breeds, topk_probs_percent = await predict_single_dog(cropped_image)
629
  color = color_list[i % len(color_list)]
630
  draw.rectangle(box, outline=color, width=3)
631
  draw.text((box[0] + 5, box[1] + 5), f"Dog {i+1}", fill=color, font=font)
632
+
633
  combined_confidence = detection_confidence * top1_prob
634
+ dogs_info += f'''
635
+ <div class="dog-info" style="border-left: 5px solid {color}; margin-bottom: 20px; padding: 15px; border: 1px solid #ddd; border-radius: 5px;">
636
+ <h2 style="background-color: #f0f0f0; padding: 10px; margin: -15px -15px 15px -15px; border-radius: 5px 5px 0 0;">Dog {i+1}</h2>
637
+ '''
638
+
639
  if top1_prob >= 0.45:
640
  breed = topk_breeds[0]
641
+ all_breeds.add(breed)
642
  description = get_dog_description(breed)
643
  dogs_info += format_description_html(description, breed)
644
  elif combined_confidence >= 0.15:
645
+ dogs_info += "<p>Top 3 possible breeds:</p><ul>"
646
  for j, (breed, prob) in enumerate(zip(topk_breeds[:3], topk_probs_percent[:3])):
647
  dogs_info += f"<li><strong>{breed}</strong> ({prob} confidence)</li>"
648
+ all_breeds.add(breed)
649
  dogs_info += "</ul>"
650
  dogs_info += '<div class="breed-buttons">'
651
  for breed in topk_breeds[:3]:
652
  button_id = f"Dog {i+1}: More about {breed}"
653
  dogs_info += f'<button class="breed-button" onclick="handle_button_click(\'{button_id}\')">{breed}</button>'
 
654
  dogs_info += '</div>'
655
  else:
656
  dogs_info += "<p>The image is unclear or the breed is not in the dataset. Please upload a clearer image.</p>"