Spaces:
Running
on
Zero
Running
on
Zero
Update object_description_generator.py
Browse files- object_description_generator.py +18 -18
object_description_generator.py
CHANGED
@@ -592,30 +592,30 @@ class ObjectDescriptionGenerator:
|
|
592 |
return (priority, -len(obj_group_list), -avg_area, -quantity_bonus)
|
593 |
|
594 |
# remove duplicate
|
595 |
-
|
596 |
-
|
597 |
|
598 |
-
|
599 |
-
|
600 |
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
|
615 |
-
|
616 |
-
|
617 |
|
618 |
-
|
619 |
|
620 |
print(f"DEBUG: After spatial deduplication:")
|
621 |
for class_name in ["car", "traffic light", "person", "handbag"]:
|
|
|
592 |
return (priority, -len(obj_group_list), -avg_area, -quantity_bonus)
|
593 |
|
594 |
# remove duplicate
|
595 |
+
deduplicated_objects_by_class = {}
|
596 |
+
processed_positions = []
|
597 |
|
598 |
+
for class_name, group_of_objects in objects_by_class.items():
|
599 |
+
unique_objects = []
|
600 |
|
601 |
+
for obj in group_of_objects:
|
602 |
+
obj_position = obj.get("normalized_center", [0.5, 0.5])
|
603 |
+
is_duplicate = False
|
604 |
|
605 |
+
for processed_pos in processed_positions:
|
606 |
+
position_distance = abs(obj_position[0] - processed_pos[0]) + abs(obj_position[1] - processed_pos[1])
|
607 |
+
if position_distance < 0.15:
|
608 |
+
is_duplicate = True
|
609 |
+
break
|
610 |
|
611 |
+
if not is_duplicate:
|
612 |
+
unique_objects.append(obj)
|
613 |
+
processed_positions.append(obj_position)
|
614 |
|
615 |
+
if unique_objects:
|
616 |
+
deduplicated_objects_by_class[class_name] = unique_objects
|
617 |
|
618 |
+
objects_by_class = deduplicated_objects_by_class
|
619 |
|
620 |
print(f"DEBUG: After spatial deduplication:")
|
621 |
for class_name in ["car", "traffic light", "person", "handbag"]:
|