abdrabo01 commited on
Commit
f66d891
·
verified ·
1 Parent(s): 44c4212

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +8 -10
main.py CHANGED
@@ -48,27 +48,25 @@ async def predict(request: ImageRequest):
48
  json_result = {}
49
  class_counters = {}
50
 
51
- for box in result.boxes:
52
  class_id = int(box.cls[0])
53
  class_name = result.names[class_id]
54
  x1, y1, x2, y2 = map(int, box.xyxy[0].tolist())
55
 
56
- '''
57
- Create unique key for each detection
58
- EX: if multiple "missing_hole", keys will be:
59
- "missing_hole", "missing_hole2", ...
60
- '''
61
  if class_name in class_counters:
62
  class_counters[class_name] += 1
63
- key = f"{class_name}{class_counters[class_name]}"
64
  else:
65
  class_counters[class_name] = 1
66
- key = class_name
67
 
 
68
  json_result[key] = [x1, y1, x2, y2]
69
 
70
- # Creating statistics summary
71
- statistics_summary = {f"{count} {name}{'s' if count > 1 else ''}": count for name, count in class_counters.items()}
 
 
 
72
 
73
  return {"statistics": statistics_summary, "detections": json_result}
74
 
 
48
  json_result = {}
49
  class_counters = {}
50
 
51
+ for box in result.boxes:
52
  class_id = int(box.cls[0])
53
  class_name = result.names[class_id]
54
  x1, y1, x2, y2 = map(int, box.xyxy[0].tolist())
55
 
56
+ # Counting occurrences of each defect
 
 
 
 
57
  if class_name in class_counters:
58
  class_counters[class_name] += 1
 
59
  else:
60
  class_counters[class_name] = 1
 
61
 
62
+ key = f"{class_name}{class_counters[class_name]}" if class_counters[class_name] > 1 else class_name
63
  json_result[key] = [x1, y1, x2, y2]
64
 
65
+ # Using model's summary output if available
66
+ if hasattr(result, "summary") and isinstance(result.summary, dict):
67
+ statistics_summary = result.summary
68
+ else:
69
+ statistics_summary = {name: count for name, count in class_counters.items()}
70
 
71
  return {"statistics": statistics_summary, "detections": json_result}
72